Header revision 4.5a - Boolean type declarations, 64 Bit exceptions, small bugfixes
[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   // Needed for Delphi 6 and less (defined in system.pas for Delphi 7)
185   PPointer = ^Pointer;
186   PCardinal = ^Cardinal;
187
188   GLenum = Cardinal;
189   GLboolean = BYTEBOOL;
190   GLbitfield = Cardinal;
191   GLbyte = Shortint;
192   GLshort = SmallInt;
193   GLint = Integer;
194   GLsizei = Integer;
195   GLubyte = Byte;
196   GLushort = Word;
197   GLuint = Cardinal;
198   GLfloat = Single;
199   GLclampf = Single;
200   GLdouble = Double;
201   GLclampd = Double;
202   GLvoid = Pointer;
203   GLint64 = Int64;
204   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
205
206   TGLenum = GLenum;
207   TGLboolean = GLboolean;
208   TGLbitfield = GLbitfield;
209   TGLbyte = GLbyte;
210   TGLshort = GLshort;
211   TGLint = GLint;
212   TGLsizei = GLsizei;
213   TGLubyte = GLubyte;
214   TGLushort = GLushort;
215   TGLuint = GLuint;
216   TGLfloat = GLfloat;
217   TGLclampf = GLclampf;
218   TGLdouble = GLdouble;
219   TGLclampd = GLclampd;
220   TGLvoid = GLvoid;
221   TGLint64 = GLint64;
222   TGLuint64 = GLuint64;
223
224   PGLboolean = ^GLboolean;
225   PGLbyte = ^GLbyte;
226   PGLshort = ^GLshort;
227   PGLint = ^GLint;
228   PGLsizei = ^GLsizei;
229   PGLubyte = ^GLubyte;
230   PGLushort = ^GLushort;
231   PGLuint = ^GLuint;
232   PGLclampf = ^GLclampf;
233   PGLfloat = ^GLfloat;
234   PGLdouble = ^GLdouble;
235   PGLclampd = ^GLclampd;
236   PGLenum = ^GLenum;
237   PGLvoid = Pointer;
238   PPGLvoid = ^PGLvoid;
239   PGLint64 = ^GLint64;
240   PGLuint64 = ^GLuint64;
241
242   // GL_NV_half_float
243   GLhalfNV = WORD;
244   TGLhalfNV = GLhalfNV;
245   PGLhalfNV = ^GLhalfNV;
246
247   // GL_ARB_shader_objects
248   PGLHandleARB = ^GLHandleARB;
249   GLHandleARB = Integer;
250   GLcharARB = AnsiChar;
251   PGLcharARB = PAnsiChar;
252   PPGLcharARB = ^PGLcharARB;
253
254   // GL_VERSION_1_5
255   GLintptr = GLint;
256   PGLintptr = ^GLintptr;
257   GLsizeiptr = GLsizei;
258
259   // GL_ARB_vertex_buffer_object
260   GLintptrARB = GLint;
261   GLsizeiptrARB = GLsizei;
262
263   // GL_VERSION_2_0
264   GLHandle = Integer;
265   PGLchar = PAnsiChar;
266   PPGLchar = ^PGLChar;
267
268   // GL_EXT_timer_query
269   GLint64EXT = Int64;
270   TGLint64EXT = GLint64EXT;
271   PGLint64EXT = ^GLint64EXT;
272
273   GLuint64EXT = GLuint64;
274   TGLuint64EXT = GLuint64EXT;
275   PGLuint64EXT = ^GLuint64EXT;
276
277   // WGL_ARB_pbuffer
278   HPBUFFERARB = THandle;
279
280   // WGL_EXT_pbuffer
281   HPBUFFEREXT = THandle;
282
283   // WGL_NV_present_video
284   PHVIDEOOUTPUTDEVICENV = ^HVIDEOOUTPUTDEVICENV;
285   HVIDEOOUTPUTDEVICENV = THandle;
286
287   // WGL_NV_video_output
288   PHPVIDEODEV = ^HPVIDEODEV;
289   HPVIDEODEV = THandle;
290
291   // WGL_NV_gpu_affinity
292   PHPGPUNV = ^HPGPUNV;
293   PHGPUNV = ^HGPUNV;
294
295   // WGL_NV_video_capture
296   HVIDEOINPUTDEVICENV = THandle;
297   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
298
299   HPGPUNV = THandle;
300   HGPUNV = THandle;
301
302   // GL_ARB_sync
303   GLsync = Pointer;
304
305   // GL_ARB_cl_event
306   { These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event }
307   _cl_context = record end;
308   _cl_event = record end;
309   p_cl_context = ^_cl_context;
310   p_cl_event = ^_cl_event;
311
312   // GL_ARB_compute_variable_group_size
313   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}
314
315   // GL_ARB_debug_output
316   TglDebugProcARB = procedure (source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
317
318   // GL_AMD_debug_output
319   TglDebugProcAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
320
321   // GL_KHR_debug (4.3)
322   TglDebugProc = procedure(source : GLEnum; type_ : GLEnum; id : GLUInt; severity : GLUInt; length : GLsizei; const message_ : PGLCHar; userParam : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
323
324   // GL_NV_vdpau_interop
325   GLvdpauSurfaceNV = GLintptr;
326   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
327
328
329   // GLX
330   {$IFDEF DGL_LINUX}
331     GLXContext = Pointer;
332     GLXContextID = TXID;
333     GLXDrawable = TXID;
334     GLXFBConfig = Pointer;
335     GLXPbuffer = TXID;
336     GLXPixmap = TXID;
337     GLXWindow = TXID;
338
339     Window = TXID;
340     Colormap = TXID;
341     Pixmap = TXID;
342     Font = TXID;
343   {$ENDIF}
344
345   // Datatypes corresponding to GL's types TGL(name)(type)(count)
346   TGLVectorub2 = array[0..1] of GLubyte;
347   TGLVectori2  = array[0..1] of GLint;
348   TGLVectorf2  = array[0..1] of GLfloat;
349   TGLVectord2  = array[0..1] of GLdouble;
350   TGLVectorp2  = array[0..1] of Pointer;
351
352   TGLVectorub3 = array[0..2] of GLubyte;
353   TGLVectori3  = array[0..2] of GLint;
354   TGLVectorf3  = array[0..2] of GLfloat;
355   TGLVectord3  = array[0..2] of GLdouble;
356   TGLVectorp3  = array[0..2] of Pointer;
357
358   TGLVectorub4 = array[0..3] of GLubyte;
359   TGLVectori4  = array[0..3] of GLint;
360   TGLVectorf4  = array[0..3] of GLfloat;
361   TGLVectord4  = array[0..3] of GLdouble;
362   TGLVectorp4  = array[0..3] of Pointer;
363
364   TGLArrayf4 = TGLVectorf4;
365   TGLArrayf3 = TGLVectorf3;
366   TGLArrayd3 = TGLVectord3;
367   TGLArrayi4 = TGLVectori4;
368   TGLArrayp4 = TGLVectorp4;
369
370   TGlMatrixub3 = array[0..2, 0..2] of GLubyte;
371   TGlMatrixi3  = array[0..2, 0..2] of GLint;
372   TGLMatrixf3  = array[0..2, 0..2] of GLfloat;
373   TGLMatrixd3  = array[0..2, 0..2] of GLdouble;
374
375   TGlMatrixub4 = array[0..3, 0..3] of GLubyte;
376   TGlMatrixi4  = array[0..3, 0..3] of GLint;
377   TGLMatrixf4  = array[0..3, 0..3] of GLfloat;
378   TGLMatrixd4  = array[0..3, 0..3] of GLdouble;
379
380   TGLVector3f = TGLVectorf3;
381
382   // Datatypes corresponding to OpenGL12.pas for easy porting
383   TVector3f = TGLVectorf3;
384   TVector3d = TGLVectord3;
385
386   TVector4i = TGLVectori4;
387   TVector4f = TGLVectorf4;
388   TVector4p = TGLVectorp4;
389
390   TMatrix4f = TGLMatrixf4;
391   TMatrix4d = TGLMatrixd4;
392
393   PGLMatrixd4 = ^TGLMatrixd4;
394   PVector4i = ^TVector4i;
395
396
397
398 {$IFDEF FPC}
399   TRect = packed record
400     Left, Top, Right, Bottom: Longint;
401   end;
402 {$ENDIF}
403
404
405   PGPU_DEVICE = ^GPU_DEVICE;
406   GPU_DEVICE = record
407     cb: DWORD;
408     DeviceName: array [0..31] of AnsiChar;
409     DeviceString: array [0..127] of AnsiChar;
410     Flags: DWORD;
411     rcVirtualScreen: TRect;
412   end;
413
414
415 type
416 {$IFDEF FPC}
417   {$IFDEF DGL_WIN}
418     PWGLSwap = ^TWGLSwap;
419     {$EXTERNALSYM _WGLSWAP}
420       _WGLSWAP = packed record
421         hdc: HDC;
422         uiFlags: UINT;
423       end;
424
425     TWGLSwap = _WGLSWAP;
426   {$EXTERNALSYM WGLSWAP}
427     WGLSWAP = _WGLSWAP;
428
429   {$ENDIF}
430 {$ENDIF}
431
432   // GLU types
433   TGLUNurbs = record
434   end;
435   TGLUQuadric = record
436   end;
437   TGLUTesselator = record
438   end;
439   PGLUNurbs = ^TGLUNurbs;
440   PGLUQuadric = ^TGLUQuadric;
441   PGLUTesselator = ^TGLUTesselator;
442   // backwards compatibility
443   TGLUNurbsObj = TGLUNurbs;
444   TGLUQuadricObj = TGLUQuadric;
445   TGLUTesselatorObj = TGLUTesselator;
446   TGLUTriangulatorObj = TGLUTesselator;
447   PGLUNurbsObj = PGLUNurbs;
448   PGLUQuadricObj = PGLUQuadric;
449   PGLUTesselatorObj = PGLUTesselator;
450   PGLUTriangulatorObj = PGLUTesselator;
451
452   // GLUQuadricCallback
453   TGLUQuadricErrorProc = procedure(errorCode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
454   // GLUTessCallback
455   TGLUTessBeginProc = procedure(AType: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
456   TGLUTessEdgeFlagProc = procedure(Flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
457   TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
458   TGLUTessEndProc = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
459   TGLUTessErrorProc = procedure(ErrNo: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
460   TGLUTessCombineProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
461   TGLUTessBeginDataProc = procedure(AType: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
462   TGLUTessEdgeFlagDataProc = procedure(Flag: GLboolean; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
463   TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
464   TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
465   TGLUTessErrorDataProc = procedure(ErrNo: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
466   TGLUTessCombineDataProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
467   // GLUNurbsCallback
468   TGLUNurbsErrorProc = procedure(ErrorCode: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
469
470 var
471   GL_VERSION_1_0,
472   GL_VERSION_1_1,
473   GL_VERSION_1_2,
474   GL_VERSION_1_3,
475   GL_VERSION_1_4,
476   GL_VERSION_1_5,
477   GL_VERSION_2_0,
478   GL_VERSION_2_1,
479   GL_VERSION_3_0,
480   GL_VERSION_3_1,
481   GL_VERSION_3_2,
482   GL_VERSION_3_3,
483   GL_VERSION_4_0,
484   GL_VERSION_4_1,
485   GL_VERSION_4_2,
486   GL_VERSION_4_3,
487   GL_VERSION_4_4,
488   GL_VERSION_4_5,
489   GLU_VERSION_1_1,
490   GLU_VERSION_1_2,
491   GLU_VERSION_1_3,
492   GL_3DFX_multisample,
493   GL_3DFX_tbuffer,
494   GL_3DFX_texture_compression_FXT1,
495   GL_APPLE_client_storage,
496   GL_APPLE_element_array,
497   GL_APPLE_fence,
498   GL_APPLE_specular_vector,
499   GL_APPLE_transform_hint,
500   GL_APPLE_vertex_array_object,
501   GL_APPLE_vertex_array_range,
502   GL_APPLE_ycbcr_422,
503   GL_APPLE_texture_range,
504   GL_APPLE_float_pixels,
505   GL_APPLE_vertex_program_evaluators,
506   GL_APPLE_aux_depth_stencil,
507   GL_APPLE_object_purgeable,
508   GL_APPLE_row_bytes,
509   GL_APPLE_rgb_422,
510   GL_ARB_depth_texture,
511   GL_ARB_fragment_program,
512   GL_ARB_imaging,
513   GL_ARB_matrix_palette,
514   GL_ARB_multisample,
515   GL_ARB_multitexture,
516   GL_ARB_point_parameters,
517   GL_ARB_shadow,
518   GL_ARB_shadow_ambient,
519   GL_ARB_texture_border_clamp,
520   GL_ARB_texture_compression,
521   GL_ARB_texture_cube_map,
522   GL_ARB_texture_env_add,
523   GL_ARB_texture_env_combine,
524   GL_ARB_texture_env_crossbar,
525   GL_ARB_texture_env_dot3,
526   GL_ARB_texture_mirrored_repeat,
527   GL_ARB_transpose_matrix,
528   GL_ARB_vertex_blend,
529   GL_ARB_vertex_buffer_object,
530   GL_ARB_vertex_program,
531   GL_ARB_window_pos,
532   GL_ARB_shader_objects,
533   GL_ARB_vertex_shader,
534   GL_ARB_fragment_shader,
535   GL_ARB_shading_language_100,
536   GL_ARB_occlusion_query,
537   GL_ARB_texture_non_power_of_two,
538   GL_ARB_point_sprite,
539   GL_ARB_fragment_program_shadow,
540   GL_ARB_draw_buffers,
541   GL_ARB_texture_rectangle,
542   GL_ARB_color_buffer_float,
543   GL_ARB_half_float_pixel,
544   GL_ARB_texture_float,
545   GL_ARB_pixel_buffer_object,
546   GL_ARB_depth_buffer_float,
547   GL_ARB_draw_instanced,
548   GL_ARB_framebuffer_object,
549   GL_ARB_framebuffer_sRGB,
550   GL_ARB_geometry_shader4,
551   GL_ARB_half_float_vertex,
552   GL_ARB_instanced_arrays,
553   GL_ARB_map_buffer_range,
554   GL_ARB_texture_buffer_object,
555   GL_ARB_texture_compression_rgtc,
556   GL_ARB_texture_rg,
557   GL_ARB_vertex_array_object,
558   GL_ARB_uniform_buffer_object,
559   GL_ARB_compatibility,
560   GL_ARB_copy_buffer,
561   GL_ARB_shader_texture_lod,
562   GL_ARB_depth_clamp,
563   GL_ARB_draw_elements_base_vertex,
564   GL_ARB_fragment_coord_conventions,
565   GL_ARB_provoking_vertex,
566   GL_ARB_seamless_cube_map,
567   GL_ARB_sync,
568   GL_ARB_texture_multisample,
569   GL_ARB_vertex_array_bgra,
570   GL_ARB_draw_buffers_blend,
571   GL_ARB_sample_shading,
572   GL_ARB_texture_cube_map_array,
573   GL_ARB_texture_gather,
574   GL_ARB_texture_query_lod,
575   GL_ARB_shading_language_include,
576   GL_ARB_texture_compression_bptc,
577   GL_ARB_blend_func_extended,
578   GL_ARB_explicit_attrib_location,
579   GL_ARB_occlusion_query2,
580   GL_ARB_sampler_objects,
581   GL_ARB_shader_bit_encoding,
582   GL_ARB_texture_rgb10_a2ui,
583   GL_ARB_texture_swizzle,
584   GL_ARB_timer_query,
585   GL_ARB_vertex_type_2_10_10_10_rev,
586   GL_ARB_draw_indirect,
587   GL_ARB_gpu_shader5,
588   GL_ARB_gpu_shader_fp64,
589   GL_ARB_shader_subroutine,
590   GL_ARB_tessellation_shader,
591   GL_ARB_texture_buffer_object_rgb32,
592   GL_ARB_transform_feedback2,
593   GL_ARB_transform_feedback3,
594   GL_ARB_ES2_compatibility,
595   GL_ARB_get_program_binary,
596   GL_ARB_separate_shader_objects,
597   GL_ARB_shader_precision,
598   GL_ARB_vertex_attrib_64bit,
599   GL_ARB_viewport_array,
600
601   // GL 4.2
602   GL_ARB_base_instance,
603   GL_ARB_shading_language_420pack,
604   GL_ARB_transform_feedback_instanced,
605   GL_ARB_compressed_texture_pixel_storage,
606   GL_ARB_conservative_depth,
607   GL_ARB_internalformat_query,
608   GL_ARB_map_buffer_alignment,
609   GL_ARB_shader_atomic_counters,
610   GL_ARB_shader_image_load_store,
611   GL_ARB_shading_language_packing,
612   GL_ARB_texture_storage,
613
614
615   // GL 4.3
616   GL_ARB_arrays_of_arrays,
617   GL_ARB_fragment_layer_viewport,
618   GL_ARB_shader_image_size,
619   GL_ARB_ES3_compatibility,
620   GL_ARB_clear_buffer_object,
621   GL_ARB_compute_shader,
622   GL_ARB_copy_image,
623   GL_KHR_debug,
624   GL_ARB_explicit_uniform_location,
625   GL_ARB_framebuffer_no_attachments,
626   GL_ARB_internalformat_query2,
627   GL_ARB_invalidate_subdata,
628   GL_ARB_multi_draw_indirect,
629   GL_ARB_program_interface_query,
630   GL_ARB_robust_buffer_access_behavior,
631   GL_ARB_shader_storage_buffer_object,
632   GL_ARB_stencil_texturing,
633   GL_ARB_texture_buffer_range,
634   GL_ARB_texture_query_levels,
635   GL_ARB_texture_storage_multisample,
636   GL_ARB_texture_view,
637   GL_ARB_vertex_attrib_binding,
638   GL_NV_path_rendering,
639   GL_AMD_pinned_memory,
640   GL_AMD_stencil_operation_extended,
641   GL_AMD_vertex_shader_viewport_index,
642   GL_AMD_vertex_shader_layer,
643   GL_NV_bindless_texture,
644   GL_NV_shader_atomic_float,
645   GL_AMD_query_buffer_object,
646
647
648   // GL 4.4
649   GL_ARB_buffer_storage,
650   GL_ARB_clear_texture,
651   GL_ARB_enhanced_layouts,
652   GL_ARB_multi_bind,
653   GL_ARB_query_buffer_object,
654   GL_ARB_texture_mirror_clamp_to_edge,
655   GL_ARB_texture_stencil8,
656   GL_ARB_vertex_type_10f_11f_11f_rev,
657   GL_ARB_bindless_texture,
658   GL_ARB_sparse_texture,
659
660   // GL 4.5
661   GL_ARB_clip_control,
662   GL_ARB_cull_distance,
663   GL_ARB_ES3_1_compatibility,
664   GL_ARB_conditional_render_inverted,
665   GL_KHR_context_flush_control,
666   GL_ARB_derivative_control,
667   GL_ARB_direct_state_access,
668   GL_ARB_get_texture_sub_image,
669   GL_KHR_robustness,
670   GL_KHR_blend_equation_advanced,
671   GL_KHR_blend_equation_advanced_coherent,
672   GL_KHR_robust_buffer_access_behavior,
673   GL_ARB_shader_texture_image_samples,
674   GL_ARB_texture_barrier,
675
676   GL_ARB_cl_event,
677   GL_ARB_compute_variable_group_size,
678   GL_ARB_debug_output,
679   GL_ARB_robustness,
680   GL_ARB_shader_stencil_export,
681   GL_ATI_draw_buffers,
682   GL_ATI_element_array,
683   GL_ATI_envmap_bumpmap,
684   GL_ATI_fragment_shader,
685   GL_ATI_map_object_buffer,
686   GL_ATI_pn_triangles,
687   GL_ATI_separate_stencil,
688   GL_ATI_text_fragment_shader,
689   GL_ATI_texture_env_combine3,
690   GL_ATI_texture_float,
691   GL_ATI_texture_mirror_once,
692   GL_ATI_vertex_array_object,
693   GL_ATI_vertex_attrib_array_object,
694   GL_ATI_vertex_streams,
695   GL_ATI_meminfo,
696   GL_AMD_performance_monitor,
697   GL_AMD_texture_texture4,
698   GL_AMD_vertex_shader_tesselator,
699   GL_AMD_draw_buffers_blend,
700   GL_AMD_shader_stencil_export,
701   GL_AMD_seamless_cubemap_per_texture,
702   GL_AMD_conservative_depth,
703   GL_AMD_name_gen_delete,
704   GL_AMD_debug_output,
705   GL_AMD_transform_feedback3_lines_triangles,
706   GL_AMD_depth_clamp_separate,
707   GL_EXT_422_pixels,
708   GL_EXT_abgr,
709   GL_EXT_bgra,
710   GL_EXT_blend_color,
711   GL_EXT_blend_func_separate,
712   GL_EXT_blend_logic_op,
713   GL_EXT_blend_minmax,
714   GL_EXT_blend_subtract,
715   GL_EXT_clip_volume_hint,
716   GL_EXT_cmyka,
717   GL_EXT_color_matrix,
718   GL_EXT_color_subtable,
719   GL_EXT_compiled_vertex_array,
720   GL_EXT_convolution,
721   GL_EXT_coordinate_frame,
722   GL_EXT_copy_texture,
723   GL_EXT_cull_vertex,
724   GL_EXT_draw_range_elements,
725   GL_EXT_fog_coord,
726   GL_EXT_framebuffer_object,
727   GL_EXT_histogram,
728   GL_EXT_index_array_formats,
729   GL_EXT_index_func,
730   GL_EXT_index_material,
731   GL_EXT_index_texture,
732   GL_EXT_light_texture,
733   GL_EXT_misc_attribute,
734   GL_EXT_multi_draw_arrays,
735   GL_EXT_multisample,
736   GL_EXT_packed_pixels,
737   GL_EXT_paletted_texture,
738   GL_EXT_pixel_transform,
739   GL_EXT_pixel_transform_color_table,
740   GL_EXT_point_parameters,
741   GL_EXT_polygon_offset,
742   GL_EXT_rescale_normal,
743   GL_EXT_secondary_color,
744   GL_EXT_separate_specular_color,
745   GL_EXT_shadow_funcs,
746   GL_EXT_shared_texture_palette,
747   GL_EXT_stencil_two_side,
748   GL_EXT_stencil_wrap,
749   GL_EXT_subtexture,
750   GL_EXT_texture,
751   GL_EXT_texture3D,
752   GL_EXT_texture_compression_s3tc,
753   GL_EXT_texture_cube_map,
754   GL_EXT_texture_edge_clamp,
755   GL_EXT_texture_env_add,
756   GL_EXT_texture_env_combine,
757   GL_EXT_texture_env_dot3,
758   GL_EXT_texture_filter_anisotropic,
759   GL_EXT_texture_lod_bias,
760   GL_EXT_texture_object,
761   GL_EXT_texture_perturb_normal,
762   GL_EXT_texture_rectangle,
763   GL_EXT_vertex_array,
764   GL_EXT_vertex_shader,
765   GL_EXT_vertex_weighting,
766   GL_EXT_depth_bounds_test,
767   GL_EXT_texture_mirror_clamp,
768   GL_EXT_blend_equation_separate,
769   GL_EXT_pixel_buffer_object,
770   GL_EXT_texture_compression_dxt1,
771   GL_EXT_stencil_clear_tag,
772   GL_EXT_packed_depth_stencil,
773   GL_EXT_texture_sRGB,
774   GL_EXT_framebuffer_blit,
775   GL_EXT_framebuffer_multisample,
776   GL_EXT_timer_query,
777   GL_EXT_gpu_program_parameters,
778   GL_EXT_bindable_uniform,
779   GL_EXT_draw_buffers2,
780   GL_EXT_draw_instanced,
781   GL_EXT_framebuffer_sRGB,
782   GL_EXT_geometry_shader4,
783   GL_EXT_gpu_shader4,
784   GL_EXT_packed_float,
785   GL_EXT_texture_array,
786   GL_EXT_texture_buffer_object,
787   GL_EXT_texture_compression_latc,
788   GL_EXT_texture_compression_rgtc,
789   GL_EXT_texture_integer,
790   GL_EXT_texture_shared_exponent,
791   GL_EXT_transform_feedback,
792   GL_EXT_direct_state_access,
793   GL_EXT_vertex_array_bgra,
794   GL_EXT_texture_swizzle,
795   GL_EXT_provoking_vertex,
796   GL_EXT_texture_snorm,
797   GL_EXT_separate_shader_objects,
798   GL_EXT_shader_image_load_store,
799   GL_EXT_vertex_attrib_64bit,
800   GL_EXT_texture_sRGB_decode,
801   GL_FfdMaskSGIX,
802   GL_HP_convolution_border_modes,
803   GL_HP_image_transform,
804   GL_HP_occlusion_test,
805   GL_HP_texture_lighting,
806   GL_IBM_cull_vertex,
807   GL_IBM_multimode_draw_arrays,
808   GL_IBM_rasterpos_clip,
809   GL_IBM_texture_mirrored_repeat,
810   GL_IBM_vertex_array_lists,
811   GL_INGR_blend_func_separate,
812   GL_INGR_color_clamp,
813   GL_INGR_interlace_read,
814   GL_INGR_palette_buffer,
815   GL_INTEL_parallel_arrays,
816   GL_INTEL_texture_scissor,
817   GL_MESA_resize_buffers,
818   GL_MESA_window_pos,
819   GL_NV_blend_square,
820   GL_NV_copy_depth_to_color,
821   GL_NV_depth_clamp,
822   GL_NV_evaluators,
823   GL_NV_fence,
824   GL_NV_float_buffer,
825   GL_NV_fog_distance,
826   GL_NV_fragment_program,
827   GL_NV_half_float,
828   GL_NV_light_max_exponent,
829   GL_NV_multisample_filter_hint,
830   GL_NV_occlusion_query,
831   GL_NV_packed_depth_stencil,
832   GL_NV_pixel_data_range,
833   GL_NV_point_sprite,
834   GL_NV_primitive_restart,
835   GL_NV_register_combiners,
836   GL_NV_register_combiners2,
837   GL_NV_texgen_emboss,
838   GL_NV_texgen_reflection,
839   GL_NV_texture_compression_vtc,
840   GL_NV_texture_env_combine4,
841   GL_NV_texture_expand_normal,
842   GL_NV_texture_rectangle,
843   GL_NV_texture_shader,
844   GL_NV_texture_shader2,
845   GL_NV_texture_shader3,
846   GL_NV_vertex_array_range,
847   GL_NV_vertex_array_range2,
848   GL_NV_vertex_program,
849   GL_NV_vertex_program1_1,
850   GL_NV_vertex_program2,
851   GL_NV_fragment_program_option,
852   GL_NV_fragment_program2,
853   GL_NV_vertex_program2_option,
854   GL_NV_vertex_program3,
855   GL_NV_depth_buffer_float,
856   GL_NV_fragment_program4,
857   GL_NV_framebuffer_multisample_coverage,
858   GL_NV_geometry_program4,
859   GL_NV_gpu_program4,
860   GL_NV_parameter_buffer_object,
861   GL_NV_transform_feedback,
862   GL_NV_vertex_program4,
863   GL_NV_conditional_render,
864   GL_NV_present_video,
865   GL_NV_explicit_multisample,
866   GL_NV_transform_feedback2,
867   GL_NV_video_capture,
868   GL_NV_copy_image,
869   GL_NV_parameter_buffer_object2,
870   GL_NV_shader_buffer_load,
871   GL_NV_vertex_buffer_unified_memory,
872   GL_NV_gpu_program5,
873   GL_NV_gpu_shader5,
874   GL_NV_shader_buffer_store,
875   GL_NV_tessellation_program5,
876   GL_NV_vertex_attrib_integer_64bit,
877   GL_NV_multisample_coverage,
878   GL_NV_vdpau_interop,
879   GL_NV_texture_barrier,
880   GL_OML_interlace,
881   GL_OML_resample,
882   GL_OML_subsample,
883   GL_PGI_misc_hints,
884   GL_PGI_vertex_hints,
885   GL_REND_screen_coordinates,
886   GL_S3_s3tc,
887   GL_SGIS_detail_texture,
888   GL_SGIS_fog_function,
889   GL_SGIS_generate_mipmap,
890   GL_SGIS_multisample,
891   GL_SGIS_pixel_texture,
892   GL_SGIS_point_line_texgen,
893   GL_SGIS_point_parameters,
894   GL_SGIS_sharpen_texture,
895   GL_SGIS_texture4D,
896   GL_SGIS_texture_border_clamp,
897   GL_SGIS_texture_color_mask,
898   GL_SGIS_texture_edge_clamp,
899   GL_SGIS_texture_filter4,
900   GL_SGIS_texture_lod,
901   GL_SGIS_texture_select,
902   GL_SGIX_async,
903   GL_SGIX_async_histogram,
904   GL_SGIX_async_pixel,
905   GL_SGIX_blend_alpha_minmax,
906   GL_SGIX_calligraphic_fragment,
907   GL_SGIX_clipmap,
908   GL_SGIX_convolution_accuracy,
909   GL_SGIX_depth_pass_instrument,
910   GL_SGIX_depth_texture,
911   GL_SGIX_flush_raster,
912   GL_SGIX_fog_offset,
913   GL_SGIX_fog_scale,
914   GL_SGIX_fragment_lighting,
915   GL_SGIX_framezoom,
916   GL_SGIX_igloo_interface,
917   GL_SGIX_impact_pixel_texture,
918   GL_SGIX_instruments,
919   GL_SGIX_interlace,
920   GL_SGIX_ir_instrument1,
921   GL_SGIX_list_priority,
922   GL_SGIX_pixel_texture,
923   GL_SGIX_pixel_tiles,
924   GL_SGIX_polynomial_ffd,
925   GL_SGIX_reference_plane,
926   GL_SGIX_resample,
927   GL_SGIX_scalebias_hint,
928   GL_SGIX_shadow,
929   GL_SGIX_shadow_ambient,
930   GL_SGIX_sprite,
931   GL_SGIX_subsample,
932   GL_SGIX_tag_sample_buffer,
933   GL_SGIX_texture_add_env,
934   GL_SGIX_texture_coordinate_clamp,
935   GL_SGIX_texture_lod_bias,
936   GL_SGIX_texture_multi_buffer,
937   GL_SGIX_texture_scale_bias,
938   GL_SGIX_texture_select,
939   GL_SGIX_vertex_preclip,
940   GL_SGIX_ycrcb,
941   GL_SGIX_ycrcb_subsample,
942   GL_SGIX_ycrcba,
943   GL_SGI_color_matrix,
944   GL_SGI_color_table,
945   GL_SGI_depth_pass_instrument,
946   GL_SGI_texture_color_table,
947   GL_SUNX_constant_data,
948   GL_SUN_convolution_border_modes,
949   GL_SUN_global_alpha,
950   GL_SUN_mesh_array,
951   GL_SUN_slice_accum,
952   GL_SUN_triangle_list,
953   GL_SUN_vertex,
954
955   // WGL
956   GL_WIN_phong_shading,
957   GL_WIN_specular_fog,
958   WGL_3DFX_multisample,
959   WGL_ARB_buffer_region,
960   WGL_ARB_extensions_string,
961   WGL_ARB_make_current_read,
962   WGL_ARB_multisample,
963   WGL_ARB_pbuffer,
964   WGL_ARB_pixel_format,
965   WGL_ARB_pixel_format_float,
966   WGL_ARB_render_texture,
967   WGL_ARB_create_context,
968   WGL_ARB_create_context_profile,
969   WGL_ARB_framebuffer_sRGB,
970   WGL_ARB_create_context_robustness,
971   WGL_ATI_pixel_format_float,
972   WGL_AMD_gpu_association,
973   WGL_EXT_depth_float,
974   WGL_EXT_display_color_table,
975   WGL_EXT_extensions_string,
976   WGL_EXT_make_current_read,
977   WGL_EXT_multisample,
978   WGL_EXT_pbuffer,
979   WGL_EXT_pixel_format,
980   WGL_EXT_swap_control,
981   WGL_EXT_create_context_es2_profile,
982   WGL_I3D_digital_video_control,
983   WGL_I3D_gamma,
984   WGL_I3D_genlock,
985   WGL_I3D_image_buffer,
986   WGL_I3D_swap_frame_lock,
987   WGL_I3D_swap_frame_usage,
988   WGL_NV_float_buffer,
989   WGL_NV_render_depth_texture,
990   WGL_NV_render_texture_rectangle,
991   WGL_NV_vertex_array_range,
992   WGL_NV_present_video,
993   WGL_NV_video_output,
994   WGL_NV_swap_group,
995   WGL_NV_gpu_affinity,
996   WGL_NV_video_capture,
997   WGL_NV_copy_image,
998   WGL_NV_multisample_coverage,
999   WGL_NV_DX_interop,
1000   WGL_OML_sync_control,
1001   WGL_3DL_stereo_control,
1002   WGL_ARB_context_flush_control,
1003   WIN_draw_range_elements,
1004   WIN_swap_hint,
1005
1006   // GLX
1007   GLX_VERSION_1_3,
1008   GLX_VERSION_1_4,
1009   GLX_ARB_multisample,
1010   GLX_ARB_fbconfig_float,
1011   GLX_ARB_get_proc_address,
1012   GLX_ARB_create_context,
1013   GLX_ARB_create_context_profile,
1014   GLX_ARB_vertex_buffer_object,
1015   GLX_ARB_framebuffer_sRGB,
1016   GLX_ARB_create_context_robustness,
1017   GLX_EXT_visual_info,
1018   GLX_EXT_visual_rating,
1019   GLX_EXT_import_context,
1020   GLX_EXT_fbconfig_packed_float,
1021   GLX_EXT_framebuffer_sRGB,
1022   GLX_EXT_texture_from_pixmap,
1023   GLX_EXT_swap_control,
1024   GLX_ARB_context_flush_control,
1025   GLX_EXT_create_context_es2_profile : Boolean;
1026
1027 const
1028   // GL_VERSION_1_1
1029   { AttribMask }
1030   GL_DEPTH_BUFFER_BIT = $00000100;
1031   GL_STENCIL_BUFFER_BIT = $00000400;
1032   GL_COLOR_BUFFER_BIT = $00004000;
1033   { Boolean }
1034   GL_TRUE: ByteBool = True;
1035   GL_FALSE: ByteBool = False;
1036   { BeginMode }
1037   GL_POINTS = $0000;
1038   GL_LINES = $0001;
1039   GL_LINE_LOOP = $0002;
1040   GL_LINE_STRIP = $0003;
1041   GL_TRIANGLES = $0004;
1042   GL_TRIANGLE_STRIP = $0005;
1043   GL_TRIANGLE_FAN = $0006;
1044   { AlphaFunction }
1045   GL_NEVER = $0200;
1046   GL_LESS = $0201;
1047   GL_EQUAL = $0202;
1048   GL_LEQUAL = $0203;
1049   GL_GREATER = $0204;
1050   GL_NOTEQUAL = $0205;
1051   GL_GEQUAL = $0206;
1052   GL_ALWAYS = $0207;
1053   { BlendingFactorDest }
1054   GL_ZERO = 0;
1055   GL_ONE = 1;
1056   GL_SRC_COLOR = $0300;
1057   GL_ONE_MINUS_SRC_COLOR = $0301;
1058   GL_SRC_ALPHA = $0302;
1059   GL_ONE_MINUS_SRC_ALPHA = $0303;
1060   GL_DST_ALPHA = $0304;
1061   GL_ONE_MINUS_DST_ALPHA = $0305;
1062   { BlendingFactorSrc }
1063   GL_DST_COLOR = $0306;
1064   GL_ONE_MINUS_DST_COLOR = $0307;
1065   GL_SRC_ALPHA_SATURATE = $0308;
1066   { DrawBufferMode }
1067   GL_NONE = 0;
1068   GL_FRONT_LEFT = $0400;
1069   GL_FRONT_RIGHT = $0401;
1070   GL_BACK_LEFT = $0402;
1071   GL_BACK_RIGHT = $0403;
1072   GL_FRONT = $0404;
1073   GL_BACK = $0405;
1074   GL_LEFT = $0406;
1075   GL_RIGHT = $0407;
1076   GL_FRONT_AND_BACK = $0408;
1077   { ErrorCode }
1078   GL_NO_ERROR = 0;
1079   GL_INVALID_ENUM = $0500;
1080   GL_INVALID_VALUE = $0501;
1081   GL_INVALID_OPERATION = $0502;
1082   GL_OUT_OF_MEMORY = $0505;
1083   { FrontFaceDirection }
1084   GL_CW = $0900;
1085   GL_CCW = $0901;
1086   { GetPName }
1087   GL_POINT_SIZE = $0B11;
1088   GL_POINT_SIZE_RANGE = $0B12;
1089   GL_POINT_SIZE_GRANULARITY = $0B13;
1090   GL_LINE_SMOOTH = $0B20;
1091   GL_LINE_WIDTH = $0B21;
1092   GL_LINE_WIDTH_RANGE = $0B22;
1093   GL_LINE_WIDTH_GRANULARITY = $0B23;
1094   GL_POLYGON_SMOOTH = $0B41;
1095   GL_CULL_FACE = $0B44;
1096   GL_CULL_FACE_MODE = $0B45;
1097   GL_FRONT_FACE = $0B46;
1098   GL_DEPTH_RANGE = $0B70;
1099   GL_DEPTH_TEST = $0B71;
1100   GL_DEPTH_WRITEMASK = $0B72;
1101   GL_DEPTH_CLEAR_VALUE = $0B73;
1102   GL_DEPTH_FUNC = $0B74;
1103   GL_STENCIL_TEST = $0B90;
1104   GL_STENCIL_CLEAR_VALUE = $0B91;
1105   GL_STENCIL_FUNC = $0B92;
1106   GL_STENCIL_VALUE_MASK = $0B93;
1107   GL_STENCIL_FAIL = $0B94;
1108   GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
1109   GL_STENCIL_PASS_DEPTH_PASS = $0B96;
1110   GL_STENCIL_REF = $0B97;
1111   GL_STENCIL_WRITEMASK = $0B98;
1112   GL_VIEWPORT = $0BA2;
1113   GL_DITHER = $0BD0;
1114   GL_BLEND_DST = $0BE0;
1115   GL_BLEND_SRC = $0BE1;
1116   GL_BLEND = $0BE2;
1117   GL_LOGIC_OP_MODE = $0BF0;
1118   GL_COLOR_LOGIC_OP = $0BF2;
1119   GL_DRAW_BUFFER = $0C01;
1120   GL_READ_BUFFER = $0C02;
1121   GL_SCISSOR_BOX = $0C10;
1122   GL_SCISSOR_TEST = $0C11;
1123   GL_COLOR_CLEAR_VALUE = $0C22;
1124   GL_COLOR_WRITEMASK = $0C23;
1125   GL_DOUBLEBUFFER = $0C32;
1126   GL_STEREO = $0C33;
1127   GL_LINE_SMOOTH_HINT = $0C52;
1128   GL_POLYGON_SMOOTH_HINT = $0C53;
1129   GL_UNPACK_SWAP_BYTES = $0CF0;
1130   GL_UNPACK_LSB_FIRST = $0CF1;
1131   GL_UNPACK_ROW_LENGTH = $0CF2;
1132   GL_UNPACK_SKIP_ROWS = $0CF3;
1133   GL_UNPACK_SKIP_PIXELS = $0CF4;
1134   GL_UNPACK_ALIGNMENT = $0CF5;
1135   GL_PACK_SWAP_BYTES = $0D00;
1136   GL_PACK_LSB_FIRST = $0D01;
1137   GL_PACK_ROW_LENGTH = $0D02;
1138   GL_PACK_SKIP_ROWS = $0D03;
1139   GL_PACK_SKIP_PIXELS = $0D04;
1140   GL_PACK_ALIGNMENT = $0D05;
1141   GL_MAX_TEXTURE_SIZE = $0D33;
1142   GL_MAX_VIEWPORT_DIMS = $0D3A;
1143   GL_SUBPIXEL_BITS = $0D50;
1144   GL_TEXTURE_1D = $0DE0;
1145   GL_TEXTURE_2D = $0DE1;
1146   GL_POLYGON_OFFSET_UNITS = $2A00;
1147   GL_POLYGON_OFFSET_POINT = $2A01;
1148   GL_POLYGON_OFFSET_LINE = $2A02;
1149   GL_POLYGON_OFFSET_FILL = $8037;
1150   GL_POLYGON_OFFSET_FACTOR = $8038;
1151   GL_TEXTURE_BINDING_1D = $8068;
1152   GL_TEXTURE_BINDING_2D = $8069;
1153   { GetTextureParameter }
1154   GL_TEXTURE_WIDTH = $1000;
1155   GL_TEXTURE_HEIGHT = $1001;
1156   GL_TEXTURE_INTERNAL_FORMAT = $1003;
1157   GL_TEXTURE_BORDER_COLOR = $1004;
1158   GL_TEXTURE_BORDER = $1005;
1159   GL_TEXTURE_RED_SIZE = $805C;
1160   GL_TEXTURE_GREEN_SIZE = $805D;
1161   GL_TEXTURE_BLUE_SIZE = $805E;
1162   GL_TEXTURE_ALPHA_SIZE = $805F;
1163   { HintMode }
1164   GL_DONT_CARE = $1100;
1165   GL_FASTEST = $1101;
1166   GL_NICEST = $1102;
1167   { DataType }
1168   GL_BYTE = $1400;
1169   GL_UNSIGNED_BYTE = $1401;
1170   GL_SHORT = $1402;
1171   GL_UNSIGNED_SHORT = $1403;
1172   GL_INT = $1404;
1173   GL_UNSIGNED_INT = $1405;
1174   GL_FLOAT = $1406;
1175   GL_DOUBLE = $140A;
1176   { LogicOp }
1177   GL_CLEAR = $1500;
1178   GL_AND = $1501;
1179   GL_AND_REVERSE = $1502;
1180   GL_COPY = $1503;
1181   GL_AND_INVERTED = $1504;
1182   GL_NOOP = $1505;
1183   GL_XOR = $1506;
1184   GL_OR = $1507;
1185   GL_NOR = $1508;
1186   GL_EQUIV = $1509;
1187   GL_INVERT = $150A;
1188   GL_OR_REVERSE = $150B;
1189   GL_COPY_INVERTED = $150C;
1190   GL_OR_INVERTED = $150D;
1191   GL_NAND = $150E;
1192   GL_SET = $150F;
1193   { MatrixMode (for gl3.h, FBO attachment type) }
1194   GL_TEXTURE = $1702;
1195   { PixelCopyType }
1196   GL_COLOR = $1800;
1197   GL_DEPTH = $1801;
1198   GL_STENCIL = $1802;
1199   { PixelFormat }
1200   GL_STENCIL_INDEX = $1901;
1201   GL_DEPTH_COMPONENT = $1902;
1202   GL_RED = $1903;
1203   GL_GREEN = $1904;
1204   GL_BLUE = $1905;
1205   GL_ALPHA = $1906;
1206   GL_RGB = $1907;
1207   GL_RGBA = $1908;
1208   { PolygonMode }
1209   GL_POINT = $1B00;
1210   GL_LINE = $1B01;
1211   GL_FILL = $1B02;
1212   { StencilOp }
1213   GL_KEEP = $1E00;
1214   GL_REPLACE = $1E01;
1215   GL_INCR = $1E02;
1216   GL_DECR = $1E03;
1217   { StringName }
1218   GL_VENDOR = $1F00;
1219   GL_RENDERER = $1F01;
1220   GL_VERSION = $1F02;
1221   GL_EXTENSIONS = $1F03;
1222   { TextureMagFilter }
1223   GL_NEAREST = $2600;
1224   GL_LINEAR = $2601;
1225   { TextureMinFilter }
1226   GL_NEAREST_MIPMAP_NEAREST = $2700;
1227   GL_LINEAR_MIPMAP_NEAREST = $2701;
1228   GL_NEAREST_MIPMAP_LINEAR = $2702;
1229   GL_LINEAR_MIPMAP_LINEAR = $2703;
1230   { TextureParameterName }
1231   GL_TEXTURE_MAG_FILTER = $2800;
1232   GL_TEXTURE_MIN_FILTER = $2801;
1233   GL_TEXTURE_WRAP_S = $2802;
1234   GL_TEXTURE_WRAP_T = $2803;
1235   { TextureTarget }
1236   GL_PROXY_TEXTURE_1D = $8063;
1237   GL_PROXY_TEXTURE_2D = $8064;
1238   { TextureWrapMode }
1239   GL_REPEAT = $2901;
1240   { PixelInternalFormat }
1241   GL_R3_G3_B2 = $2A10;
1242   GL_RGB4 = $804F;
1243   GL_RGB5 = $8050;
1244   GL_RGB8 = $8051;
1245   GL_RGB10 = $8052;
1246   GL_RGB12 = $8053;
1247   GL_RGB16 = $8054;
1248   GL_RGBA2 = $8055;
1249   GL_RGBA4 = $8056;
1250   GL_RGB5_A1 = $8057;
1251   GL_RGBA8 = $8058;
1252   GL_RGB10_A2 = $8059;
1253   GL_RGBA12 = $805A;
1254   GL_RGBA16 = $805B;
1255 {$ifdef DGL_DEPRECATED}
1256   GL_ACCUM = $0100;
1257   GL_LOAD = $0101;
1258   GL_RETURN = $0102;
1259   GL_MULT = $0103;
1260   GL_ADD = $0104;
1261   GL_CURRENT_BIT = $00000001;
1262   GL_POINT_BIT = $00000002;
1263   GL_LINE_BIT = $00000004;
1264   GL_POLYGON_BIT = $00000008;
1265   GL_POLYGON_STIPPLE_BIT = $00000010;
1266   GL_PIXEL_MODE_BIT = $00000020;
1267   GL_LIGHTING_BIT = $00000040;
1268   GL_FOG_BIT = $00000080;
1269   GL_ACCUM_BUFFER_BIT = $00000200;
1270   GL_VIEWPORT_BIT = $00000800;
1271   GL_TRANSFORM_BIT = $00001000;
1272   GL_ENABLE_BIT = $00002000;
1273   GL_HINT_BIT = $00008000;
1274   GL_EVAL_BIT = $00010000;
1275   GL_LIST_BIT = $00020000;
1276   GL_TEXTURE_BIT = $00040000;
1277   GL_SCISSOR_BIT = $00080000;
1278   GL_ALL_ATTRIB_BITS = $000FFFFF;
1279   GL_QUADS = $0007;
1280   GL_QUAD_STRIP = $0008;
1281   GL_POLYGON = $0009;
1282   GL_CLIP_PLANE0 = $3000;
1283   GL_CLIP_PLANE1 = $3001;
1284   GL_CLIP_PLANE2 = $3002;
1285   GL_CLIP_PLANE3 = $3003;
1286   GL_CLIP_PLANE4 = $3004;
1287   GL_CLIP_PLANE5 = $3005;
1288   GL_2_BYTES = $1407;
1289   GL_3_BYTES = $1408;
1290   GL_4_BYTES = $1409;
1291   GL_AUX0 = $0409;
1292   GL_AUX1 = $040A;
1293   GL_AUX2 = $040B;
1294   GL_AUX3 = $040C;
1295   GL_STACK_OVERFLOW = $0503;
1296   GL_STACK_UNDERFLOW = $0504;
1297   GL_2D = $0600;
1298   GL_3D = $0601;
1299   GL_3D_COLOR = $0602;
1300   GL_3D_COLOR_TEXTURE = $0603;
1301   GL_4D_COLOR_TEXTURE = $0604;
1302   GL_PASS_THROUGH_TOKEN = $0700;
1303   GL_POINT_TOKEN = $0701;
1304   GL_LINE_TOKEN = $0702;
1305   GL_POLYGON_TOKEN = $0703;
1306   GL_BITMAP_TOKEN = $0704;
1307   GL_DRAW_PIXEL_TOKEN = $0705;
1308   GL_COPY_PIXEL_TOKEN = $0706;
1309   GL_LINE_RESET_TOKEN = $0707;
1310   GL_EXP = $0800;
1311   GL_EXP2 = $0801;
1312   GL_COEFF = $0A00;
1313   GL_ORDER = $0A01;
1314   GL_DOMAIN = $0A02;
1315   GL_CURRENT_COLOR = $0B00;
1316   GL_CURRENT_INDEX = $0B01;
1317   GL_CURRENT_NORMAL = $0B02;
1318   GL_CURRENT_TEXTURE_COORDS = $0B03;
1319   GL_CURRENT_RASTER_COLOR = $0B04;
1320   GL_CURRENT_RASTER_INDEX = $0B05;
1321   GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
1322   GL_CURRENT_RASTER_POSITION = $0B07;
1323   GL_CURRENT_RASTER_POSITION_VALID = $0B08;
1324   GL_CURRENT_RASTER_DISTANCE = $0B09;
1325   GL_POINT_SMOOTH = $0B10;
1326   GL_LINE_STIPPLE = $0B24;
1327   GL_LINE_STIPPLE_PATTERN = $0B25;
1328   GL_LINE_STIPPLE_REPEAT = $0B26;
1329   GL_LIST_MODE = $0B30;
1330   GL_MAX_LIST_NESTING = $0B31;
1331   GL_LIST_BASE = $0B32;
1332   GL_LIST_INDEX = $0B33;
1333   GL_POLYGON_MODE = $0B40;
1334   GL_POLYGON_STIPPLE = $0B42;
1335   GL_EDGE_FLAG = $0B43;
1336   GL_LIGHTING = $0B50;
1337   GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
1338   GL_LIGHT_MODEL_TWO_SIDE = $0B52;
1339   GL_LIGHT_MODEL_AMBIENT = $0B53;
1340   GL_SHADE_MODEL = $0B54;
1341   GL_COLOR_MATERIAL_FACE = $0B55;
1342   GL_COLOR_MATERIAL_PARAMETER = $0B56;
1343   GL_COLOR_MATERIAL = $0B57;
1344   GL_FOG = $0B60;
1345   GL_FOG_INDEX = $0B61;
1346   GL_FOG_DENSITY = $0B62;
1347   GL_FOG_START = $0B63;
1348   GL_FOG_END = $0B64;
1349   GL_FOG_MODE = $0B65;
1350   GL_FOG_COLOR = $0B66;
1351   GL_ACCUM_CLEAR_VALUE = $0B80;
1352   GL_MATRIX_MODE = $0BA0;
1353   GL_NORMALIZE = $0BA1;
1354   GL_MODELVIEW_STACK_DEPTH = $0BA3;
1355   GL_PROJECTION_STACK_DEPTH = $0BA4;
1356   GL_TEXTURE_STACK_DEPTH = $0BA5;
1357   GL_MODELVIEW_MATRIX = $0BA6;
1358   GL_PROJECTION_MATRIX = $0BA7;
1359   GL_TEXTURE_MATRIX = $0BA8;
1360   GL_ATTRIB_STACK_DEPTH = $0BB0;
1361   GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
1362   GL_ALPHA_TEST = $0BC0;
1363   GL_ALPHA_TEST_FUNC = $0BC1;
1364   GL_ALPHA_TEST_REF = $0BC2;
1365   GL_INDEX_LOGIC_OP = $0BF1;
1366   GL_AUX_BUFFERS = $0C00;
1367   GL_INDEX_CLEAR_VALUE = $0C20;
1368   GL_INDEX_WRITEMASK = $0C21;
1369   GL_INDEX_MODE = $0C30;
1370   GL_RGBA_MODE = $0C31;
1371   GL_RENDER_MODE = $0C40;
1372   GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
1373   GL_POINT_SMOOTH_HINT = $0C51;
1374   GL_FOG_HINT = $0C54;
1375   GL_TEXTURE_GEN_S = $0C60;
1376   GL_TEXTURE_GEN_T = $0C61;
1377   GL_TEXTURE_GEN_R = $0C62;
1378   GL_TEXTURE_GEN_Q = $0C63;
1379   GL_PIXEL_MAP_I_TO_I = $0C70;
1380   GL_PIXEL_MAP_S_TO_S = $0C71;
1381   GL_PIXEL_MAP_I_TO_R = $0C72;
1382   GL_PIXEL_MAP_I_TO_G = $0C73;
1383   GL_PIXEL_MAP_I_TO_B = $0C74;
1384   GL_PIXEL_MAP_I_TO_A = $0C75;
1385   GL_PIXEL_MAP_R_TO_R = $0C76;
1386   GL_PIXEL_MAP_G_TO_G = $0C77;
1387   GL_PIXEL_MAP_B_TO_B = $0C78;
1388   GL_PIXEL_MAP_A_TO_A = $0C79;
1389   GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
1390   GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
1391   GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
1392   GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
1393   GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
1394   GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
1395   GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
1396   GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
1397   GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
1398   GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
1399   GL_MAP_COLOR = $0D10;
1400   GL_MAP_STENCIL = $0D11;
1401   GL_INDEX_SHIFT = $0D12;
1402   GL_INDEX_OFFSET = $0D13;
1403   GL_RED_SCALE = $0D14;
1404   GL_RED_BIAS = $0D15;
1405   GL_ZOOM_X = $0D16;
1406   GL_ZOOM_Y = $0D17;
1407   GL_GREEN_SCALE = $0D18;
1408   GL_GREEN_BIAS = $0D19;
1409   GL_BLUE_SCALE = $0D1A;
1410   GL_BLUE_BIAS = $0D1B;
1411   GL_ALPHA_SCALE = $0D1C;
1412   GL_ALPHA_BIAS = $0D1D;
1413   GL_DEPTH_SCALE = $0D1E;
1414   GL_DEPTH_BIAS = $0D1F;
1415   GL_MAX_EVAL_ORDER = $0D30;
1416   GL_MAX_LIGHTS = $0D31;
1417   GL_MAX_CLIP_PLANES = $0D32;
1418   GL_MAX_PIXEL_MAP_TABLE = $0D34;
1419   GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
1420   GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
1421   GL_MAX_NAME_STACK_DEPTH = $0D37;
1422   GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
1423   GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
1424   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
1425   GL_INDEX_BITS = $0D51;
1426   GL_RED_BITS = $0D52;
1427   GL_GREEN_BITS = $0D53;
1428   GL_BLUE_BITS = $0D54;
1429   GL_ALPHA_BITS = $0D55;
1430   GL_DEPTH_BITS = $0D56;
1431   GL_STENCIL_BITS = $0D57;
1432   GL_ACCUM_RED_BITS = $0D58;
1433   GL_ACCUM_GREEN_BITS = $0D59;
1434   GL_ACCUM_BLUE_BITS = $0D5A;
1435   GL_ACCUM_ALPHA_BITS = $0D5B;
1436   GL_NAME_STACK_DEPTH = $0D70;
1437   GL_AUTO_NORMAL = $0D80;
1438   GL_MAP1_COLOR_4 = $0D90;
1439   GL_MAP1_INDEX = $0D91;
1440   GL_MAP1_NORMAL = $0D92;
1441   GL_MAP1_TEXTURE_COORD_1 = $0D93;
1442   GL_MAP1_TEXTURE_COORD_2 = $0D94;
1443   GL_MAP1_TEXTURE_COORD_3 = $0D95;
1444   GL_MAP1_TEXTURE_COORD_4 = $0D96;
1445   GL_MAP1_VERTEX_3 = $0D97;
1446   GL_MAP1_VERTEX_4 = $0D98;
1447   GL_MAP2_COLOR_4 = $0DB0;
1448   GL_MAP2_INDEX = $0DB1;
1449   GL_MAP2_NORMAL = $0DB2;
1450   GL_MAP2_TEXTURE_COORD_1 = $0DB3;
1451   GL_MAP2_TEXTURE_COORD_2 = $0DB4;
1452   GL_MAP2_TEXTURE_COORD_3 = $0DB5;
1453   GL_MAP2_TEXTURE_COORD_4 = $0DB6;
1454   GL_MAP2_VERTEX_3 = $0DB7;
1455   GL_MAP2_VERTEX_4 = $0DB8;
1456   GL_MAP1_GRID_DOMAIN = $0DD0;
1457   GL_MAP1_GRID_SEGMENTS = $0DD1;
1458   GL_MAP2_GRID_DOMAIN = $0DD2;
1459   GL_MAP2_GRID_SEGMENTS = $0DD3;
1460   GL_FEEDBACK_BUFFER_POINTER = $0DF0;
1461   GL_FEEDBACK_BUFFER_SIZE = $0DF1;
1462   GL_FEEDBACK_BUFFER_TYPE = $0DF2;
1463   GL_SELECTION_BUFFER_POINTER = $0DF3;
1464   GL_SELECTION_BUFFER_SIZE = $0DF4;
1465   GL_LIGHT0 = $4000;
1466   GL_LIGHT1 = $4001;
1467   GL_LIGHT2 = $4002;
1468   GL_LIGHT3 = $4003;
1469   GL_LIGHT4 = $4004;
1470   GL_LIGHT5 = $4005;
1471   GL_LIGHT6 = $4006;
1472   GL_LIGHT7 = $4007;
1473   GL_AMBIENT = $1200;
1474   GL_DIFFUSE = $1201;
1475   GL_SPECULAR = $1202;
1476   GL_POSITION = $1203;
1477   GL_SPOT_DIRECTION = $1204;
1478   GL_SPOT_EXPONENT = $1205;
1479   GL_SPOT_CUTOFF = $1206;
1480   GL_CONSTANT_ATTENUATION = $1207;
1481   GL_LINEAR_ATTENUATION = $1208;
1482   GL_QUADRATIC_ATTENUATION = $1209;
1483   GL_COMPILE = $1300;
1484   GL_COMPILE_AND_EXECUTE = $1301;
1485   GL_EMISSION = $1600;
1486   GL_SHININESS = $1601;
1487   GL_AMBIENT_AND_DIFFUSE = $1602;
1488   GL_COLOR_INDEXES = $1603;
1489   GL_MODELVIEW = $1700;
1490   GL_PROJECTION = $1701;
1491   GL_COLOR_INDEX = $1900;
1492   GL_LUMINANCE = $1909;
1493   GL_LUMINANCE_ALPHA = $190A;
1494   GL_BITMAP = $1A00;
1495   GL_RENDER = $1C00;
1496   GL_FEEDBACK = $1C01;
1497   GL_SELECT = $1C02;
1498   GL_FLAT = $1D00;
1499   GL_SMOOTH = $1D01;
1500   GL_S = $2000;
1501   GL_T = $2001;
1502   GL_R = $2002;
1503   GL_Q = $2003;
1504   GL_MODULATE = $2100;
1505   GL_DECAL = $2101;
1506   GL_TEXTURE_ENV_MODE = $2200;
1507   GL_TEXTURE_ENV_COLOR = $2201;
1508   GL_TEXTURE_ENV = $2300;
1509   GL_EYE_LINEAR = $2400;
1510   GL_OBJECT_LINEAR = $2401;
1511   GL_SPHERE_MAP = $2402;
1512   GL_TEXTURE_GEN_MODE = $2500;
1513   GL_OBJECT_PLANE = $2501;
1514   GL_EYE_PLANE = $2502;
1515   GL_CLAMP = $2900;
1516   GL_CLIENT_PIXEL_STORE_BIT = $00000001;
1517   GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
1518   GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
1519   GL_ALPHA4 = $803B;
1520   GL_ALPHA8 = $803C;
1521   GL_ALPHA12 = $803D;
1522   GL_ALPHA16 = $803E;
1523   GL_LUMINANCE4 = $803F;
1524   GL_LUMINANCE8 = $8040;
1525   GL_LUMINANCE12 = $8041;
1526   GL_LUMINANCE16 = $8042;
1527   GL_LUMINANCE4_ALPHA4 = $8043;
1528   GL_LUMINANCE6_ALPHA2 = $8044;
1529   GL_LUMINANCE8_ALPHA8 = $8045;
1530   GL_LUMINANCE12_ALPHA4 = $8046;
1531   GL_LUMINANCE12_ALPHA12 = $8047;
1532   GL_LUMINANCE16_ALPHA16 = $8048;
1533   GL_INTENSITY = $8049;
1534   GL_INTENSITY4 = $804A;
1535   GL_INTENSITY8 = $804B;
1536   GL_INTENSITY12 = $804C;
1537   GL_INTENSITY16 = $804D;
1538   GL_TEXTURE_LUMINANCE_SIZE = $8060;
1539   GL_TEXTURE_INTENSITY_SIZE = $8061;
1540   GL_TEXTURE_PRIORITY = $8066;
1541   GL_TEXTURE_RESIDENT = $8067;
1542   GL_VERTEX_ARRAY = $8074;
1543   GL_NORMAL_ARRAY = $8075;
1544   GL_COLOR_ARRAY = $8076;
1545   GL_INDEX_ARRAY = $8077;
1546   GL_TEXTURE_COORD_ARRAY = $8078;
1547   GL_EDGE_FLAG_ARRAY = $8079;
1548   GL_VERTEX_ARRAY_SIZE = $807A;
1549   GL_VERTEX_ARRAY_TYPE = $807B;
1550   GL_VERTEX_ARRAY_STRIDE = $807C;
1551   GL_NORMAL_ARRAY_TYPE = $807E;
1552   GL_NORMAL_ARRAY_STRIDE = $807F;
1553   GL_COLOR_ARRAY_SIZE = $8081;
1554   GL_COLOR_ARRAY_TYPE = $8082;
1555   GL_COLOR_ARRAY_STRIDE = $8083;
1556   GL_INDEX_ARRAY_TYPE = $8085;
1557   GL_INDEX_ARRAY_STRIDE = $8086;
1558   GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
1559   GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
1560   GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
1561   GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
1562   GL_VERTEX_ARRAY_POINTER = $808E;
1563   GL_NORMAL_ARRAY_POINTER = $808F;
1564   GL_COLOR_ARRAY_POINTER = $8090;
1565   GL_INDEX_ARRAY_POINTER = $8091;
1566   GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
1567   GL_EDGE_FLAG_ARRAY_POINTER = $8093;
1568   GL_V2F = $2A20;
1569   GL_V3F = $2A21;
1570   GL_C4UB_V2F = $2A22;
1571   GL_C4UB_V3F = $2A23;
1572   GL_C3F_V3F = $2A24;
1573   GL_N3F_V3F = $2A25;
1574   GL_C4F_N3F_V3F = $2A26;
1575   GL_T2F_V3F = $2A27;
1576   GL_T4F_V4F = $2A28;
1577   GL_T2F_C4UB_V3F = $2A29;
1578   GL_T2F_C3F_V3F = $2A2A;
1579   GL_T2F_N3F_V3F = $2A2B;
1580   GL_T2F_C4F_N3F_V3F = $2A2C;
1581   GL_T4F_C4F_N3F_V4F = $2A2D;
1582   GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1583   GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1584   GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1585   GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1586   GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1587   GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1588   GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1589   GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1590   GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
1591   GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
1592 {$endif}
1593
1594   // GL_VERSION_1_2
1595   GL_UNSIGNED_BYTE_3_3_2 = $8032;
1596   GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
1597   GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
1598   GL_UNSIGNED_INT_8_8_8_8 = $8035;
1599   GL_UNSIGNED_INT_10_10_10_2 = $8036;
1600   GL_TEXTURE_BINDING_3D = $806A;
1601   GL_PACK_SKIP_IMAGES = $806B;
1602   GL_PACK_IMAGE_HEIGHT = $806C;
1603   GL_UNPACK_SKIP_IMAGES = $806D;
1604   GL_UNPACK_IMAGE_HEIGHT = $806E;
1605   GL_TEXTURE_3D = $806F;
1606   GL_PROXY_TEXTURE_3D = $8070;
1607   GL_TEXTURE_DEPTH = $8071;
1608   GL_TEXTURE_WRAP_R = $8072;
1609   GL_MAX_3D_TEXTURE_SIZE = $8073;
1610   GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
1611   GL_UNSIGNED_SHORT_5_6_5 = $8363;
1612   GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
1613   GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
1614   GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
1615   GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
1616   GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
1617   GL_BGR = $80E0;
1618   GL_BGRA = $80E1;
1619   GL_MAX_ELEMENTS_VERTICES = $80E8;
1620   GL_MAX_ELEMENTS_INDICES = $80E9;
1621   GL_CLAMP_TO_EDGE = $812F;
1622   GL_TEXTURE_MIN_LOD = $813A;
1623   GL_TEXTURE_MAX_LOD = $813B;
1624   GL_TEXTURE_BASE_LEVEL = $813C;
1625   GL_TEXTURE_MAX_LEVEL = $813D;
1626   GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
1627   GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
1628   GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
1629   GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
1630   GL_ALIASED_LINE_WIDTH_RANGE = $846E;
1631 {$ifdef DGL_DEPRECATED}
1632   GL_RESCALE_NORMAL = $803A;
1633   GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
1634   GL_SINGLE_COLOR = $81F9;
1635   GL_SEPARATE_SPECULAR_COLOR = $81FA;
1636   GL_ALIASED_POINT_SIZE_RANGE = $846D;
1637 {$endif}
1638
1639   // GL_VERSION_1_3
1640   GL_TEXTURE0 = $84C0;
1641   GL_TEXTURE1 = $84C1;
1642   GL_TEXTURE2 = $84C2;
1643   GL_TEXTURE3 = $84C3;
1644   GL_TEXTURE4 = $84C4;
1645   GL_TEXTURE5 = $84C5;
1646   GL_TEXTURE6 = $84C6;
1647   GL_TEXTURE7 = $84C7;
1648   GL_TEXTURE8 = $84C8;
1649   GL_TEXTURE9 = $84C9;
1650   GL_TEXTURE10 = $84CA;
1651   GL_TEXTURE11 = $84CB;
1652   GL_TEXTURE12 = $84CC;
1653   GL_TEXTURE13 = $84CD;
1654   GL_TEXTURE14 = $84CE;
1655   GL_TEXTURE15 = $84CF;
1656   GL_TEXTURE16 = $84D0;
1657   GL_TEXTURE17 = $84D1;
1658   GL_TEXTURE18 = $84D2;
1659   GL_TEXTURE19 = $84D3;
1660   GL_TEXTURE20 = $84D4;
1661   GL_TEXTURE21 = $84D5;
1662   GL_TEXTURE22 = $84D6;
1663   GL_TEXTURE23 = $84D7;
1664   GL_TEXTURE24 = $84D8;
1665   GL_TEXTURE25 = $84D9;
1666   GL_TEXTURE26 = $84DA;
1667   GL_TEXTURE27 = $84DB;
1668   GL_TEXTURE28 = $84DC;
1669   GL_TEXTURE29 = $84DD;
1670   GL_TEXTURE30 = $84DE;
1671   GL_TEXTURE31 = $84DF;
1672   GL_ACTIVE_TEXTURE = $84E0;
1673   GL_MULTISAMPLE = $809D;
1674   GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
1675   GL_SAMPLE_ALPHA_TO_ONE = $809F;
1676   GL_SAMPLE_COVERAGE = $80A0;
1677   GL_SAMPLE_BUFFERS = $80A8;
1678   GL_SAMPLES = $80A9;
1679   GL_SAMPLE_COVERAGE_VALUE = $80AA;
1680   GL_SAMPLE_COVERAGE_INVERT = $80AB;
1681   GL_TEXTURE_CUBE_MAP = $8513;
1682   GL_TEXTURE_BINDING_CUBE_MAP = $8514;
1683   GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
1684   GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
1685   GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
1686   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
1687   GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
1688   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
1689   GL_PROXY_TEXTURE_CUBE_MAP = $851B;
1690   GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
1691   GL_COMPRESSED_RGB = $84ED;
1692   GL_COMPRESSED_RGBA = $84EE;
1693   GL_TEXTURE_COMPRESSION_HINT = $84EF;
1694   GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
1695   GL_TEXTURE_COMPRESSED = $86A1;
1696   GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
1697   GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
1698   GL_CLAMP_TO_BORDER = $812D;
1699 {$ifdef DGL_DEPRECATED}
1700   GL_CLIENT_ACTIVE_TEXTURE = $84E1;
1701   GL_MAX_TEXTURE_UNITS = $84E2;
1702   GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
1703   GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
1704   GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
1705   GL_TRANSPOSE_COLOR_MATRIX = $84E6;
1706   GL_MULTISAMPLE_BIT = $20000000;
1707   GL_NORMAL_MAP = $8511;
1708   GL_REFLECTION_MAP = $8512;
1709   GL_COMPRESSED_ALPHA = $84E9;
1710   GL_COMPRESSED_LUMINANCE = $84EA;
1711   GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
1712   GL_COMPRESSED_INTENSITY = $84EC;
1713   GL_COMBINE = $8570;
1714   GL_COMBINE_RGB = $8571;
1715   GL_COMBINE_ALPHA = $8572;
1716   GL_SOURCE0_RGB = $8580;
1717   GL_SOURCE1_RGB = $8581;
1718   GL_SOURCE2_RGB = $8582;
1719   GL_SOURCE0_ALPHA = $8588;
1720   GL_SOURCE1_ALPHA = $8589;
1721   GL_SOURCE2_ALPHA = $858A;
1722   GL_OPERAND0_RGB = $8590;
1723   GL_OPERAND1_RGB = $8591;
1724   GL_OPERAND2_RGB = $8592;
1725   GL_OPERAND0_ALPHA = $8598;
1726   GL_OPERAND1_ALPHA = $8599;
1727   GL_OPERAND2_ALPHA = $859A;
1728   GL_RGB_SCALE = $8573;
1729   GL_ADD_SIGNED = $8574;
1730   GL_INTERPOLATE = $8575;
1731   GL_SUBTRACT = $84E7;
1732   GL_CONSTANT = $8576;
1733   GL_PRIMARY_COLOR = $8577;
1734   GL_PREVIOUS = $8578;
1735   GL_DOT3_RGB = $86AE;
1736   GL_DOT3_RGBA = $86AF;
1737 {$endif}
1738
1739   // GL_VERSION_1_4
1740   GL_BLEND_DST_RGB = $80C8;
1741   GL_BLEND_SRC_RGB = $80C9;
1742   GL_BLEND_DST_ALPHA = $80CA;
1743   GL_BLEND_SRC_ALPHA = $80CB;
1744   GL_POINT_FADE_THRESHOLD_SIZE = $8128;
1745   GL_DEPTH_COMPONENT16 = $81A5;
1746   GL_DEPTH_COMPONENT24 = $81A6;
1747   GL_DEPTH_COMPONENT32 = $81A7;
1748   GL_MIRRORED_REPEAT = $8370;
1749   GL_MAX_TEXTURE_LOD_BIAS = $84FD;
1750   GL_TEXTURE_LOD_BIAS = $8501;
1751   GL_INCR_WRAP = $8507;
1752   GL_DECR_WRAP = $8508;
1753   GL_TEXTURE_DEPTH_SIZE = $884A;
1754   GL_TEXTURE_COMPARE_MODE = $884C;
1755   GL_TEXTURE_COMPARE_FUNC = $884D;
1756 {$ifdef DGL_DEPRECATED}
1757   GL_POINT_SIZE_MIN = $8126;
1758   GL_POINT_SIZE_MAX = $8127;
1759   GL_POINT_DISTANCE_ATTENUATION = $8129;
1760   GL_GENERATE_MIPMAP = $8191;
1761   GL_GENERATE_MIPMAP_HINT = $8192;
1762   GL_FOG_COORDINATE_SOURCE = $8450;
1763   GL_FOG_COORDINATE = $8451;
1764   GL_FRAGMENT_DEPTH = $8452;
1765   GL_CURRENT_FOG_COORDINATE = $8453;
1766   GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
1767   GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
1768   GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
1769   GL_FOG_COORDINATE_ARRAY = $8457;
1770   GL_COLOR_SUM = $8458;
1771   GL_CURRENT_SECONDARY_COLOR = $8459;
1772   GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
1773   GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
1774   GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
1775   GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
1776   GL_SECONDARY_COLOR_ARRAY = $845E;
1777   GL_TEXTURE_FILTER_CONTROL = $8500;
1778   GL_DEPTH_TEXTURE_MODE = $884B;
1779   GL_COMPARE_R_TO_TEXTURE = $884E;
1780 {$endif}
1781
1782   // GL_VERSION_1_5
1783   GL_BUFFER_SIZE = $8764;
1784   GL_BUFFER_USAGE = $8765;
1785   GL_QUERY_COUNTER_BITS = $8864;
1786   GL_CURRENT_QUERY = $8865;
1787   GL_QUERY_RESULT = $8866;
1788   GL_QUERY_RESULT_AVAILABLE = $8867;
1789   GL_ARRAY_BUFFER = $8892;
1790   GL_ELEMENT_ARRAY_BUFFER = $8893;
1791   GL_ARRAY_BUFFER_BINDING = $8894;
1792   GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
1793   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
1794   GL_READ_ONLY = $88B8;
1795   GL_WRITE_ONLY = $88B9;
1796   GL_READ_WRITE = $88BA;
1797   GL_BUFFER_ACCESS = $88BB;
1798   GL_BUFFER_MAPPED = $88BC;
1799   GL_BUFFER_MAP_POINTER = $88BD;
1800   GL_STREAM_DRAW = $88E0;
1801   GL_STREAM_READ = $88E1;
1802   GL_STREAM_COPY = $88E2;
1803   GL_STATIC_DRAW = $88E4;
1804   GL_STATIC_READ = $88E5;
1805   GL_STATIC_COPY = $88E6;
1806   GL_DYNAMIC_DRAW = $88E8;
1807   GL_DYNAMIC_READ = $88E9;
1808   GL_DYNAMIC_COPY = $88EA;
1809   GL_SAMPLES_PASSED = $8914;
1810 {$ifdef DGL_DEPRECATED}
1811   GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
1812   GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
1813   GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
1814   GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
1815   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
1816   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
1817   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
1818   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
1819   GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
1820   GL_FOG_COORD_SRC = $8450;
1821   GL_FOG_COORD = $8451;
1822   GL_CURRENT_FOG_COORD = $8453;
1823   GL_FOG_COORD_ARRAY_TYPE = $8454;
1824   GL_FOG_COORD_ARRAY_STRIDE = $8455;
1825   GL_FOG_COORD_ARRAY_POINTER = $8456;
1826   GL_FOG_COORD_ARRAY = $8457;
1827   GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
1828   GL_SRC0_RGB = $8580;
1829   GL_SRC1_RGB = $8581;
1830   GL_SRC2_RGB = $8582;
1831   GL_SRC0_ALPHA = $8588;
1832   GL_SRC1_ALPHA = $8589;
1833   GL_SRC2_ALPHA = $858A;
1834 {$endif}
1835
1836   // GL_VERSION_2_0
1837   GL_BLEND_EQUATION_RGB = $8009;
1838   GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
1839   GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
1840   GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
1841   GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
1842   GL_CURRENT_VERTEX_ATTRIB = $8626;
1843   GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
1844   GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
1845   GL_STENCIL_BACK_FUNC = $8800;
1846   GL_STENCIL_BACK_FAIL = $8801;
1847   GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
1848   GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
1849   GL_MAX_DRAW_BUFFERS = $8824;
1850   GL_DRAW_BUFFER0 = $8825;
1851   GL_DRAW_BUFFER1 = $8826;
1852   GL_DRAW_BUFFER2 = $8827;
1853   GL_DRAW_BUFFER3 = $8828;
1854   GL_DRAW_BUFFER4 = $8829;
1855   GL_DRAW_BUFFER5 = $882A;
1856   GL_DRAW_BUFFER6 = $882B;
1857   GL_DRAW_BUFFER7 = $882C;
1858   GL_DRAW_BUFFER8 = $882D;
1859   GL_DRAW_BUFFER9 = $882E;
1860   GL_DRAW_BUFFER10 = $882F;
1861   GL_DRAW_BUFFER11 = $8830;
1862   GL_DRAW_BUFFER12 = $8831;
1863   GL_DRAW_BUFFER13 = $8832;
1864   GL_DRAW_BUFFER14 = $8833;
1865   GL_DRAW_BUFFER15 = $8834;
1866   GL_BLEND_EQUATION_ALPHA = $883D;
1867   GL_MAX_VERTEX_ATTRIBS = $8869;
1868   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
1869   GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
1870   GL_FRAGMENT_SHADER = $8B30;
1871   GL_VERTEX_SHADER = $8B31;
1872   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
1873   GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
1874   GL_MAX_VARYING_FLOATS = $8B4B;
1875   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
1876   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
1877   GL_SHADER_TYPE = $8B4F;
1878   GL_FLOAT_VEC2 = $8B50;
1879   GL_FLOAT_VEC3 = $8B51;
1880   GL_FLOAT_VEC4 = $8B52;
1881   GL_INT_VEC2 = $8B53;
1882   GL_INT_VEC3 = $8B54;
1883   GL_INT_VEC4 = $8B55;
1884   GL_BOOL = $8B56;
1885   GL_BOOL_VEC2 = $8B57;
1886   GL_BOOL_VEC3 = $8B58;
1887   GL_BOOL_VEC4 = $8B59;
1888   GL_FLOAT_MAT2 = $8B5A;
1889   GL_FLOAT_MAT3 = $8B5B;
1890   GL_FLOAT_MAT4 = $8B5C;
1891   GL_SAMPLER_1D = $8B5D;
1892   GL_SAMPLER_2D = $8B5E;
1893   GL_SAMPLER_3D = $8B5F;
1894   GL_SAMPLER_CUBE = $8B60;
1895   GL_SAMPLER_1D_SHADOW = $8B61;
1896   GL_SAMPLER_2D_SHADOW = $8B62;
1897   GL_DELETE_STATUS = $8B80;
1898   GL_COMPILE_STATUS = $8B81;
1899   GL_LINK_STATUS = $8B82;
1900   GL_VALIDATE_STATUS = $8B83;
1901   GL_INFO_LOG_LENGTH = $8B84;
1902   GL_ATTACHED_SHADERS = $8B85;
1903   GL_ACTIVE_UNIFORMS = $8B86;
1904   GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
1905   GL_SHADER_SOURCE_LENGTH = $8B88;
1906   GL_ACTIVE_ATTRIBUTES = $8B89;
1907   GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
1908   GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
1909   GL_SHADING_LANGUAGE_VERSION = $8B8C;
1910   GL_CURRENT_PROGRAM = $8B8D;
1911   GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
1912   GL_LOWER_LEFT = $8CA1;
1913   GL_UPPER_LEFT = $8CA2;
1914   GL_STENCIL_BACK_REF = $8CA3;
1915   GL_STENCIL_BACK_VALUE_MASK = $8CA4;
1916   GL_STENCIL_BACK_WRITEMASK = $8CA5;
1917 {$ifdef DGL_DEPRECATED}
1918   GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
1919   GL_POINT_SPRITE = $8861;
1920   GL_COORD_REPLACE = $8862;
1921   GL_MAX_TEXTURE_COORDS = $8871;
1922 {$endif}
1923
1924   // GL_VERSION_2_1
1925   GL_PIXEL_PACK_BUFFER = $88EB;
1926   GL_PIXEL_UNPACK_BUFFER = $88EC;
1927   GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
1928   GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
1929   GL_FLOAT_MAT2x3 = $8B65;
1930   GL_FLOAT_MAT2x4 = $8B66;
1931   GL_FLOAT_MAT3x2 = $8B67;
1932   GL_FLOAT_MAT3x4 = $8B68;
1933   GL_FLOAT_MAT4x2 = $8B69;
1934   GL_FLOAT_MAT4x3 = $8B6A;
1935   GL_SRGB = $8C40;
1936   GL_SRGB8 = $8C41;
1937   GL_SRGB_ALPHA = $8C42;
1938   GL_SRGB8_ALPHA8 = $8C43;
1939   GL_COMPRESSED_SRGB = $8C48;
1940   GL_COMPRESSED_SRGB_ALPHA = $8C49;
1941 {$ifdef DGL_DEPRECATED}
1942   GL_CURRENT_RASTER_SECONDARY_COLOR = $845F;
1943   GL_SLUMINANCE_ALPHA = $8C44;
1944   GL_SLUMINANCE8_ALPHA8 = $8C45;
1945   GL_SLUMINANCE = $8C46;
1946   GL_SLUMINANCE8 = $8C47;
1947   GL_COMPRESSED_SLUMINANCE = $8C4A;
1948   GL_COMPRESSED_SLUMINANCE_ALPHA = $8C4B;
1949 {$endif}
1950
1951   // GL_VERSION_3_0
1952   GL_COMPARE_REF_TO_TEXTURE = $884E;
1953   GL_CLIP_DISTANCE0 = $3000;
1954   GL_CLIP_DISTANCE1 = $3001;
1955   GL_CLIP_DISTANCE2 = $3002;
1956   GL_CLIP_DISTANCE3 = $3003;
1957   GL_CLIP_DISTANCE4 = $3004;
1958   GL_CLIP_DISTANCE5 = $3005;
1959   GL_CLIP_DISTANCE6 = $3006;
1960   GL_CLIP_DISTANCE7 = $3007;
1961   GL_MAX_CLIP_DISTANCES = $0D32;
1962   GL_MAJOR_VERSION = $821B;
1963   GL_MINOR_VERSION = $821C;
1964   GL_NUM_EXTENSIONS = $821D;
1965   GL_CONTEXT_FLAGS = $821E;
1966   GL_DEPTH_BUFFER = $8223;
1967   GL_STENCIL_BUFFER = $8224;
1968   GL_COMPRESSED_RED = $8225;
1969   GL_COMPRESSED_RG = $8226;
1970   GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = $0001;
1971   GL_RGBA32F = $8814;
1972   GL_RGB32F = $8815;
1973   GL_RGBA16F = $881A;
1974   GL_RGB16F = $881B;
1975   GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
1976   GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
1977   GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
1978   GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
1979   GL_CLAMP_READ_COLOR = $891C;
1980   GL_FIXED_ONLY = $891D;
1981   GL_MAX_VARYING_COMPONENTS = $8B4B;
1982   GL_TEXTURE_1D_ARRAY = $8C18;
1983   GL_PROXY_TEXTURE_1D_ARRAY = $8C19;
1984   GL_TEXTURE_2D_ARRAY = $8C1A;
1985   GL_PROXY_TEXTURE_2D_ARRAY = $8C1B;
1986   GL_TEXTURE_BINDING_1D_ARRAY = $8C1C;
1987   GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
1988   GL_R11F_G11F_B10F = $8C3A;
1989   GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
1990   GL_RGB9_E5 = $8C3D;
1991   GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
1992   GL_TEXTURE_SHARED_SIZE = $8C3F;
1993   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
1994   GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
1995   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
1996   GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
1997   GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
1998   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
1999   GL_PRIMITIVES_GENERATED = $8C87;
2000   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
2001   GL_RASTERIZER_DISCARD = $8C89;
2002   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
2003   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
2004   GL_INTERLEAVED_ATTRIBS = $8C8C;
2005   GL_SEPARATE_ATTRIBS = $8C8D;
2006   GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
2007   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
2008   GL_RGBA32UI = $8D70;
2009   GL_RGB32UI = $8D71;
2010   GL_RGBA16UI = $8D76;
2011   GL_RGB16UI = $8D77;
2012   GL_RGBA8UI = $8D7C;
2013   GL_RGB8UI = $8D7D;
2014   GL_RGBA32I = $8D82;
2015   GL_RGB32I = $8D83;
2016   GL_RGBA16I = $8D88;
2017   GL_RGB16I = $8D89;
2018   GL_RGBA8I = $8D8E;
2019   GL_RGB8I = $8D8F;
2020   GL_RED_INTEGER = $8D94;
2021   GL_GREEN_INTEGER = $8D95;
2022   GL_BLUE_INTEGER = $8D96;
2023   GL_RGB_INTEGER = $8D98;
2024   GL_RGBA_INTEGER = $8D99;
2025   GL_BGR_INTEGER = $8D9A;
2026   GL_BGRA_INTEGER = $8D9B;
2027   GL_SAMPLER_1D_ARRAY = $8DC0;
2028   GL_SAMPLER_2D_ARRAY = $8DC1;
2029   GL_SAMPLER_1D_ARRAY_SHADOW = $8DC3;
2030   GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
2031   GL_SAMPLER_CUBE_SHADOW = $8DC5;
2032   GL_UNSIGNED_INT_VEC2 = $8DC6;
2033   GL_UNSIGNED_INT_VEC3 = $8DC7;
2034   GL_UNSIGNED_INT_VEC4 = $8DC8;
2035   GL_INT_SAMPLER_1D = $8DC9;
2036   GL_INT_SAMPLER_2D = $8DCA;
2037   GL_INT_SAMPLER_3D = $8DCB;
2038   GL_INT_SAMPLER_CUBE = $8DCC;
2039   GL_INT_SAMPLER_1D_ARRAY = $8DCE;
2040   GL_INT_SAMPLER_2D_ARRAY = $8DCF;
2041   GL_UNSIGNED_INT_SAMPLER_1D = $8DD1;
2042   GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
2043   GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
2044   GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
2045   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = $8DD6;
2046   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
2047   GL_QUERY_WAIT = $8E13;
2048   GL_QUERY_NO_WAIT = $8E14;
2049   GL_QUERY_BY_REGION_WAIT = $8E15;
2050   GL_QUERY_BY_REGION_NO_WAIT = $8E16;
2051   GL_BUFFER_ACCESS_FLAGS = $911F;
2052   GL_BUFFER_MAP_LENGTH = $9120;
2053   GL_BUFFER_MAP_OFFSET = $9121;
2054   { Reuse tokens from ARB_depth_buffer_float }
2055   { reuse GL_DEPTH_COMPONENT32F }
2056   { reuse GL_DEPTH32F_STENCIL8 }
2057   { reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV }
2058   { Reuse tokens from ARB_framebuffer_object }
2059   { reuse GL_INVALID_FRAMEBUFFER_OPERATION }
2060   { reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING }
2061   { reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE }
2062   { reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE }
2063   { reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE }
2064   { reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE }
2065   { reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE }
2066   { reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE }
2067   { reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE }
2068   { reuse GL_FRAMEBUFFER_DEFAULT }
2069   { reuse GL_FRAMEBUFFER_UNDEFINED }
2070   { reuse GL_DEPTH_STENCIL_ATTACHMENT }
2071   { reuse GL_INDEX }
2072   { reuse GL_MAX_RENDERBUFFER_SIZE }
2073   { reuse GL_DEPTH_STENCIL }
2074   { reuse GL_UNSIGNED_INT_24_8 }
2075   { reuse GL_DEPTH24_STENCIL8 }
2076   { reuse GL_TEXTURE_STENCIL_SIZE }
2077   { reuse GL_TEXTURE_RED_TYPE }
2078   { reuse GL_TEXTURE_GREEN_TYPE }
2079   { reuse GL_TEXTURE_BLUE_TYPE }
2080   { reuse GL_TEXTURE_ALPHA_TYPE }
2081   { reuse GL_TEXTURE_DEPTH_TYPE }
2082   { reuse GL_UNSIGNED_NORMALIZED }
2083   { reuse GL_FRAMEBUFFER_BINDING }
2084   { reuse GL_DRAW_FRAMEBUFFER_BINDING }
2085   { reuse GL_RENDERBUFFER_BINDING }
2086   { reuse GL_READ_FRAMEBUFFER }
2087   { reuse GL_DRAW_FRAMEBUFFER }
2088   { reuse GL_READ_FRAMEBUFFER_BINDING }
2089   { reuse GL_RENDERBUFFER_SAMPLES }
2090   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE }
2091   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME }
2092   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL }
2093   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE }
2094   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2095   { reuse GL_FRAMEBUFFER_COMPLETE }
2096   { reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT }
2097   { reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT }
2098   { reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER }
2099   { reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER }
2100   { reuse GL_FRAMEBUFFER_UNSUPPORTED }
2101   { reuse GL_MAX_COLOR_ATTACHMENTS }
2102   { reuse GL_COLOR_ATTACHMENT0 }
2103   { reuse GL_COLOR_ATTACHMENT1 }
2104   { reuse GL_COLOR_ATTACHMENT2 }
2105   { reuse GL_COLOR_ATTACHMENT3 }
2106   { reuse GL_COLOR_ATTACHMENT4 }
2107   { reuse GL_COLOR_ATTACHMENT5 }
2108   { reuse GL_COLOR_ATTACHMENT6 }
2109   { reuse GL_COLOR_ATTACHMENT7 }
2110   { reuse GL_COLOR_ATTACHMENT8 }
2111   { reuse GL_COLOR_ATTACHMENT9 }
2112   { reuse GL_COLOR_ATTACHMENT10 }
2113   { reuse GL_COLOR_ATTACHMENT11 }
2114   { reuse GL_COLOR_ATTACHMENT12 }
2115   { reuse GL_COLOR_ATTACHMENT13 }
2116   { reuse GL_COLOR_ATTACHMENT14 }
2117   { reuse GL_COLOR_ATTACHMENT15 }
2118   { reuse GL_DEPTH_ATTACHMENT }
2119   { reuse GL_STENCIL_ATTACHMENT }
2120   { reuse GL_FRAMEBUFFER }
2121   { reuse GL_RENDERBUFFER }
2122   { reuse GL_RENDERBUFFER_WIDTH }
2123   { reuse GL_RENDERBUFFER_HEIGHT }
2124   { reuse GL_RENDERBUFFER_INTERNAL_FORMAT }
2125   { reuse GL_STENCIL_INDEX1 }
2126   { reuse GL_STENCIL_INDEX4 }
2127   { reuse GL_STENCIL_INDEX8 }
2128   { reuse GL_STENCIL_INDEX16 }
2129   { reuse GL_RENDERBUFFER_RED_SIZE }
2130   { reuse GL_RENDERBUFFER_GREEN_SIZE }
2131   { reuse GL_RENDERBUFFER_BLUE_SIZE }
2132   { reuse GL_RENDERBUFFER_ALPHA_SIZE }
2133   { reuse GL_RENDERBUFFER_DEPTH_SIZE }
2134   { reuse GL_RENDERBUFFER_STENCIL_SIZE }
2135   { reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }
2136   { reuse GL_MAX_SAMPLES }
2137   { Reuse tokens from ARB_framebuffer_sRGB }
2138   { reuse GL_FRAMEBUFFER_SRGB }
2139   { Reuse tokens from ARB_half_float_vertex }
2140   { reuse GL_HALF_FLOAT }
2141   { Reuse tokens from ARB_map_buffer_range }
2142   { reuse GL_MAP_READ_BIT }
2143   { reuse GL_MAP_WRITE_BIT }
2144   { reuse GL_MAP_INVALIDATE_RANGE_BIT }
2145   { reuse GL_MAP_INVALIDATE_BUFFER_BIT }
2146   { reuse GL_MAP_FLUSH_EXPLICIT_BIT }
2147   { reuse GL_MAP_UNSYNCHRONIZED_BIT }
2148   { Reuse tokens from ARB_texture_compression_rgtc }
2149   { reuse GL_COMPRESSED_RED_RGTC1 }
2150   { reuse GL_COMPRESSED_SIGNED_RED_RGTC1 }
2151   { reuse GL_COMPRESSED_RG_RGTC2 }
2152   { reuse GL_COMPRESSED_SIGNED_RG_RGTC2 }
2153   { Reuse tokens from ARB_texture_rg }
2154   { reuse GL_RG }
2155   { reuse GL_RG_INTEGER }
2156   { reuse GL_R8 }
2157   { reuse GL_R16 }
2158   { reuse GL_RG8 }
2159   { reuse GL_RG16 }
2160   { reuse GL_R16F }
2161   { reuse GL_R32F }
2162   { reuse GL_RG16F }
2163   { reuse GL_RG32F }
2164   { reuse GL_R8I }
2165   { reuse GL_R8UI }
2166   { reuse GL_R16I }
2167   { reuse GL_R16UI }
2168   { reuse GL_R32I }
2169   { reuse GL_R32UI }
2170   { reuse GL_RG8I }
2171   { reuse GL_RG8UI }
2172   { reuse GL_RG16I }
2173   { reuse GL_RG16UI }
2174   { reuse GL_RG32I }
2175   { reuse GL_RG32UI }
2176   { Reuse tokens from ARB_vertex_array_object }
2177   { reuse GL_VERTEX_ARRAY_BINDING }
2178 {$ifdef DGL_DEPRECATED}
2179   GL_CLAMP_VERTEX_COLOR = $891A;
2180   GL_CLAMP_FRAGMENT_COLOR = $891B;
2181   GL_ALPHA_INTEGER = $8D97;
2182   { Reuse tokens from ARB_framebuffer_object }
2183   { reuse GL_TEXTURE_LUMINANCE_TYPE }
2184   { reuse GL_TEXTURE_INTENSITY_TYPE }
2185 {$endif}
2186
2187   // GL_VERSION_3_1
2188   GL_SAMPLER_2D_RECT = $8B63;
2189   GL_SAMPLER_2D_RECT_SHADOW = $8B64;
2190   GL_SAMPLER_BUFFER = $8DC2;
2191   GL_INT_SAMPLER_2D_RECT = $8DCD;
2192   GL_INT_SAMPLER_BUFFER = $8DD0;
2193   GL_UNSIGNED_INT_SAMPLER_2D_RECT = $8DD5;
2194   GL_UNSIGNED_INT_SAMPLER_BUFFER = $8DD8;
2195   GL_TEXTURE_BUFFER = $8C2A;
2196   GL_MAX_TEXTURE_BUFFER_SIZE = $8C2B;
2197   GL_TEXTURE_BINDING_BUFFER = $8C2C;
2198   GL_TEXTURE_BUFFER_DATA_STORE_BINDING = $8C2D;
2199   GL_TEXTURE_BUFFER_FORMAT = $8C2E;
2200   GL_TEXTURE_RECTANGLE = $84F5;
2201   GL_TEXTURE_BINDING_RECTANGLE = $84F6;
2202   GL_PROXY_TEXTURE_RECTANGLE = $84F7;
2203   GL_MAX_RECTANGLE_TEXTURE_SIZE = $84F8;
2204   GL_RED_SNORM = $8F90;
2205   GL_RG_SNORM = $8F91;
2206   GL_RGB_SNORM = $8F92;
2207   GL_RGBA_SNORM = $8F93;
2208   GL_R8_SNORM = $8F94;
2209   GL_RG8_SNORM = $8F95;
2210   GL_RGB8_SNORM = $8F96;
2211   GL_RGBA8_SNORM = $8F97;
2212   GL_R16_SNORM = $8F98;
2213   GL_RG16_SNORM = $8F99;
2214   GL_RGB16_SNORM = $8F9A;
2215   GL_RGBA16_SNORM = $8F9B;
2216   GL_SIGNED_NORMALIZED = $8F9C;
2217   GL_PRIMITIVE_RESTART = $8F9D;
2218   GL_PRIMITIVE_RESTART_INDEX = $8F9E;
2219   { Reuse tokens from ARB_copy_buffer }
2220   { reuse GL_COPY_READ_BUFFER }
2221   { reuse GL_COPY_WRITE_BUFFER }
2222   { Reuse tokens from ARB_draw_instanced (none) }
2223   { Reuse tokens from ARB_uniform_buffer_object }
2224   { reuse GL_UNIFORM_BUFFER }
2225   { reuse GL_UNIFORM_BUFFER_BINDING }
2226   { reuse GL_UNIFORM_BUFFER_START }
2227   { reuse GL_UNIFORM_BUFFER_SIZE }
2228   { reuse GL_MAX_VERTEX_UNIFORM_BLOCKS }
2229   { reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS }
2230   { reuse GL_MAX_COMBINED_UNIFORM_BLOCKS }
2231   { reuse GL_MAX_UNIFORM_BUFFER_BINDINGS }
2232   { reuse GL_MAX_UNIFORM_BLOCK_SIZE }
2233   { reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS }
2234   { reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS }
2235   { reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT }
2236   { reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH }
2237   { reuse GL_ACTIVE_UNIFORM_BLOCKS }
2238   { reuse GL_UNIFORM_TYPE }
2239   { reuse GL_UNIFORM_SIZE }
2240   { reuse GL_UNIFORM_NAME_LENGTH }
2241   { reuse GL_UNIFORM_BLOCK_INDEX }
2242   { reuse GL_UNIFORM_OFFSET }
2243   { reuse GL_UNIFORM_ARRAY_STRIDE }
2244   { reuse GL_UNIFORM_MATRIX_STRIDE }
2245   { reuse GL_UNIFORM_IS_ROW_MAJOR }
2246   { reuse GL_UNIFORM_BLOCK_BINDING }
2247   { reuse GL_UNIFORM_BLOCK_DATA_SIZE }
2248   { reuse GL_UNIFORM_BLOCK_NAME_LENGTH }
2249   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS }
2250   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES }
2251   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER }
2252   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER }
2253   { reuse GL_INVALID_INDEX }
2254
2255   // GL_VERSION_3_2
2256   GL_CONTEXT_CORE_PROFILE_BIT = $00000001;
2257   GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = $00000002;
2258   GL_LINES_ADJACENCY = $000A;
2259   GL_LINE_STRIP_ADJACENCY = $000B;
2260   GL_TRIANGLES_ADJACENCY = $000C;
2261   GL_TRIANGLE_STRIP_ADJACENCY = $000D;
2262   GL_PROGRAM_POINT_SIZE = $8642;
2263   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = $8C29;
2264   GL_FRAMEBUFFER_ATTACHMENT_LAYERED = $8DA7;
2265   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = $8DA8;
2266   GL_GEOMETRY_SHADER = $8DD9;
2267   GL_GEOMETRY_VERTICES_OUT = $8916;
2268   GL_GEOMETRY_INPUT_TYPE = $8917;
2269   GL_GEOMETRY_OUTPUT_TYPE = $8918;
2270   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = $8DDF;
2271   GL_MAX_GEOMETRY_OUTPUT_VERTICES = $8DE0;
2272   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = $8DE1;
2273   GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
2274   GL_MAX_GEOMETRY_INPUT_COMPONENTS = $9123;
2275   GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = $9124;
2276   GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
2277   GL_CONTEXT_PROFILE_MASK = $9126;
2278   { reuse GL_MAX_VARYING_COMPONENTS }
2279   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2280   { Reuse tokens from ARB_depth_clamp }
2281   { reuse GL_DEPTH_CLAMP }
2282   { Reuse tokens from ARB_draw_elements_base_vertex (none) }
2283   { Reuse tokens from ARB_fragment_coord_conventions (none) }
2284   { Reuse tokens from ARB_provoking_vertex }
2285   { reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION }
2286   { reuse GL_FIRST_VERTEX_CONVENTION }
2287   { reuse GL_LAST_VERTEX_CONVENTION }
2288   { reuse GL_PROVOKING_VERTEX }
2289   { Reuse tokens from ARB_seamless_cube_map }
2290   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
2291   { Reuse tokens from ARB_sync }
2292   { reuse GL_MAX_SERVER_WAIT_TIMEOUT }
2293   { reuse GL_OBJECT_TYPE }
2294   { reuse GL_SYNC_CONDITION }
2295   { reuse GL_SYNC_STATUS }
2296   { reuse GL_SYNC_FLAGS }
2297   { reuse GL_SYNC_FENCE }
2298   { reuse GL_SYNC_GPU_COMMANDS_COMPLETE }
2299   { reuse GL_UNSIGNALED }
2300   { reuse GL_SIGNALED }
2301   { reuse GL_ALREADY_SIGNALED }
2302   { reuse GL_TIMEOUT_EXPIRED }
2303   { reuse GL_CONDITION_SATISFIED }
2304   { reuse GL_WAIT_FAILED }
2305   { reuse GL_TIMEOUT_IGNORED }
2306   { reuse GL_SYNC_FLUSH_COMMANDS_BIT }
2307   { reuse GL_TIMEOUT_IGNORED }
2308   { Reuse tokens from ARB_texture_multisample }
2309   { reuse GL_SAMPLE_POSITION }
2310   { reuse GL_SAMPLE_MASK }
2311   { reuse GL_SAMPLE_MASK_VALUE }
2312   { reuse GL_MAX_SAMPLE_MASK_WORDS }
2313   { reuse GL_TEXTURE_2D_MULTISAMPLE }
2314   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE }
2315   { reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY }
2316   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY }
2317   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE }
2318   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY }
2319   { reuse GL_TEXTURE_SAMPLES }
2320   { reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS }
2321   { reuse GL_SAMPLER_2D_MULTISAMPLE }
2322   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE }
2323   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE }
2324   { reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY }
2325   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2326   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2327   { reuse GL_MAX_COLOR_TEXTURE_SAMPLES }
2328   { reuse GL_MAX_DEPTH_TEXTURE_SAMPLES }
2329   { reuse GL_MAX_INTEGER_SAMPLES }
2330   { Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core }
2331
2332   // GL_VERSION_3_3
2333   GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
2334   { Reuse tokens from ARB_blend_func_extended }
2335   { reuse GL_SRC1_COLOR }
2336   { reuse GL_ONE_MINUS_SRC1_COLOR }
2337   { reuse GL_ONE_MINUS_SRC1_ALPHA }
2338   { reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS }
2339   { Reuse tokens from ARB_explicit_attrib_location (none) }
2340   { Reuse tokens from ARB_occlusion_query2 }
2341   { reuse GL_ANY_SAMPLES_PASSED }
2342   { Reuse tokens from ARB_sampler_objects }
2343   { reuse GL_SAMPLER_BINDING }
2344   { Reuse tokens from ARB_shader_bit_encoding (none) }
2345   { Reuse tokens from ARB_texture_rgb10_a2ui }
2346   { reuse GL_RGB10_A2UI }
2347   { Reuse tokens from ARB_texture_swizzle }
2348   { reuse GL_TEXTURE_SWIZZLE_R }
2349   { reuse GL_TEXTURE_SWIZZLE_G }
2350   { reuse GL_TEXTURE_SWIZZLE_B }
2351   { reuse GL_TEXTURE_SWIZZLE_A }
2352   { reuse GL_TEXTURE_SWIZZLE_RGBA }
2353   { Reuse tokens from ARB_timer_query }
2354   { reuse GL_TIME_ELAPSED }
2355   { reuse GL_TIMESTAMP }
2356   { Reuse tokens from ARB_vertex_type_2_10_10_10_rev }
2357   { reuse GL_INT_2_10_10_10_REV }
2358
2359   // GL_VERSION_4_0
2360   GL_SAMPLE_SHADING = $8C36;
2361   GL_MIN_SAMPLE_SHADING_VALUE = $8C37;
2362   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
2363   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
2364   GL_TEXTURE_CUBE_MAP_ARRAY = $9009;
2365   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = $900A;
2366   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = $900B;
2367   GL_SAMPLER_CUBE_MAP_ARRAY = $900C;
2368   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = $900D;
2369   GL_INT_SAMPLER_CUBE_MAP_ARRAY = $900E;
2370   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = $900F;
2371   { Reuse tokens from ARB_texture_query_lod (none) }
2372   { Reuse tokens from ARB_draw_buffers_blend (none) }
2373   { Reuse tokens from ARB_draw_indirect }
2374   { reuse GL_DRAW_INDIRECT_BUFFER }
2375   { reuse GL_DRAW_INDIRECT_BUFFER_BINDING }
2376   { Reuse tokens from ARB_gpu_shader5 }
2377   { reuse GL_GEOMETRY_SHADER_INVOCATIONS }
2378   { reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS }
2379   { reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET }
2380   { reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET }
2381   { reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS }
2382   { reuse GL_MAX_VERTEX_STREAMS }
2383   { Reuse tokens from ARB_gpu_shader_fp64 }
2384   { reuse GL_DOUBLE_VEC2 }
2385   { reuse GL_DOUBLE_VEC3 }
2386   { reuse GL_DOUBLE_VEC4 }
2387   { reuse GL_DOUBLE_MAT2 }
2388   { reuse GL_DOUBLE_MAT3 }
2389   { reuse GL_DOUBLE_MAT4 }
2390   { reuse GL_DOUBLE_MAT2x3 }
2391   { reuse GL_DOUBLE_MAT2x4 }
2392   { reuse GL_DOUBLE_MAT3x2 }
2393   { reuse GL_DOUBLE_MAT3x4 }
2394   { reuse GL_DOUBLE_MAT4x2 }
2395   { reuse GL_DOUBLE_MAT4x3 }
2396   { Reuse tokens from ARB_shader_subroutine }
2397   { reuse GL_ACTIVE_SUBROUTINES }
2398   { reuse GL_ACTIVE_SUBROUTINE_UNIFORMS }
2399   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS }
2400   { reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH }
2401   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH }
2402   { reuse GL_MAX_SUBROUTINES }
2403   { reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS }
2404   { reuse GL_NUM_COMPATIBLE_SUBROUTINES }
2405   { reuse GL_COMPATIBLE_SUBROUTINES }
2406   { Reuse tokens from ARB_tessellation_shader }
2407   { reuse GL_PATCHES }
2408   { reuse GL_PATCH_VERTICES }
2409   { reuse GL_PATCH_DEFAULT_INNER_LEVEL }
2410   { reuse GL_PATCH_DEFAULT_OUTER_LEVEL }
2411   { reuse GL_TESS_CONTROL_OUTPUT_VERTICES }
2412   { reuse GL_TESS_GEN_MODE }
2413   { reuse GL_TESS_GEN_SPACING }
2414   { reuse GL_TESS_GEN_VERTEX_ORDER }
2415   { reuse GL_TESS_GEN_POINT_MODE }
2416   { reuse GL_ISOLINES }
2417   { reuse GL_FRACTIONAL_ODD }
2418   { reuse GL_FRACTIONAL_EVEN }
2419   { reuse GL_MAX_PATCH_VERTICES }
2420   { reuse GL_MAX_TESS_GEN_LEVEL }
2421   { reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS }
2422   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS }
2423   { reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS }
2424   { reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS }
2425   { reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS }
2426   { reuse GL_MAX_TESS_PATCH_COMPONENTS }
2427   { reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS }
2428   { reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS }
2429   { reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS }
2430   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS }
2431   { reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS }
2432   { reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS }
2433   { reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS }
2434   { reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS }
2435   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER }
2436   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER }
2437   { reuse GL_TESS_EVALUATION_SHADER }
2438   { reuse GL_TESS_CONTROL_SHADER }
2439   { Reuse tokens from ARB_texture_buffer_object_rgb32 (none) }
2440   { Reuse tokens from ARB_transform_feedback2 }
2441   { reuse GL_TRANSFORM_FEEDBACK }
2442   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED }
2443   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE }
2444   { reuse GL_TRANSFORM_FEEDBACK_BINDING }
2445   { Reuse tokens from ARB_transform_feedback3 }
2446   { reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS }
2447   { reuse GL_MAX_VERTEX_STREAMS }
2448
2449   // GL_VERSION_4_1
2450   { Reuse tokens from ARB_ES2_compatibility }
2451   { reuse GL_FIXED }
2452   { reuse GL_IMPLEMENTATION_COLOR_READ_TYPE }
2453   { reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT }
2454   { reuse GL_LOW_FLOAT }
2455   { reuse GL_MEDIUM_FLOAT }
2456   { reuse GL_HIGH_FLOAT }
2457   { reuse GL_LOW_INT }
2458   { reuse GL_MEDIUM_INT }
2459   { reuse GL_HIGH_INT }
2460   { reuse GL_SHADER_COMPILER }
2461   { reuse GL_NUM_SHADER_BINARY_FORMATS }
2462   { reuse GL_MAX_VERTEX_UNIFORM_VECTORS }
2463   { reuse GL_MAX_VARYING_VECTORS }
2464   { reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS }
2465   { reuse GL_RGB565 }
2466   { Reuse tokens from ARB_get_program_binary }
2467   { reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT }
2468   { reuse GL_PROGRAM_BINARY_LENGTH }
2469   { reuse GL_NUM_PROGRAM_BINARY_FORMATS }
2470   { reuse GL_PROGRAM_BINARY_FORMATS }
2471   { Reuse tokens from ARB_separate_shader_objects }
2472   { reuse GL_VERTEX_SHADER_BIT }
2473   { reuse GL_FRAGMENT_SHADER_BIT }
2474   { reuse GL_GEOMETRY_SHADER_BIT }
2475   { reuse GL_TESS_CONTROL_SHADER_BIT }
2476   { reuse GL_TESS_EVALUATION_SHADER_BIT }
2477   { reuse GL_ALL_SHADER_BITS }
2478   { reuse GL_PROGRAM_SEPARABLE }
2479   { reuse GL_ACTIVE_PROGRAM }
2480   { reuse GL_PROGRAM_PIPELINE_BINDING }
2481   { Reuse tokens from ARB_shader_precision (none) }
2482   { Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already }
2483   { Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already }
2484   { reuse GL_MAX_VIEWPORTS }
2485   { reuse GL_VIEWPORT_SUBPIXEL_BITS }
2486   { reuse GL_VIEWPORT_BOUNDS_RANGE }
2487   { reuse GL_LAYER_PROVOKING_VERTEX }
2488   { reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX }
2489   { reuse GL_UNDEFINED_VERTEX }
2490
2491   // GL_VERSION_4_2
2492   { Reuse tokens from ARB_base_instance (none) }
2493   { Reuse tokens from ARB_shading_language_420pack (none) }
2494   { Reuse tokens from ARB_transform_feedback_instanced (none) }
2495   { Reuse tokens from ARB_compressed_texture_pixel_storage }
2496   { reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH }
2497   { reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT }
2498   { reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH }
2499   { reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE }
2500   { reuse GL_PACK_COMPRESSED_BLOCK_WIDTH }
2501   { reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT }
2502   { reuse GL_PACK_COMPRESSED_BLOCK_DEPTH }
2503   { reuse GL_PACK_COMPRESSED_BLOCK_SIZE }
2504   { Reuse tokens from ARB_conservative_depth (none) }
2505   { Reuse tokens from ARB_internalformat_query }
2506   { reuse GL_NUM_SAMPLE_COUNTS }
2507   { Reuse tokens from ARB_map_buffer_alignment }
2508   { reuse GL_MIN_MAP_BUFFER_ALIGNMENT }
2509   { Reuse tokens from ARB_shader_atomic_counters }
2510   { reuse GL_ATOMIC_COUNTER_BUFFER }
2511   { reuse GL_ATOMIC_COUNTER_BUFFER_BINDING }
2512   { reuse GL_ATOMIC_COUNTER_BUFFER_START }
2513   { reuse GL_ATOMIC_COUNTER_BUFFER_SIZE }
2514   { reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE }
2515   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS }
2516   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES }
2517   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER }
2518   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER }
2519   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER }
2520   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER }
2521   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER }
2522   { reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS }
2523   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS }
2524   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS }
2525   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS }
2526   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS }
2527   { reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS }
2528   { reuse GL_MAX_VERTEX_ATOMIC_COUNTERS }
2529   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS }
2530   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS }
2531   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS }
2532   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS }
2533   { reuse GL_MAX_COMBINED_ATOMIC_COUNTERS }
2534   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE }
2535   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS }
2536   { reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS }
2537   { reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX }
2538   { reuse GL_UNSIGNED_INT_ATOMIC_COUNTER }
2539   { Reuse tokens from ARB_shader_image_load_store }
2540   { reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT }
2541   { reuse GL_ELEMENT_ARRAY_BARRIER_BIT }
2542   { reuse GL_UNIFORM_BARRIER_BIT }
2543   { reuse GL_TEXTURE_FETCH_BARRIER_BIT }
2544   { reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT }
2545   { reuse GL_COMMAND_BARRIER_BIT }
2546   { reuse GL_PIXEL_BUFFER_BARRIER_BIT }
2547   { reuse GL_TEXTURE_UPDATE_BARRIER_BIT }
2548   { reuse GL_BUFFER_UPDATE_BARRIER_BIT }
2549   { reuse GL_FRAMEBUFFER_BARRIER_BIT }
2550   { reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT }
2551   { reuse GL_ATOMIC_COUNTER_BARRIER_BIT }
2552   { reuse GL_ALL_BARRIER_BITS }
2553   { reuse GL_MAX_IMAGE_UNITS }
2554   { reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS }
2555   { reuse GL_IMAGE_BINDING_NAME }
2556   { reuse GL_IMAGE_BINDING_LEVEL }
2557   { reuse GL_IMAGE_BINDING_LAYERED }
2558   { reuse GL_IMAGE_BINDING_LAYER }
2559   { reuse GL_IMAGE_BINDING_ACCESS }
2560   { reuse GL_IMAGE_1D }
2561   { reuse GL_IMAGE_2D }
2562   { reuse GL_IMAGE_3D }
2563   { reuse GL_IMAGE_2D_RECT }
2564   { reuse GL_IMAGE_CUBE }
2565   { reuse GL_IMAGE_BUFFER }
2566   { reuse GL_IMAGE_1D_ARRAY }
2567   { reuse GL_IMAGE_2D_ARRAY }
2568   { reuse GL_IMAGE_CUBE_MAP_ARRAY }
2569   { reuse GL_IMAGE_2D_MULTISAMPLE }
2570   { reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY }
2571   { reuse GL_INT_IMAGE_1D }
2572   { reuse GL_INT_IMAGE_2D }
2573   { reuse GL_INT_IMAGE_3D }
2574   { reuse GL_INT_IMAGE_2D_RECT }
2575   { reuse GL_INT_IMAGE_CUBE }
2576   { reuse GL_INT_IMAGE_BUFFER }
2577   { reuse GL_INT_IMAGE_1D_ARRAY }
2578   { reuse GL_INT_IMAGE_2D_ARRAY }
2579   { reuse GL_INT_IMAGE_CUBE_MAP_ARRAY }
2580   { reuse GL_INT_IMAGE_2D_MULTISAMPLE }
2581   { reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2582   { reuse GL_UNSIGNED_INT_IMAGE_1D }
2583   { reuse GL_UNSIGNED_INT_IMAGE_2D }
2584   { reuse GL_UNSIGNED_INT_IMAGE_3D }
2585   { reuse GL_UNSIGNED_INT_IMAGE_2D_RECT }
2586   { reuse GL_UNSIGNED_INT_IMAGE_CUBE }
2587   { reuse GL_UNSIGNED_INT_IMAGE_BUFFER }
2588   { reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY }
2589   { reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY }
2590   { reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY }
2591   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE }
2592   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2593   { reuse GL_MAX_IMAGE_SAMPLES }
2594   { reuse GL_IMAGE_BINDING_FORMAT }
2595   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE }
2596   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE }
2597   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS }
2598   { reuse GL_MAX_VERTEX_IMAGE_UNIFORMS }
2599   { reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS }
2600   { reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS }
2601   { reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS }
2602   { reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS }
2603   { reuse GL_MAX_COMBINED_IMAGE_UNIFORMS }
2604   { Reuse tokens from ARB_shading_language_packing (none) }
2605   { Reuse tokens from ARB_texture_storage }
2606   { reuse GL_TEXTURE_IMMUTABLE_FORMAT }
2607
2608   // GL_VERSION_4_3
2609   GL_NUM_SHADING_LANGUAGE_VERSIONS  = $82E9;
2610   GL_VERTEX_ATTRIB_ARRAY_LONG = $874E;
2611   { Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) }
2612   { Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) }
2613   { Reuse tokens from ARB_shader_image_size (none, GLSL only) }
2614   { Reuse tokens from ARB_ES3_compatibility }
2615   { reuse GL_COMPRESSED_RGB8_ETC2 }
2616   { reuse GL_COMPRESSED_SRGB8_ETC2 }
2617   { reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2618   { reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2619   { reuse GL_COMPRESSED_RGBA8_ETC2_EAC }
2620   { reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC }
2621   { reuse GL_COMPRESSED_R11_EAC }
2622   { reuse GL_COMPRESSED_SIGNED_R11_EAC }
2623   { reuse GL_COMPRESSED_RG11_EAC }
2624   { reuse GL_COMPRESSED_SIGNED_RG11_EAC }
2625   { reuse GL_PRIMITIVE_RESTART_FIXED_INDEX }
2626   { reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE }
2627   { reuse GL_MAX_ELEMENT_INDEX }
2628   { Reuse tokens from ARB_clear_buffer_object (none) }
2629   { Reuse tokens from ARB_compute_shader }
2630   { reuse GL_COMPUTE_SHADER }
2631   { reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS }
2632   { reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS }
2633   { reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS }
2634   { reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE }
2635   { reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS }
2636   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS }
2637   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS }
2638   { reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS }
2639   { reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS }
2640   { reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT }
2641   { reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE }
2642   { reuse GL_COMPUTE_LOCAL_WORK_SIZE }
2643   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER }
2644   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER }
2645   { reuse GL_DISPATCH_INDIRECT_BUFFER }
2646   { reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING }
2647   { Reuse tokens from ARB_copy_image (none) }
2648   { Reuse tokens from KHR_debug }
2649   { reuse GL_DEBUG_OUTPUT_SYNCHRONOUS }
2650   { reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH }
2651   { reuse GL_DEBUG_CALLBACK_FUNCTION }
2652   { reuse GL_DEBUG_CALLBACK_USER_PARAM }
2653   { reuse GL_DEBUG_SOURCE_API }
2654   { reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM }
2655   { reuse GL_DEBUG_SOURCE_SHADER_COMPILER }
2656   { reuse GL_DEBUG_SOURCE_THIRD_PARTY }
2657   { reuse GL_DEBUG_SOURCE_APPLICATION }
2658   { reuse GL_DEBUG_SOURCE_OTHER }
2659   { reuse GL_DEBUG_TYPE_ERROR }
2660   { reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR }
2661   { reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR }
2662   { reuse GL_DEBUG_TYPE_PORTABILITY }
2663   { reuse GL_DEBUG_TYPE_PERFORMANCE }
2664   { reuse GL_DEBUG_TYPE_OTHER }
2665   { reuse GL_MAX_DEBUG_MESSAGE_LENGTH }
2666   { reuse GL_MAX_DEBUG_LOGGED_MESSAGES }
2667   { reuse GL_DEBUG_LOGGED_MESSAGES }
2668   { reuse GL_DEBUG_SEVERITY_HIGH }
2669   { reuse GL_DEBUG_SEVERITY_MEDIUM }
2670   { reuse GL_DEBUG_SEVERITY_LOW }
2671   { reuse GL_DEBUG_TYPE_MARKER }
2672   { reuse GL_DEBUG_TYPE_PUSH_GROUP }
2673   { reuse GL_DEBUG_TYPE_POP_GROUP }
2674   { reuse GL_DEBUG_SEVERITY_NOTIFICATION }
2675   { reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH }
2676   { reuse GL_DEBUG_GROUP_STACK_DEPTH }
2677   { reuse GL_BUFFER }
2678   { reuse GL_SHADER }
2679   { reuse GL_PROGRAM }
2680   { reuse GL_QUERY }
2681   { reuse GL_PROGRAM_PIPELINE }
2682   { reuse GL_SAMPLER }
2683   { reuse GL_DISPLAY_LIST }
2684   { reuse GL_MAX_LABEL_LENGTH }
2685   { reuse GL_DEBUG_OUTPUT }
2686   { reuse GL_CONTEXT_FLAG_DEBUG_BIT }
2687   { reuse GL_STACK_UNDERFLOW }
2688   { reuse GL_STACK_OVERFLOW }
2689   { Reuse tokens from ARB_explicit_uniform_location }
2690   { reuse GL_MAX_UNIFORM_LOCATIONS }
2691   { Reuse tokens from ARB_framebuffer_no_attachments }
2692   { reuse GL_FRAMEBUFFER_DEFAULT_WIDTH }
2693   { reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT }
2694   { reuse GL_FRAMEBUFFER_DEFAULT_LAYERS }
2695   { reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES }
2696   { reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS }
2697   { reuse GL_MAX_FRAMEBUFFER_WIDTH }
2698   { reuse GL_MAX_FRAMEBUFFER_HEIGHT }
2699   { reuse GL_MAX_FRAMEBUFFER_LAYERS }
2700   { reuse GL_MAX_FRAMEBUFFER_SAMPLES }
2701   { Reuse tokens from ARB_internalformat_query2 }
2702   { reuse GL_INTERNALFORMAT_SUPPORTED }
2703   { reuse GL_INTERNALFORMAT_PREFERRED }
2704   { reuse GL_INTERNALFORMAT_RED_SIZE }
2705   { reuse GL_INTERNALFORMAT_GREEN_SIZE }
2706   { reuse GL_INTERNALFORMAT_BLUE_SIZE }
2707   { reuse GL_INTERNALFORMAT_ALPHA_SIZE }
2708   { reuse GL_INTERNALFORMAT_DEPTH_SIZE }
2709   { reuse GL_INTERNALFORMAT_STENCIL_SIZE }
2710   { reuse GL_INTERNALFORMAT_SHARED_SIZE }
2711   { reuse GL_INTERNALFORMAT_RED_TYPE }
2712   { reuse GL_INTERNALFORMAT_GREEN_TYPE }
2713   { reuse GL_INTERNALFORMAT_BLUE_TYPE }
2714   { reuse GL_INTERNALFORMAT_ALPHA_TYPE }
2715   { reuse GL_INTERNALFORMAT_DEPTH_TYPE }
2716   { reuse GL_INTERNALFORMAT_STENCIL_TYPE }
2717   { reuse GL_MAX_WIDTH }
2718   { reuse GL_MAX_HEIGHT }
2719   { reuse GL_MAX_DEPTH }
2720   { reuse GL_MAX_LAYERS }
2721   { reuse GL_MAX_COMBINED_DIMENSIONS }
2722   { reuse GL_COLOR_COMPONENTS }
2723   { reuse GL_DEPTH_COMPONENTS }
2724   { reuse GL_STENCIL_COMPONENTS }
2725   { reuse GL_COLOR_RENDERABLE }
2726   { reuse GL_DEPTH_RENDERABLE }
2727   { reuse GL_STENCIL_RENDERABLE }
2728   { reuse GL_FRAMEBUFFER_RENDERABLE }
2729   { reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED }
2730   { reuse GL_FRAMEBUFFER_BLEND }
2731   { reuse GL_READ_PIXELS }
2732   { reuse GL_READ_PIXELS_FORMAT }
2733   { reuse GL_READ_PIXELS_TYPE }
2734   { reuse GL_TEXTURE_IMAGE_FORMAT }
2735   { reuse GL_TEXTURE_IMAGE_TYPE }
2736   { reuse GL_GET_TEXTURE_IMAGE_FORMAT }
2737   { reuse GL_GET_TEXTURE_IMAGE_TYPE }
2738   { reuse GL_MIPMAP }
2739   { reuse GL_MANUAL_GENERATE_MIPMAP }
2740   { reuse GL_AUTO_GENERATE_MIPMAP }
2741   { reuse GL_COLOR_ENCODING }
2742   { reuse GL_SRGB_READ }
2743   { reuse GL_SRGB_WRITE }
2744   { reuse GL_FILTER }
2745   { reuse GL_VERTEX_TEXTURE }
2746   { reuse GL_TESS_CONTROL_TEXTURE }
2747   { reuse GL_TESS_EVALUATION_TEXTURE }
2748   { reuse GL_GEOMETRY_TEXTURE }
2749   { reuse GL_FRAGMENT_TEXTURE }
2750   { reuse GL_COMPUTE_TEXTURE }
2751   { reuse GL_TEXTURE_SHADOW }
2752   { reuse GL_TEXTURE_GATHER }
2753   { reuse GL_TEXTURE_GATHER_SHADOW }
2754   { reuse GL_SHADER_IMAGE_LOAD }
2755   { reuse GL_SHADER_IMAGE_STORE }
2756   { reuse GL_SHADER_IMAGE_ATOMIC }
2757   { reuse GL_IMAGE_TEXEL_SIZE }
2758   { reuse GL_IMAGE_COMPATIBILITY_CLASS }
2759   { reuse GL_IMAGE_PIXEL_FORMAT }
2760   { reuse GL_IMAGE_PIXEL_TYPE }
2761   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST }
2762   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST }
2763   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE }
2764   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE }
2765   { reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH }
2766   { reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT }
2767   { reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE }
2768   { reuse GL_CLEAR_BUFFER }
2769   { reuse GL_TEXTURE_VIEW }
2770   { reuse GL_VIEW_COMPATIBILITY_CLASS }
2771   { reuse GL_FULL_SUPPORT }
2772   { reuse GL_CAVEAT_SUPPORT }
2773   { reuse GL_IMAGE_CLASS_4_X_32 }
2774   { reuse GL_IMAGE_CLASS_2_X_32 }
2775   { reuse GL_IMAGE_CLASS_1_X_32 }
2776   { reuse GL_IMAGE_CLASS_4_X_16 }
2777   { reuse GL_IMAGE_CLASS_2_X_16 }
2778   { reuse GL_IMAGE_CLASS_1_X_16 }
2779   { reuse GL_IMAGE_CLASS_4_X_8 }
2780   { reuse GL_IMAGE_CLASS_2_X_8 }
2781   { reuse GL_IMAGE_CLASS_1_X_8 }
2782   { reuse GL_IMAGE_CLASS_11_11_10 }
2783   { reuse GL_IMAGE_CLASS_10_10_10_2 }
2784   { reuse GL_VIEW_CLASS_128_BITS }
2785   { reuse GL_VIEW_CLASS_96_BITS }
2786   { reuse GL_VIEW_CLASS_64_BITS }
2787   { reuse GL_VIEW_CLASS_48_BITS }
2788   { reuse GL_VIEW_CLASS_32_BITS }
2789   { reuse GL_VIEW_CLASS_24_BITS }
2790   { reuse GL_VIEW_CLASS_16_BITS }
2791   { reuse GL_VIEW_CLASS_8_BITS }
2792   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGB }
2793   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA }
2794   { reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA }
2795   { reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA }
2796   { reuse GL_VIEW_CLASS_RGTC1_RED }
2797   { reuse GL_VIEW_CLASS_RGTC2_RG }
2798   { reuse GL_VIEW_CLASS_BPTC_UNORM }
2799   { reuse GL_VIEW_CLASS_BPTC_FLOAT }
2800   { Reuse tokens from ARB_invalidate_subdata (none) }
2801   { Reuse tokens from ARB_multi_draw_indirect (none) }
2802   { Reuse tokens from ARB_program_interface_query }
2803   { reuse GL_UNIFORM }
2804   { reuse GL_UNIFORM_BLOCK }
2805   { reuse GL_PROGRAM_INPUT }
2806   { reuse GL_PROGRAM_OUTPUT }
2807   { reuse GL_BUFFER_VARIABLE }
2808   { reuse GL_SHADER_STORAGE_BLOCK }
2809   { reuse GL_VERTEX_SUBROUTINE }
2810   { reuse GL_TESS_CONTROL_SUBROUTINE }
2811   { reuse GL_TESS_EVALUATION_SUBROUTINE }
2812   { reuse GL_GEOMETRY_SUBROUTINE }
2813   { reuse GL_FRAGMENT_SUBROUTINE }
2814   { reuse GL_COMPUTE_SUBROUTINE }
2815   { reuse GL_VERTEX_SUBROUTINE_UNIFORM }
2816   { reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM }
2817   { reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM }
2818   { reuse GL_GEOMETRY_SUBROUTINE_UNIFORM }
2819   { reuse GL_FRAGMENT_SUBROUTINE_UNIFORM }
2820   { reuse GL_COMPUTE_SUBROUTINE_UNIFORM }
2821   { reuse GL_TRANSFORM_FEEDBACK_VARYING }
2822   { reuse GL_ACTIVE_RESOURCES }
2823   { reuse GL_MAX_NAME_LENGTH }
2824   { reuse GL_MAX_NUM_ACTIVE_VARIABLES }
2825   { reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES }
2826   { reuse GL_NAME_LENGTH }
2827   { reuse GL_TYPE }
2828   { reuse GL_ARRAY_SIZE }
2829   { reuse GL_OFFSET }
2830   { reuse GL_BLOCK_INDEX }
2831   { reuse GL_ARRAY_STRIDE }
2832   { reuse GL_MATRIX_STRIDE }
2833   { reuse GL_IS_ROW_MAJOR }
2834   { reuse GL_ATOMIC_COUNTER_BUFFER_INDEX }
2835   { reuse GL_BUFFER_BINDING }
2836   { reuse GL_BUFFER_DATA_SIZE }
2837   { reuse GL_NUM_ACTIVE_VARIABLES }
2838   { reuse GL_ACTIVE_VARIABLES }
2839   { reuse GL_REFERENCED_BY_VERTEX_SHADER }
2840   { reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER }
2841   { reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER }
2842   { reuse GL_REFERENCED_BY_GEOMETRY_SHADER }
2843   { reuse GL_REFERENCED_BY_FRAGMENT_SHADER }
2844   { reuse GL_REFERENCED_BY_COMPUTE_SHADER }
2845   { reuse GL_TOP_LEVEL_ARRAY_SIZE }
2846   { reuse GL_TOP_LEVEL_ARRAY_STRIDE }
2847   { reuse GL_LOCATION }
2848   { reuse GL_LOCATION_INDEX }
2849   { reuse GL_IS_PER_PATCH }
2850   { Reuse tokens from ARB_robust_buffer_access_behavior (none) }
2851   { Reuse tokens from ARB_shader_storage_buffer_object }
2852   { reuse GL_SHADER_STORAGE_BUFFER }
2853   { reuse GL_SHADER_STORAGE_BUFFER_BINDING }
2854   { reuse GL_SHADER_STORAGE_BUFFER_START }
2855   { reuse GL_SHADER_STORAGE_BUFFER_SIZE }
2856   { reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS }
2857   { reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS }
2858   { reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS }
2859   { reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS }
2860   { reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS }
2861   { reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS }
2862   { reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS }
2863   { reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS }
2864   { reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE }
2865   { reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT }
2866   { reuse GL_SHADER_STORAGE_BARRIER_BIT }
2867   { reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES }
2868   { Reuse tokens from ARB_stencil_texturing }
2869   { reuse GL_DEPTH_STENCIL_TEXTURE_MODE }
2870   { Reuse tokens from ARB_texture_buffer_range }
2871   { reuse GL_TEXTURE_BUFFER_OFFSET }
2872   { reuse GL_TEXTURE_BUFFER_SIZE }
2873   { reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT }
2874   { Reuse tokens from ARB_texture_query_levels (none) }
2875   { Reuse tokens from ARB_texture_storage_multisample (none) }
2876   { Reuse tokens from ARB_texture_view }
2877   { reuse GL_TEXTURE_VIEW_MIN_LEVEL }
2878   { reuse GL_TEXTURE_VIEW_NUM_LEVELS }
2879   { reuse GL_TEXTURE_VIEW_MIN_LAYER }
2880   { reuse GL_TEXTURE_VIEW_NUM_LAYERS }
2881   { reuse GL_TEXTURE_IMMUTABLE_LEVELS }
2882   { Reuse tokens from ARB_vertex_attrib_binding }
2883   { reuse GL_VERTEX_ATTRIB_BINDING }
2884   { reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET }
2885   { reuse GL_VERTEX_BINDING_DIVISOR }
2886   { reuse GL_VERTEX_BINDING_OFFSET }
2887   { reuse GL_VERTEX_BINDING_STRIDE }
2888   { reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET }
2889   { reuse GL_MAX_VERTEX_ATTRIB_BINDINGS }
2890
2891
2892   // GL_3DFX_multisample
2893   GL_MULTISAMPLE_3DFX = $86B2;
2894   GL_SAMPLE_BUFFERS_3DFX = $86B3;
2895   GL_SAMPLES_3DFX = $86B4;
2896   GL_MULTISAMPLE_BIT_3DFX = $20000000;
2897
2898   // GL_3DFX_texture_compression_FXT1
2899   GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
2900   GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
2901
2902   // GL_APPLE_client_storage
2903   GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
2904
2905   // GL_APPLE_element_array
2906   GL_ELEMENT_ARRAY_APPLE = $8A0C;
2907   GL_ELEMENT_ARRAY_TYPE_APPLE = $8A0D;
2908   GL_ELEMENT_ARRAY_POINTER_APPLE = $8A0E;
2909
2910   // GL_APPLE_fence
2911   GL_DRAW_PIXELS_APPLE = $8A0A;
2912   GL_FENCE_APPLE = $8A0B;
2913
2914   // GL_APPLE_specular_vector
2915   GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
2916
2917   // GL_APPLE_transform_hint
2918   GL_TRANSFORM_HINT_APPLE = $85B1;
2919
2920   // GL_APPLE_vertex_array_object
2921   GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
2922
2923   // GL_APPLE_vertex_array_range
2924   GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
2925   GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
2926   GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
2927   GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
2928   GL_STORAGE_CLIENT_APPLE = $85B4;
2929   GL_STORAGE_CACHED_APPLE = $85BE;
2930   GL_STORAGE_SHARED_APPLE = $85BF;
2931
2932   // GL_APPLE_ycbcr_422
2933   GL_YCBCR_422_APPLE = $85B9;
2934   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
2935   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
2936   GL_RGB_RAW_422_APPLE = $8A51;
2937
2938   // GL_APPLE_texture_range
2939   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
2940   GL_TEXTURE_RANGE_POINTER_APPLE = $85B8;
2941   GL_TEXTURE_STORAGE_HINT_APPLE = $85BC;
2942   GL_STORAGE_PRIVATE_APPLE = $85BD;
2943   { reuse GL_STORAGE_CACHED_APPLE }
2944   { reuse GL_STORAGE_SHARED_APPLE }
2945
2946   // GL_APPLE_float_pixels
2947   GL_HALF_APPLE = $140B;
2948   GL_RGBA_FLOAT32_APPLE = $8814;
2949   GL_RGB_FLOAT32_APPLE = $8815;
2950   GL_ALPHA_FLOAT32_APPLE = $8816;
2951   GL_INTENSITY_FLOAT32_APPLE = $8817;
2952   GL_LUMINANCE_FLOAT32_APPLE = $8818;
2953   GL_LUMINANCE_ALPHA_FLOAT32_APPLE = $8819;
2954   GL_RGBA_FLOAT16_APPLE = $881A;
2955   GL_RGB_FLOAT16_APPLE = $881B;
2956   GL_ALPHA_FLOAT16_APPLE = $881C;
2957   GL_INTENSITY_FLOAT16_APPLE = $881D;
2958   GL_LUMINANCE_FLOAT16_APPLE = $881E;
2959   GL_LUMINANCE_ALPHA_FLOAT16_APPLE = $881F;
2960   GL_COLOR_FLOAT_APPLE = $8A0F;
2961
2962   // GL_APPLE_vertex_program_evaluators
2963   GL_VERTEX_ATTRIB_MAP1_APPLE = $8A00;
2964   GL_VERTEX_ATTRIB_MAP2_APPLE = $8A01;
2965   GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = $8A02;
2966   GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = $8A03;
2967   GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = $8A04;
2968   GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = $8A05;
2969   GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = $8A06;
2970   GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = $8A07;
2971   GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = $8A08;
2972   GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = $8A09;
2973
2974   // GL_APPLE_aux_depth_stencil
2975   GL_AUX_DEPTH_STENCIL_APPLE = $8A14;
2976
2977   // GL_APPLE_object_purgeable
2978   GL_BUFFER_OBJECT_APPLE = $85B3;
2979   GL_RELEASED_APPLE = $8A19;
2980   GL_VOLATILE_APPLE = $8A1A;
2981   GL_RETAINED_APPLE = $8A1B;
2982   GL_UNDEFINED_APPLE = $8A1C;
2983   GL_PURGEABLE_APPLE = $8A1D;
2984
2985   // GL_APPLE_row_bytes
2986   GL_PACK_ROW_BYTES_APPLE = $8A15;
2987   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
2988
2989   // GL_APPLE_rgb_422
2990   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
2991   { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }
2992
2993   // GL_ARB_depth_texture
2994   GL_DEPTH_COMPONENT16_ARB = $81A5;
2995   GL_DEPTH_COMPONENT24_ARB = $81A6;
2996   GL_DEPTH_COMPONENT32_ARB = $81A7;
2997   GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
2998   GL_DEPTH_TEXTURE_MODE_ARB = $884B;
2999
3000   // GL_ARB_fragment_program
3001   GL_FRAGMENT_PROGRAM_ARB = $8804;
3002   GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
3003   GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
3004   GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
3005   GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
3006   GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
3007   GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
3008   GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
3009   GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
3010   GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
3011   GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
3012   GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
3013   GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
3014   GL_MAX_TEXTURE_COORDS_ARB = $8871;
3015   GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
3016
3017   // GL_ARB_imaging
3018   GL_CONSTANT_COLOR_ARB = $8001;
3019   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3020   GL_CONSTANT_ALPHA = $8003;
3021   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3022   GL_BLEND_COLOR = $8005;
3023   GL_FUNC_ADD = $8006;
3024   GL_MIN = $8007;
3025   GL_MAX = $8008;
3026   GL_BLEND_EQUATION = $8009;
3027   GL_FUNC_SUBTRACT = $800A;
3028   GL_FUNC_REVERSE_SUBTRACT = $800B;
3029 {$ifdef DGL_DEPRECATED}
3030   GL_CONVOLUTION_1D = $8010;
3031   GL_CONVOLUTION_2D = $8011;
3032   GL_SEPARABLE_2D = $8012;
3033   GL_CONVOLUTION_BORDER_MODE = $8013;
3034   GL_CONVOLUTION_FILTER_SCALE = $8014;
3035   GL_CONVOLUTION_FILTER_BIAS = $8015;
3036   GL_REDUCE = $8016;
3037   GL_CONVOLUTION_FORMAT = $8017;
3038   GL_CONVOLUTION_WIDTH = $8018;
3039   GL_CONVOLUTION_HEIGHT = $8019;
3040   GL_MAX_CONVOLUTION_WIDTH = $801A;
3041   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3042   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3043   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3044   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3045   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3046   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3047   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3048   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3049   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3050   GL_HISTOGRAM = $8024;
3051   GL_PROXY_HISTOGRAM = $8025;
3052   GL_HISTOGRAM_WIDTH = $8026;
3053   GL_HISTOGRAM_FORMAT = $8027;
3054   GL_HISTOGRAM_RED_SIZE = $8028;
3055   GL_HISTOGRAM_GREEN_SIZE = $8029;
3056   GL_HISTOGRAM_BLUE_SIZE = $802A;
3057   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3058   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3059   GL_HISTOGRAM_SINK = $802D;
3060   GL_MINMAX = $802E;
3061   GL_MINMAX_FORMAT = $802F;
3062   GL_MINMAX_SINK = $8030;
3063   GL_TABLE_TOO_LARGE = $8031;
3064   GL_COLOR_MATRIX = $80B1;
3065   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3066   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3067   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3068   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3069   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3070   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3071   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3072   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3073   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3074   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3075   GL_COLOR_TABLE = $80D0;
3076   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3077   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3078   GL_PROXY_COLOR_TABLE = $80D3;
3079   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3080   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3081   GL_COLOR_TABLE_SCALE = $80D6;
3082   GL_COLOR_TABLE_BIAS = $80D7;
3083   GL_COLOR_TABLE_FORMAT = $80D8;
3084   GL_COLOR_TABLE_WIDTH = $80D9;
3085   GL_COLOR_TABLE_RED_SIZE = $80DA;
3086   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3087   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3088   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3089   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3090   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3091   GL_CONSTANT_BORDER = $8151;
3092   GL_REPLICATE_BORDER = $8153;
3093   GL_CONVOLUTION_BORDER_COLOR = $8154;
3094 {$endif}
3095
3096   // GL_ARB_matrix_palette
3097   GL_MATRIX_PALETTE_ARB = $8840;
3098   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3099   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3100   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3101   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3102   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3103   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3104   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3105   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3106   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3107
3108   // GL_ARB_multisample
3109   GL_MULTISAMPLE_ARB = $809D;
3110   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3111   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3112   GL_SAMPLE_COVERAGE_ARB = $80A0;
3113   GL_SAMPLE_BUFFERS_ARB = $80A8;
3114   GL_SAMPLES_ARB = $80A9;
3115   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3116   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3117   GL_MULTISAMPLE_BIT_ARB = $20000000;
3118
3119   // GL_ARB_multitexture
3120   GL_TEXTURE0_ARB = $84C0;
3121   GL_TEXTURE1_ARB = $84C1;
3122   GL_TEXTURE2_ARB = $84C2;
3123   GL_TEXTURE3_ARB = $84C3;
3124   GL_TEXTURE4_ARB = $84C4;
3125   GL_TEXTURE5_ARB = $84C5;
3126   GL_TEXTURE6_ARB = $84C6;
3127   GL_TEXTURE7_ARB = $84C7;
3128   GL_TEXTURE8_ARB = $84C8;
3129   GL_TEXTURE9_ARB = $84C9;
3130   GL_TEXTURE10_ARB = $84CA;
3131   GL_TEXTURE11_ARB = $84CB;
3132   GL_TEXTURE12_ARB = $84CC;
3133   GL_TEXTURE13_ARB = $84CD;
3134   GL_TEXTURE14_ARB = $84CE;
3135   GL_TEXTURE15_ARB = $84CF;
3136   GL_TEXTURE16_ARB = $84D0;
3137   GL_TEXTURE17_ARB = $84D1;
3138   GL_TEXTURE18_ARB = $84D2;
3139   GL_TEXTURE19_ARB = $84D3;
3140   GL_TEXTURE20_ARB = $84D4;
3141   GL_TEXTURE21_ARB = $84D5;
3142   GL_TEXTURE22_ARB = $84D6;
3143   GL_TEXTURE23_ARB = $84D7;
3144   GL_TEXTURE24_ARB = $84D8;
3145   GL_TEXTURE25_ARB = $84D9;
3146   GL_TEXTURE26_ARB = $84DA;
3147   GL_TEXTURE27_ARB = $84DB;
3148   GL_TEXTURE28_ARB = $84DC;
3149   GL_TEXTURE29_ARB = $84DD;
3150   GL_TEXTURE30_ARB = $84DE;
3151   GL_TEXTURE31_ARB = $84DF;
3152   GL_ACTIVE_TEXTURE_ARB = $84E0;
3153   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3154   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3155
3156   // GL_ARB_point_parameters
3157   GL_POINT_SIZE_MIN_ARB = $8126;
3158   GL_POINT_SIZE_MAX_ARB = $8127;
3159   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3160   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3161
3162   // GL_ARB_shadow
3163   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3164   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3165   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3166
3167   // GL_ARB_shadow_ambient
3168   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3169
3170   // GL_ARB_sparse_buffer
3171   GL_SPARSE_STORAGE_BIT_ARB = $0400;
3172   GL_SPARSE_BUFFER_PAGE_SIZE_ARB = $82F8;
3173
3174   // GL_ARB_texture_border_clamp
3175   GL_CLAMP_TO_BORDER_ARB = $812D;
3176
3177   // GL_ARB_texture_compression
3178   GL_COMPRESSED_ALPHA_ARB = $84E9;
3179   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3180   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3181   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3182   GL_COMPRESSED_RGB_ARB = $84ED;
3183   GL_COMPRESSED_RGBA_ARB = $84EE;
3184   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3185   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3186   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3187   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3188   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3189
3190   // GL_ARB_texture_cube_map
3191   GL_NORMAL_MAP_ARB = $8511;
3192   GL_REFLECTION_MAP_ARB = $8512;
3193   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3194   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3195   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3196   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3197   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3198   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3199   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3200   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3201   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3202   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3203
3204   // GL_ARB_texture_env_combine
3205   GL_COMBINE_ARB = $8570;
3206   GL_COMBINE_RGB_ARB = $8571;
3207   GL_COMBINE_ALPHA_ARB = $8572;
3208   GL_SOURCE0_RGB_ARB = $8580;
3209   GL_SOURCE1_RGB_ARB = $8581;
3210   GL_SOURCE2_RGB_ARB = $8582;
3211   GL_SOURCE0_ALPHA_ARB = $8588;
3212   GL_SOURCE1_ALPHA_ARB = $8589;
3213   GL_SOURCE2_ALPHA_ARB = $858A;
3214   GL_OPERAND0_RGB_ARB = $8590;
3215   GL_OPERAND1_RGB_ARB = $8591;
3216   GL_OPERAND2_RGB_ARB = $8592;
3217   GL_OPERAND0_ALPHA_ARB = $8598;
3218   GL_OPERAND1_ALPHA_ARB = $8599;
3219   GL_OPERAND2_ALPHA_ARB = $859A;
3220   GL_RGB_SCALE_ARB = $8573;
3221   GL_ADD_SIGNED_ARB = $8574;
3222   GL_INTERPOLATE_ARB = $8575;
3223   GL_SUBTRACT_ARB = $84E7;
3224   GL_CONSTANT_ARB = $8576;
3225   GL_PRIMARY_COLOR_ARB = $8577;
3226   GL_PREVIOUS_ARB = $8578;
3227
3228   // GL_ARB_texture_env_dot3
3229   GL_DOT3_RGB_ARB = $86AE;
3230   GL_DOT3_RGBA_ARB = $86AF;
3231
3232   // GL_ARB_texture_mirrored_repeat
3233   GL_MIRRORED_REPEAT_ARB = $8370;
3234
3235   // GL_ARB_transpose_matrix
3236   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3237   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3238   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3239   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3240
3241   // GL_ARB_vertex_blend
3242   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3243   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3244   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3245   GL_VERTEX_BLEND_ARB = $86A7;
3246   GL_CURRENT_WEIGHT_ARB = $86A8;
3247   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3248   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3249   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3250   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3251   GL_WEIGHT_ARRAY_ARB = $86AD;
3252   GL_MODELVIEW0_ARB = $1700;
3253   GL_MODELVIEW1_ARB = $850A;
3254   GL_MODELVIEW2_ARB = $8722;
3255   GL_MODELVIEW3_ARB = $8723;
3256   GL_MODELVIEW4_ARB = $8724;
3257   GL_MODELVIEW5_ARB = $8725;
3258   GL_MODELVIEW6_ARB = $8726;
3259   GL_MODELVIEW7_ARB = $8727;
3260   GL_MODELVIEW8_ARB = $8728;
3261   GL_MODELVIEW9_ARB = $8729;
3262   GL_MODELVIEW10_ARB = $872A;
3263   GL_MODELVIEW11_ARB = $872B;
3264   GL_MODELVIEW12_ARB = $872C;
3265   GL_MODELVIEW13_ARB = $872D;
3266   GL_MODELVIEW14_ARB = $872E;
3267   GL_MODELVIEW15_ARB = $872F;
3268   GL_MODELVIEW16_ARB = $8730;
3269   GL_MODELVIEW17_ARB = $8731;
3270   GL_MODELVIEW18_ARB = $8732;
3271   GL_MODELVIEW19_ARB = $8733;
3272   GL_MODELVIEW20_ARB = $8734;
3273   GL_MODELVIEW21_ARB = $8735;
3274   GL_MODELVIEW22_ARB = $8736;
3275   GL_MODELVIEW23_ARB = $8737;
3276   GL_MODELVIEW24_ARB = $8738;
3277   GL_MODELVIEW25_ARB = $8739;
3278   GL_MODELVIEW26_ARB = $873A;
3279   GL_MODELVIEW27_ARB = $873B;
3280   GL_MODELVIEW28_ARB = $873C;
3281   GL_MODELVIEW29_ARB = $873D;
3282   GL_MODELVIEW30_ARB = $873E;
3283   GL_MODELVIEW31_ARB = $873F;
3284
3285   // GL_ARB_vertex_buffer_object
3286   GL_BUFFER_SIZE_ARB = $8764;
3287   GL_BUFFER_USAGE_ARB = $8765;
3288   GL_ARRAY_BUFFER_ARB = $8892;
3289   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3290   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3291   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3292   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3293   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3294   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3295   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3296   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3297   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3298   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3299   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3300   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3301   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3302   GL_READ_ONLY_ARB = $88B8;
3303   GL_WRITE_ONLY_ARB = $88B9;
3304   GL_READ_WRITE_ARB = $88BA;
3305   GL_BUFFER_ACCESS_ARB = $88BB;
3306   GL_BUFFER_MAPPED_ARB = $88BC;
3307   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3308   GL_STREAM_DRAW_ARB = $88E0;
3309   GL_STREAM_READ_ARB = $88E1;
3310   GL_STREAM_COPY_ARB = $88E2;
3311   GL_STATIC_DRAW_ARB = $88E4;
3312   GL_STATIC_READ_ARB = $88E5;
3313   GL_STATIC_COPY_ARB = $88E6;
3314   GL_DYNAMIC_DRAW_ARB = $88E8;
3315   GL_DYNAMIC_READ_ARB = $88E9;
3316   GL_DYNAMIC_COPY_ARB = $88EA;
3317
3318   // GL_ARB_vertex_program
3319   GL_COLOR_SUM_ARB = $8458;
3320   GL_VERTEX_PROGRAM_ARB = $8620;
3321   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3322   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3323   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3324   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3325   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3326   GL_PROGRAM_LENGTH_ARB = $8627;
3327   GL_PROGRAM_STRING_ARB = $8628;
3328   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3329   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3330   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3331   GL_CURRENT_MATRIX_ARB = $8641;
3332   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3333   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3334   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3335   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3336   GL_PROGRAM_BINDING_ARB = $8677;
3337   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3338   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3339   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3340   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3341   GL_PROGRAM_FORMAT_ARB = $8876;
3342   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3343   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3344   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3345   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3346   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3347   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3348   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3349   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3350   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3351   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3352   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3353   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3354   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3355   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3356   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3357   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3358   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3359   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3360   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3361   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3362   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3363   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3364   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3365   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3366   GL_MATRIX0_ARB = $88C0;
3367   GL_MATRIX1_ARB = $88C1;
3368   GL_MATRIX2_ARB = $88C2;
3369   GL_MATRIX3_ARB = $88C3;
3370   GL_MATRIX4_ARB = $88C4;
3371   GL_MATRIX5_ARB = $88C5;
3372   GL_MATRIX6_ARB = $88C6;
3373   GL_MATRIX7_ARB = $88C7;
3374   GL_MATRIX8_ARB = $88C8;
3375   GL_MATRIX9_ARB = $88C9;
3376   GL_MATRIX10_ARB = $88CA;
3377   GL_MATRIX11_ARB = $88CB;
3378   GL_MATRIX12_ARB = $88CC;
3379   GL_MATRIX13_ARB = $88CD;
3380   GL_MATRIX14_ARB = $88CE;
3381   GL_MATRIX15_ARB = $88CF;
3382   GL_MATRIX16_ARB = $88D0;
3383   GL_MATRIX17_ARB = $88D1;
3384   GL_MATRIX18_ARB = $88D2;
3385   GL_MATRIX19_ARB = $88D3;
3386   GL_MATRIX20_ARB = $88D4;
3387   GL_MATRIX21_ARB = $88D5;
3388   GL_MATRIX22_ARB = $88D6;
3389   GL_MATRIX23_ARB = $88D7;
3390   GL_MATRIX24_ARB = $88D8;
3391   GL_MATRIX25_ARB = $88D9;
3392   GL_MATRIX26_ARB = $88DA;
3393   GL_MATRIX27_ARB = $88DB;
3394   GL_MATRIX28_ARB = $88DC;
3395   GL_MATRIX29_ARB = $88DD;
3396   GL_MATRIX30_ARB = $88DE;
3397   GL_MATRIX31_ARB = $88DF;
3398
3399   // GL_ARB_draw_buffers
3400   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3401   GL_DRAW_BUFFER0_ARB = $8825;
3402   GL_DRAW_BUFFER1_ARB = $8826;
3403   GL_DRAW_BUFFER2_ARB = $8827;
3404   GL_DRAW_BUFFER3_ARB = $8828;
3405   GL_DRAW_BUFFER4_ARB = $8829;
3406   GL_DRAW_BUFFER5_ARB = $882A;
3407   GL_DRAW_BUFFER6_ARB = $882B;
3408   GL_DRAW_BUFFER7_ARB = $882C;
3409   GL_DRAW_BUFFER8_ARB = $882D;
3410   GL_DRAW_BUFFER9_ARB = $882E;
3411   GL_DRAW_BUFFER10_ARB = $882F;
3412   GL_DRAW_BUFFER11_ARB = $8830;
3413   GL_DRAW_BUFFER12_ARB = $8831;
3414   GL_DRAW_BUFFER13_ARB = $8832;
3415   GL_DRAW_BUFFER14_ARB = $8833;
3416   GL_DRAW_BUFFER15_ARB = $8834;
3417
3418   // GL_ARB_texture_rectangle
3419   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3420   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3421   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3422   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3423
3424   // GL_ARB_color_buffer_float
3425   GL_RGBA_FLOAT_MODE_ARB = $8820;
3426   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3427   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3428   GL_CLAMP_READ_COLOR_ARB = $891C;
3429   GL_FIXED_ONLY_ARB = $891D;
3430   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3431   GLX_RGBA_FLOAT_TYPE = $20B9;
3432   GLX_RGBA_FLOAT_BIT = $00000004;
3433
3434   // GL_ARB_compute_variable_group_size
3435   GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = $9344;
3436   GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = $90EB;
3437   GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = $9345;
3438   GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = $91BF;
3439
3440   // GL_ARB_half_float_pixel
3441   GL_HALF_FLOAT_ARB = $140B;
3442
3443   // GL_ARB_texture_float
3444   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3445   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3446   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3447   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3448   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3449   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3450   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3451   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3452   GL_RGBA32F_ARB = $8814;
3453   GL_RGB32F_ARB = $8815;
3454   GL_ALPHA32F_ARB = $8816;
3455   GL_INTENSITY32F_ARB = $8817;
3456   GL_LUMINANCE32F_ARB = $8818;
3457   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3458   GL_RGBA16F_ARB = $881A;
3459   GL_RGB16F_ARB = $881B;
3460   GL_ALPHA16F_ARB = $881C;
3461   GL_INTENSITY16F_ARB = $881D;
3462   GL_LUMINANCE16F_ARB = $881E;
3463   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3464
3465   // GL_ARB_pixel_buffer_object
3466   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3467   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3468   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3469   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3470
3471   // GL_ARB_depth_buffer_float
3472   GL_DEPTH_COMPONENT32F = $8CAC;
3473   GL_DEPTH32F_STENCIL8 = $8CAD;
3474   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3475
3476   // GL_ARB_framebuffer_object
3477   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3478   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3479   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3480   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3481   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3482   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3483   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3484   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3485   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3486   GL_FRAMEBUFFER_DEFAULT = $8218;
3487   GL_FRAMEBUFFER_UNDEFINED = $8219;
3488   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3489   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3490   GL_DEPTH_STENCIL = $84F9;
3491   GL_UNSIGNED_INT_24_8 = $84FA;
3492   GL_DEPTH24_STENCIL8 = $88F0;
3493   GL_TEXTURE_STENCIL_SIZE = $88F1;
3494   GL_TEXTURE_RED_TYPE = $8C10;
3495   GL_TEXTURE_GREEN_TYPE = $8C11;
3496   GL_TEXTURE_BLUE_TYPE = $8C12;
3497   GL_TEXTURE_ALPHA_TYPE = $8C13;
3498   GL_TEXTURE_DEPTH_TYPE = $8C16;
3499   GL_UNSIGNED_NORMALIZED = $8C17;
3500   GL_FRAMEBUFFER_BINDING = $8CA6;
3501   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3502   GL_RENDERBUFFER_BINDING = $8CA7;
3503   GL_READ_FRAMEBUFFER = $8CA8;
3504   GL_DRAW_FRAMEBUFFER = $8CA9;
3505   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3506   GL_RENDERBUFFER_SAMPLES = $8CAB;
3507   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3508   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3509   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3510   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3511   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3512   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3513   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3514   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3515   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3516   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3517   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3518   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3519   GL_COLOR_ATTACHMENT0 = $8CE0;
3520   GL_COLOR_ATTACHMENT1 = $8CE1;
3521   GL_COLOR_ATTACHMENT2 = $8CE2;
3522   GL_COLOR_ATTACHMENT3 = $8CE3;
3523   GL_COLOR_ATTACHMENT4 = $8CE4;
3524   GL_COLOR_ATTACHMENT5 = $8CE5;
3525   GL_COLOR_ATTACHMENT6 = $8CE6;
3526   GL_COLOR_ATTACHMENT7 = $8CE7;
3527   GL_COLOR_ATTACHMENT8 = $8CE8;
3528   GL_COLOR_ATTACHMENT9 = $8CE9;
3529   GL_COLOR_ATTACHMENT10 = $8CEA;
3530   GL_COLOR_ATTACHMENT11 = $8CEB;
3531   GL_COLOR_ATTACHMENT12 = $8CEC;
3532   GL_COLOR_ATTACHMENT13 = $8CED;
3533   GL_COLOR_ATTACHMENT14 = $8CEE;
3534   GL_COLOR_ATTACHMENT15 = $8CEF;
3535   GL_DEPTH_ATTACHMENT = $8D00;
3536   GL_STENCIL_ATTACHMENT = $8D20;
3537   GL_FRAMEBUFFER = $8D40;
3538   GL_RENDERBUFFER = $8D41;
3539   GL_RENDERBUFFER_WIDTH = $8D42;
3540   GL_RENDERBUFFER_HEIGHT = $8D43;
3541   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3542   GL_STENCIL_INDEX1 = $8D46;
3543   GL_STENCIL_INDEX4 = $8D47;
3544   GL_STENCIL_INDEX8 = $8D48;
3545   GL_STENCIL_INDEX16 = $8D49;
3546   GL_RENDERBUFFER_RED_SIZE = $8D50;
3547   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3548   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3549   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3550   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3551   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3552   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3553   GL_MAX_SAMPLES = $8D57;
3554 {$ifdef DGL_DEPRECATED}
3555   GL_INDEX = $8222;
3556   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3557   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3558 {$endif}
3559
3560   // GL_ARB_framebuffer_sRGB
3561   GL_FRAMEBUFFER_SRGB = $8DB9;
3562
3563   // GL_ARB_geometry_shader4
3564   GL_LINES_ADJACENCY_ARB = $000A;
3565   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3566   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3567   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3568   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3569   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3570   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3571   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3572   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3573   GL_GEOMETRY_SHADER_ARB = $8DD9;
3574   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3575   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3576   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3577   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3578   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3579   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3580   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3581   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3582   { reuse GL_MAX_VARYING_COMPONENTS }
3583   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3584
3585   // GL_ARB_half_float_vertex
3586   GL_HALF_FLOAT = $140B;
3587
3588   // GL_ARB_instanced_arrays
3589   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3590
3591   // GL_ARB_map_buffer_range
3592   GL_MAP_READ_BIT = $0001;
3593   GL_MAP_WRITE_BIT = $0002;
3594   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3595   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3596   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3597   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3598
3599   // GL_ARB_texture_buffer_object
3600   GL_TEXTURE_BUFFER_ARB = $8C2A;
3601   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3602   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3603   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3604   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3605
3606   // GL_ARB_texture_compression_rgtc
3607   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3608   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3609   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3610   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3611
3612   // GL_ARB_texture_rg
3613   GL_RG = $8227;
3614   GL_RG_INTEGER = $8228;
3615   GL_R8 = $8229;
3616   GL_R16 = $822A;
3617   GL_RG8 = $822B;
3618   GL_RG16 = $822C;
3619   GL_R16F = $822D;
3620   GL_R32F = $822E;
3621   GL_RG16F = $822F;
3622   GL_RG32F = $8230;
3623   GL_R8I = $8231;
3624   GL_R8UI = $8232;
3625   GL_R16I = $8233;
3626   GL_R16UI = $8234;
3627   GL_R32I = $8235;
3628   GL_R32UI = $8236;
3629   GL_RG8I = $8237;
3630   GL_RG8UI = $8238;
3631   GL_RG16I = $8239;
3632   GL_RG16UI = $823A;
3633   GL_RG32I = $823B;
3634   GL_RG32UI = $823C;
3635
3636   // GL_ARB_vertex_array_object
3637   GL_VERTEX_ARRAY_BINDING = $85B5;
3638
3639   // GL_ARB_uniform_buffer_object
3640   GL_UNIFORM_BUFFER = $8A11;
3641   GL_UNIFORM_BUFFER_BINDING = $8A28;
3642   GL_UNIFORM_BUFFER_START = $8A29;
3643   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3644   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3645   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3646   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3647   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3648   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3649   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3650   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3651   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3652   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3653   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3654   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3655   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3656   GL_UNIFORM_TYPE = $8A37;
3657   GL_UNIFORM_SIZE = $8A38;
3658   GL_UNIFORM_NAME_LENGTH = $8A39;
3659   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3660   GL_UNIFORM_OFFSET = $8A3B;
3661   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3662   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3663   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3664   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3665   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3666   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3667   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
3668   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
3669   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
3670   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
3671   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
3672   GL_INVALID_INDEX = $FFFFFFFF;
3673
3674   // GL_ARB_compatibility
3675   { ARB_compatibility just defines tokens from core 3.0 }
3676
3677   // GL_ARB_copy_buffer
3678   GL_COPY_READ_BUFFER_BINDING = $8F36;
3679   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
3680   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
3681   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
3682
3683   // GL_ARB_depth_clamp
3684   GL_DEPTH_CLAMP = $864F;
3685
3686   // GL_ARB_provoking_vertex
3687   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
3688   GL_FIRST_VERTEX_CONVENTION = $8E4D;
3689   GL_LAST_VERTEX_CONVENTION = $8E4E;
3690   GL_PROVOKING_VERTEX = $8E4F;
3691
3692   // GL_ARB_seamless_cube_map
3693   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
3694
3695   // GL_ARB_sync
3696   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
3697   GL_OBJECT_TYPE = $9112;
3698   GL_SYNC_CONDITION = $9113;
3699   GL_SYNC_STATUS = $9114;
3700   GL_SYNC_FLAGS = $9115;
3701   GL_SYNC_FENCE = $9116;
3702   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
3703   GL_UNSIGNALED = $9118;
3704   GL_SIGNALED = $9119;
3705   GL_ALREADY_SIGNALED = $911A;
3706   GL_TIMEOUT_EXPIRED = $911B;
3707   GL_CONDITION_SATISFIED = $911C;
3708   GL_WAIT_FAILED = $911D;
3709   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
3710   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
3711
3712   // GL_ARB_texture_multisample
3713   GL_SAMPLE_POSITION = $8E50;
3714   GL_SAMPLE_MASK = $8E51;
3715   GL_SAMPLE_MASK_VALUE = $8E52;
3716   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
3717   GL_TEXTURE_2D_MULTISAMPLE = $9100;
3718   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
3719   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
3720   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
3721   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
3722   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
3723   GL_TEXTURE_SAMPLES = $9106;
3724   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
3725   GL_SAMPLER_2D_MULTISAMPLE = $9108;
3726   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
3727   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
3728   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
3729   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
3730   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
3731   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
3732   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
3733   GL_MAX_INTEGER_SAMPLES = $9110;
3734
3735   // GL_ARB_vertex_array_bgra
3736   { reuse GL_BGRA }
3737
3738   // GL_ARB_sample_shading
3739   GL_SAMPLE_SHADING_ARB = $8C36;
3740   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
3741
3742   // GL_ARB_texture_cube_map_array
3743   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
3744   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
3745   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
3746   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
3747   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
3748   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
3749   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
3750
3751   // GL_ARB_texture_gather
3752   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
3753   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
3754
3755   // GL_ARB_shading_language_include
3756   GL_SHADER_INCLUDE_ARB = $8DAE;
3757   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
3758   GL_NAMED_STRING_TYPE_ARB = $8DEA;
3759
3760   // GL_ARB_texture_compression_bptc
3761   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
3762   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
3763   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
3764   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
3765
3766   // GL_ARB_blend_func_extended
3767   GL_SRC1_COLOR = $88F9;
3768   { reuse GL_SRC1_ALPHA }
3769   GL_ONE_MINUS_SRC1_COLOR = $88FA;
3770   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
3771   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
3772
3773   // GL_ARB_occlusion_query2
3774   GL_ANY_SAMPLES_PASSED = $8C2F;
3775
3776   // GL_ARB_sampler_objects
3777   GL_SAMPLER_BINDING = $8919;
3778
3779   // GL_ARB_texture_rgb10_a2ui
3780   GL_RGB10_A2UI = $906F;
3781
3782   // GL_ARB_texture_swizzle
3783   GL_TEXTURE_SWIZZLE_R = $8E42;
3784   GL_TEXTURE_SWIZZLE_G = $8E43;
3785   GL_TEXTURE_SWIZZLE_B = $8E44;
3786   GL_TEXTURE_SWIZZLE_A = $8E45;
3787   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
3788
3789   // GL_ARB_SPARSE_TEXTURE
3790   GL_TEXTURE_SPARSE_ARB = $91A6;
3791   GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = $91A7;
3792   GL_NUM_VIRTUAL_PAGE_SIZES_ARB = $91A8;
3793   GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = $91A9;
3794   GL_NUM_SPARSE_LEVELS_ARB = $91AA;
3795   GL_VIRTUAL_PAGE_SIZE_X_ARB = $9195;
3796   GL_VIRTUAL_PAGE_SIZE_Y_ARB = $9196;
3797   GL_VIRTUAL_PAGE_SIZE_Z_ARB = $9197;
3798   GL_MAX_SPARSE_TEXTURE_SIZE_ARB = $9198;
3799   GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = $9199;
3800   GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = $919A;
3801   GL_MIN_SPARSE_LEVEL_ARB = $919B;
3802
3803   // GL_ARB_timer_query
3804   GL_TIME_ELAPSED = $88BF;
3805   GL_TIMESTAMP = $8E28;
3806
3807   // GL_ARB_vertex_type_2_10_10_10_rev
3808   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
3809   GL_INT_2_10_10_10_REV = $8D9F;
3810
3811   // GL_ARB_draw_indirect
3812   GL_DRAW_INDIRECT_BUFFER = $8F3F;
3813   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
3814
3815   // GL_ARB_gpu_shader5
3816   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
3817   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
3818   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
3819   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
3820   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
3821   { reuse GL_MAX_VERTEX_STREAMS }
3822
3823   // GL_ARB_gpu_shader_fp64
3824   { reuse GL_DOUBLE }
3825   GL_DOUBLE_VEC2 = $8FFC;
3826   GL_DOUBLE_VEC3 = $8FFD;
3827   GL_DOUBLE_VEC4 = $8FFE;
3828   GL_DOUBLE_MAT2 = $8F46;
3829   GL_DOUBLE_MAT3 = $8F47;
3830   GL_DOUBLE_MAT4 = $8F48;
3831   GL_DOUBLE_MAT2x3 = $8F49;
3832   GL_DOUBLE_MAT2x4 = $8F4A;
3833   GL_DOUBLE_MAT3x2 = $8F4B;
3834   GL_DOUBLE_MAT3x4 = $8F4C;
3835   GL_DOUBLE_MAT4x2 = $8F4D;
3836   GL_DOUBLE_MAT4x3 = $8F4E;
3837
3838   // GL_ARB_shader_subroutine
3839   GL_ACTIVE_SUBROUTINES = $8DE5;
3840   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
3841   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
3842   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
3843   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
3844   GL_MAX_SUBROUTINES = $8DE7;
3845   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
3846   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
3847   GL_COMPATIBLE_SUBROUTINES = $8E4B;
3848   { reuse GL_UNIFORM_SIZE }
3849   { reuse GL_UNIFORM_NAME_LENGTH }
3850
3851   // GL_ARB_tessellation_shader
3852   GL_PATCHES = $000E;
3853   GL_PATCH_VERTICES = $8E72;
3854   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
3855   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
3856   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
3857   GL_TESS_GEN_MODE = $8E76;
3858   GL_TESS_GEN_SPACING = $8E77;
3859   GL_TESS_GEN_VERTEX_ORDER = $8E78;
3860   GL_TESS_GEN_POINT_MODE = $8E79;
3861   { reuse GL_TRIANGLES }
3862   { reuse GL_QUADS }
3863   GL_ISOLINES = $8E7A;
3864   { reuse GL_EQUAL }
3865   GL_FRACTIONAL_ODD = $8E7B;
3866   GL_FRACTIONAL_EVEN = $8E7C;
3867   { reuse GL_CCW }
3868   { reuse GL_CW }
3869   GL_MAX_PATCH_VERTICES = $8E7D;
3870   GL_MAX_TESS_GEN_LEVEL = $8E7E;
3871   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
3872   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
3873   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
3874   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
3875   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
3876   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
3877   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
3878   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
3879   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
3880   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
3881   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
3882   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
3883   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
3884   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
3885   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
3886   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
3887   GL_TESS_EVALUATION_SHADER = $8E87;
3888   GL_TESS_CONTROL_SHADER = $8E88;
3889
3890   // GL_ARB_texture_buffer_object_rgb32
3891   { reuse GL_RGB32F }
3892   { reuse GL_RGB32UI }
3893   { reuse GL_RGB32I }
3894
3895   // GL_ARB_transform_feedback2
3896   GL_TRANSFORM_FEEDBACK = $8E22;
3897   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
3898   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
3899   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
3900   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
3901   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
3902
3903   // GL_ARB_transform_feedback_overflow_query
3904   GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = $82EC;
3905   GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = $82ED;
3906
3907   // GL_ARB_transform_feedback3
3908   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
3909   GL_MAX_VERTEX_STREAMS = $8E71;
3910
3911   // GL_ARB_ES2_compatibility
3912   GL_FIXED = $140C;
3913   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
3914   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
3915   GL_LOW_FLOAT = $8DF0;
3916   GL_MEDIUM_FLOAT = $8DF1;
3917   GL_HIGH_FLOAT = $8DF2;
3918   GL_LOW_INT = $8DF3;
3919   GL_MEDIUM_INT = $8DF4;
3920   GL_HIGH_INT = $8DF5;
3921   GL_SHADER_COMPILER = $8DFA;
3922   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
3923   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
3924   GL_MAX_VARYING_VECTORS = $8DFC;
3925   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
3926   GL_RGB565 = $8D62;
3927
3928   // GL_ARB_get_program_binary
3929   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
3930   GL_PROGRAM_BINARY_LENGTH = $8741;
3931   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
3932   GL_PROGRAM_BINARY_FORMATS = $87FF;
3933
3934   // GL_ARB_separate_shader_objects
3935   GL_VERTEX_SHADER_BIT = $00000001;
3936   GL_FRAGMENT_SHADER_BIT = $00000002;
3937   GL_GEOMETRY_SHADER_BIT = $00000004;
3938   GL_TESS_CONTROL_SHADER_BIT = $00000008;
3939   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
3940   GL_ALL_SHADER_BITS = $FFFFFFFF;
3941   GL_PROGRAM_SEPARABLE = $8258;
3942   GL_ACTIVE_PROGRAM = $8259;
3943   GL_PROGRAM_PIPELINE_BINDING = $825A;
3944
3945   // GL_ARB_vertex_attrib_64bit
3946   { reuse GL_RGB32I }
3947   { reuse GL_DOUBLE_VEC2 }
3948   { reuse GL_DOUBLE_VEC3 }
3949   { reuse GL_DOUBLE_VEC4 }
3950   { reuse GL_DOUBLE_MAT2 }
3951   { reuse GL_DOUBLE_MAT3 }
3952   { reuse GL_DOUBLE_MAT4 }
3953   { reuse GL_DOUBLE_MAT2x3 }
3954   { reuse GL_DOUBLE_MAT2x4 }
3955   { reuse GL_DOUBLE_MAT3x2 }
3956   { reuse GL_DOUBLE_MAT3x4 }
3957   { reuse GL_DOUBLE_MAT4x2 }
3958   { reuse GL_DOUBLE_MAT4x3 }
3959
3960   // GL_ARB_viewport_array
3961   { reuse GL_SCISSOR_BOX }
3962   { reuse GL_VIEWPORT }
3963   { reuse GL_DEPTH_RANGE }
3964   { reuse GL_SCISSOR_TEST }
3965   GL_MAX_VIEWPORTS = $825B;
3966   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
3967   GL_VIEWPORT_BOUNDS_RANGE = $825D;
3968   GL_LAYER_PROVOKING_VERTEX = $825E;
3969   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
3970   GL_UNDEFINED_VERTEX = $8260;
3971   { reuse GL_FIRST_VERTEX_CONVENTION }
3972   { reuse GL_LAST_VERTEX_CONVENTION }
3973   { reuse GL_PROVOKING_VERTEX }
3974
3975   // GL_ARB_cl_event
3976   GL_SYNC_CL_EVENT_ARB = $8240;
3977   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
3978
3979   // GL_ARB_debug_output
3980   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
3981   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
3982   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
3983   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
3984   GL_DEBUG_SOURCE_API_ARB = $8246;
3985   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
3986   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
3987   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
3988   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
3989   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
3990   GL_DEBUG_TYPE_ERROR_ARB = $824C;
3991   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
3992   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
3993   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
3994   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
3995   GL_DEBUG_TYPE_OTHER_ARB = $8251;
3996   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
3997   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
3998   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
3999   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
4000   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
4001   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
4002
4003   // GL_ARB_robustness
4004   { reuse GL_NO_ERROR }
4005   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
4006   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
4007   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
4008   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
4009   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
4010   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
4011   GL_NO_RESET_NOTIFICATION_ARB = $8261;
4012
4013   //  GL_ARB_compressed_texture_pixel_storage
4014   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4015   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4016   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4017   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4018   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4019   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4020   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4021   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4022
4023   // GL_ARB_internalformat_query
4024   GL_NUM_SAMPLE_COUNTS              = $09380;
4025
4026   // GL_ARB_map_buffer_alignment
4027   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4028
4029   // GL_ARB_shader_atomic_counters
4030   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4031   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4032   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4033   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4034   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4035   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4036   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4037   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4038   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4039   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4040   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4041   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4042   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4043   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4044   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4045   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4046   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4047   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4048   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4049   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4050   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4051   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4052   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4053   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4054   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4055   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4056   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4057   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4058   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4059
4060   // GL_ARB_shader_image_load_store
4061   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4062   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4063   GL_UNIFORM_BARRIER_BIT            = $00000004;
4064   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4065   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4066   GL_COMMAND_BARRIER_BIT            = $00000040;
4067   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4068   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4069   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4070   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4071   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4072   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4073   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4074   GL_MAX_IMAGE_UNITS                = $8F38;
4075   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4076   GL_IMAGE_BINDING_NAME             = $8F3A;
4077   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4078   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4079   GL_IMAGE_BINDING_LAYER            = $8F3D;
4080   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4081   GL_IMAGE_1D                       = $904C;
4082   GL_IMAGE_2D                       = $904D;
4083   GL_IMAGE_3D                       = $904E;
4084   GL_IMAGE_2D_RECT                  = $904F;
4085   GL_IMAGE_CUBE                     = $9050;
4086   GL_IMAGE_BUFFER                   = $9051;
4087   GL_IMAGE_1D_ARRAY                 = $9052;
4088   GL_IMAGE_2D_ARRAY                 = $9053;
4089   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4090   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4091   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4092   GL_INT_IMAGE_1D                   = $9057;
4093   GL_INT_IMAGE_2D                   = $9058;
4094   GL_INT_IMAGE_3D                   = $9059;
4095   GL_INT_IMAGE_2D_RECT              = $905A;
4096   GL_INT_IMAGE_CUBE                 = $905B;
4097   GL_INT_IMAGE_BUFFER               = $905C;
4098   GL_INT_IMAGE_1D_ARRAY             = $905D;
4099   GL_INT_IMAGE_2D_ARRAY             = $905E;
4100   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4101   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4102   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4103   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4104   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4105   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4106   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4107   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4108   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4109   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4110   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4111   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4112   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4113   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4114   GL_MAX_IMAGE_SAMPLES              = $906D;
4115   GL_IMAGE_BINDING_FORMAT           = $906E;
4116   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4117   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4118   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4119   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4120   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4121   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4122   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4123   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4124   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4125
4126   // GL_ARB_texture_storage
4127   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4128
4129   // 4.3
4130   // GL_KHR_texture_compression_astc_hdr
4131   GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4132   GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4133   GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4134   GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4135   GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4136   GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4137   GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4138   GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4139   GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4140   GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4141   GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4142   GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4143   GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4144   GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4145   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4146   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4147   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4148   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4149   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4150   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4151   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4152   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4153   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4154   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4155   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4156   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4157   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4158   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4159   // (4.3) GL_KHR_debug
4160   GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4161   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4162   GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4163   GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4164   GL_DEBUG_SOURCE_API               = $8246;
4165   GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4166   GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4167   GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4168   GL_DEBUG_SOURCE_APPLICATION       = $824A;
4169   GL_DEBUG_SOURCE_OTHER             = $824B;
4170   GL_DEBUG_TYPE_ERROR               = $824C;
4171   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4172   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4173   GL_DEBUG_TYPE_PORTABILITY         = $824F;
4174   GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4175   GL_DEBUG_TYPE_OTHER               = $8251;
4176   GL_DEBUG_TYPE_MARKER              = $8268;
4177   GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4178   GL_DEBUG_TYPE_POP_GROUP           = $826A;
4179   GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4180   GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4181   GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4182   GL_BUFFER                         = $82E0;
4183   GL_SHADER                         = $82E1;
4184   GL_PROGRAM                        = $82E2;
4185   GL_QUERY                          = $82E3;
4186   GL_PROGRAM_PIPELINE               = $82E4;
4187   GL_SAMPLER                        = $82E6;
4188   GL_DISPLAY_LIST                   = $82E7;
4189   GL_MAX_LABEL_LENGTH               = $82E8;
4190   GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4191   GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4192   GL_DEBUG_LOGGED_MESSAGES          = $9145;
4193   GL_DEBUG_SEVERITY_HIGH            = $9146;
4194   GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4195   GL_DEBUG_SEVERITY_LOW             = $9148;
4196   GL_DEBUG_OUTPUT                   = $92E0;
4197   GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4198   GL_COMPUTE_SHADER                 = $91B9;
4199   GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4200   GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4201   GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4202   GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4203   GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4204   GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4205   GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4206   GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4207   GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4208   GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4209   GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4210   GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4211   GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4212   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4213   GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4214   GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4215   GL_COMPUTE_SHADER_BIT             = $00000020;
4216   GL_COMPRESSED_RGB8_ETC2           = $9274;
4217   GL_COMPRESSED_SRGB8_ETC2          = $9275;
4218   GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4219   GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4220   GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4221   GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4222   GL_COMPRESSED_R11_EAC             = $9270;
4223   GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4224   GL_COMPRESSED_RG11_EAC            = $9272;
4225   GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4226   GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4227   GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4228   GL_MAX_ELEMENT_INDEX              = $8D6B;
4229       GL_MAX_UNIFORM_LOCATIONS          = $826E;
4230   GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4231   GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4232   GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4233   GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4234   GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4235   GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4236   GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4237   GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4238   GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4239         GL_INTERNALFORMAT_SUPPORTED       = $826F;
4240   GL_INTERNALFORMAT_PREFERRED       = $8270;
4241   GL_INTERNALFORMAT_RED_SIZE        = $8271;
4242   GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4243   GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4244   GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4245   GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4246   GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4247   GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4248   GL_INTERNALFORMAT_RED_TYPE        = $8278;
4249   GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4250   GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4251   GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4252   GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4253   GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4254   GL_MAX_WIDTH                      = $827E;
4255   GL_MAX_HEIGHT                     = $827F;
4256   GL_MAX_DEPTH                      = $8280;
4257   GL_MAX_LAYERS                     = $8281;
4258   GL_MAX_COMBINED_DIMENSIONS        = $8282;
4259   GL_COLOR_COMPONENTS               = $8283;
4260   GL_DEPTH_COMPONENTS               = $8284;
4261   GL_STENCIL_COMPONENTS             = $8285;
4262   GL_COLOR_RENDERABLE               = $8286;
4263   GL_DEPTH_RENDERABLE               = $8287;
4264   GL_STENCIL_RENDERABLE             = $8288;
4265   GL_FRAMEBUFFER_RENDERABLE         = $8289;
4266   GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4267   GL_FRAMEBUFFER_BLEND              = $828B;
4268   GL_READ_PIXELS                    = $828C;
4269   GL_READ_PIXELS_FORMAT             = $828D;
4270   GL_READ_PIXELS_TYPE               = $828E;
4271   GL_TEXTURE_IMAGE_FORMAT           = $828F;
4272   GL_TEXTURE_IMAGE_TYPE             = $8290;
4273   GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4274   GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4275   GL_MIPMAP                         = $8293;
4276   GL_MANUAL_GENERATE_MIPMAP         = $8294;
4277   GL_AUTO_GENERATE_MIPMAP           = $8295;
4278   GL_COLOR_ENCODING                 = $8296;
4279   GL_SRGB_READ                      = $8297;
4280   GL_SRGB_WRITE                     = $8298;
4281   GL_SRGB_DECODE_ARB                = $8299;
4282   GL_FILTER                         = $829A;
4283   GL_VERTEX_TEXTURE                 = $829B;
4284   GL_TESS_CONTROL_TEXTURE           = $829C;
4285   GL_TESS_EVALUATION_TEXTURE        = $829D;
4286   GL_GEOMETRY_TEXTURE               = $829E;
4287   GL_FRAGMENT_TEXTURE               = $829F;
4288   GL_COMPUTE_TEXTURE                = $82A0;
4289   GL_TEXTURE_SHADOW                 = $82A1;
4290   GL_TEXTURE_GATHER                 = $82A2;
4291   GL_TEXTURE_GATHER_SHADOW          = $82A3;
4292   GL_SHADER_IMAGE_LOAD              = $82A4;
4293   GL_SHADER_IMAGE_STORE             = $82A5;
4294   GL_SHADER_IMAGE_ATOMIC            = $82A6;
4295   GL_IMAGE_TEXEL_SIZE               = $82A7;
4296   GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4297   GL_IMAGE_PIXEL_FORMAT             = $82A9;
4298   GL_IMAGE_PIXEL_TYPE               = $82AA;
4299   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4300   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4301   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4302   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4303   GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4304   GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4305   GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4306   GL_CLEAR_BUFFER                   = $82B4;
4307   GL_TEXTURE_VIEW                   = $82B5;
4308   GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4309   GL_FULL_SUPPORT                   = $82B7;
4310   GL_CAVEAT_SUPPORT                 = $82B8;
4311   GL_IMAGE_CLASS_4_X_32             = $82B9;
4312   GL_IMAGE_CLASS_2_X_32             = $82BA;
4313   GL_IMAGE_CLASS_1_X_32             = $82BB;
4314   GL_IMAGE_CLASS_4_X_16             = $82BC;
4315   GL_IMAGE_CLASS_2_X_16             = $82BD;
4316   GL_IMAGE_CLASS_1_X_16             = $82BE;
4317   GL_IMAGE_CLASS_4_X_8              = $82BF;
4318   GL_IMAGE_CLASS_2_X_8              = $82C0;
4319   GL_IMAGE_CLASS_1_X_8              = $82C1;
4320   GL_IMAGE_CLASS_11_11_10           = $82C2;
4321   GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4322   GL_VIEW_CLASS_128_BITS            = $82C4;
4323   GL_VIEW_CLASS_96_BITS             = $82C5;
4324   GL_VIEW_CLASS_64_BITS             = $82C6;
4325   GL_VIEW_CLASS_48_BITS             = $82C7;
4326   GL_VIEW_CLASS_32_BITS             = $82C8;
4327   GL_VIEW_CLASS_24_BITS             = $82C9;
4328   GL_VIEW_CLASS_16_BITS             = $82CA;
4329   GL_VIEW_CLASS_8_BITS              = $82CB;
4330   GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4331   GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4332   GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4333   GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4334   GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4335   GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4336   GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4337   GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4338   GL_UNIFORM                        = $92E1;
4339   GL_UNIFORM_BLOCK                  = $92E2;
4340   GL_PROGRAM_INPUT                  = $92E3;
4341   GL_PROGRAM_OUTPUT                 = $92E4;
4342   GL_BUFFER_VARIABLE                = $92E5;
4343   GL_SHADER_STORAGE_BLOCK           = $92E6;
4344   GL_VERTEX_SUBROUTINE              = $92E8;
4345   GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4346   GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4347   GL_GEOMETRY_SUBROUTINE            = $92EB;
4348   GL_FRAGMENT_SUBROUTINE            = $92EC;
4349   GL_COMPUTE_SUBROUTINE             = $92ED;
4350   GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4351   GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4352   GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4353   GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4354   GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4355   GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4356   GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4357   GL_ACTIVE_RESOURCES               = $92F5;
4358   GL_MAX_NAME_LENGTH                = $92F6;
4359   GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4360   GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4361   GL_NAME_LENGTH                    = $92F9;
4362   GL_TYPE                           = $92FA;
4363   GL_ARRAY_SIZE                     = $92FB;
4364   GL_OFFSET                         = $92FC;
4365   GL_BLOCK_INDEX                    = $92FD;
4366   GL_ARRAY_STRIDE                   = $92FE;
4367   GL_MATRIX_STRIDE                  = $92FF;
4368   GL_IS_ROW_MAJOR                   = $9300;
4369   GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4370   GL_BUFFER_BINDING                 = $9302;
4371   GL_BUFFER_DATA_SIZE               = $9303;
4372   GL_NUM_ACTIVE_VARIABLES           = $9304;
4373   GL_ACTIVE_VARIABLES               = $9305;
4374   GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4375   GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4376   GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4377   GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4378   GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4379   GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4380   GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4381   GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4382   GL_LOCATION                       = $930E;
4383   GL_LOCATION_INDEX                 = $930F;
4384   GL_IS_PER_PATCH                   = $92E7;
4385   GL_SHADER_STORAGE_BUFFER          = $90D2;
4386   GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4387   GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4388   GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4389   GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4390   GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4391   GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4392   GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4393   GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4394   GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4395   GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4396   GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4397   GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4398   GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4399   GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4400   GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4401   GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4402
4403   GL_TEXTURE_BUFFER_OFFSET          = $919D;
4404   GL_TEXTURE_BUFFER_SIZE            = $919E;
4405   GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4406   GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4407   GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4408   GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4409   GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4410   GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4411   GL_VERTEX_ATTRIB_BINDING          = $82D4;
4412   GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4413   GL_VERTEX_BINDING_DIVISOR         = $82D6;
4414   GL_VERTEX_BINDING_OFFSET          = $82D7;
4415   GL_VERTEX_BINDING_STRIDE          = $82D8;
4416   GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4417   GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4418
4419   // GL 4.4
4420   GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4421   GL_MAP_PERSISTENT_BIT               = $0040;
4422   GL_MAP_COHERENT_BIT                 = $0080;
4423   GL_DYNAMIC_STORAGE_BIT              = $0100;
4424   GL_CLIENT_STORAGE_BIT               = $0200;
4425   GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4426   GL_BUFFER_IMMUTABLE_STORAGE           = $821F;
4427   GL_BUFFER_STORAGE_FLAGS               = $8220;
4428   GL_CLEAR_TEXTURE                      = $9365;
4429   GL_LOCATION_COMPONENT                 = $934A;
4430   GL_TRANSFORM_FEEDBACK_BUFFER_INDEX    = $934B;
4431   GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4432   GL_QUERY_BUFFER                       = $9192;
4433   GL_QUERY_BUFFER_BARRIER_BIT           = $00008000;
4434   GL_QUERY_BUFFER_BINDING               = $9193;
4435   GL_QUERY_RESULT_NO_WAIT               = $9194;
4436   GL_MIRROR_CLAMP_TO_EDGE               = $8743;
4437
4438   // GL 4.5
4439   GL_CONTEXT_LOST                   = $0507;
4440   GL_NEGATIVE_ONE_TO_ONE            = $935E;
4441   GL_ZERO_TO_ONE                    = $935F;
4442   GL_CLIP_ORIGIN                    = $935C;
4443   GL_CLIP_DEPTH_MODE                = $935D;
4444   GL_QUERY_WAIT_INVERTED            = $8E17;
4445   GL_QUERY_NO_WAIT_INVERTED         = $8E18;
4446   GL_QUERY_BY_REGION_WAIT_INVERTED  = $8E19;
4447   GL_QUERY_BY_REGION_NO_WAIT_INVERTED = $8E1A;
4448   GL_MAX_CULL_DISTANCES             = $82F9;
4449   GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = $82FA;
4450   GL_TEXTURE_TARGET                 = $1006;
4451   GL_QUERY_TARGET                   = $82EA;
4452   GL_TEXTURE_BINDING                = $82EB;
4453   GL_GUILTY_CONTEXT_RESET           = $8253;
4454   GL_INNOCENT_CONTEXT_RESET         = $8254;
4455   GL_UNKNOWN_CONTEXT_RESET          = $8255;
4456   GL_RESET_NOTIFICATION_STRATEGY    = $8256;
4457   GL_LOSE_CONTEXT_ON_RESET          = $8252;
4458   GL_NO_RESET_NOTIFICATION          = $8261;
4459   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = $00000004;
4460   GL_CONTEXT_RELEASE_BEHAVIOR       = $82FB;
4461   GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = $82FC;
4462
4463   // GL_ATI_draw_buffers
4464   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4465   GL_DRAW_BUFFER0_ATI = $8825;
4466   GL_DRAW_BUFFER1_ATI = $8826;
4467   GL_DRAW_BUFFER2_ATI = $8827;
4468   GL_DRAW_BUFFER3_ATI = $8828;
4469   GL_DRAW_BUFFER4_ATI = $8829;
4470   GL_DRAW_BUFFER5_ATI = $882A;
4471   GL_DRAW_BUFFER6_ATI = $882B;
4472   GL_DRAW_BUFFER7_ATI = $882C;
4473   GL_DRAW_BUFFER8_ATI = $882D;
4474   GL_DRAW_BUFFER9_ATI = $882E;
4475   GL_DRAW_BUFFER10_ATI = $882F;
4476   GL_DRAW_BUFFER11_ATI = $8830;
4477   GL_DRAW_BUFFER12_ATI = $8831;
4478   GL_DRAW_BUFFER13_ATI = $8832;
4479   GL_DRAW_BUFFER14_ATI = $8833;
4480   GL_DRAW_BUFFER15_ATI = $8834;
4481
4482   // GL_ATI_element_array
4483   GL_ELEMENT_ARRAY_ATI = $8768;
4484   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4485   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4486
4487   // GL_ATI_envmap_bumpmap
4488   GL_BUMP_ROT_MATRIX_ATI = $8775;
4489   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4490   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4491   GL_BUMP_TEX_UNITS_ATI = $8778;
4492   GL_DUDV_ATI = $8779;
4493   GL_DU8DV8_ATI = $877A;
4494   GL_BUMP_ENVMAP_ATI = $877B;
4495   GL_BUMP_TARGET_ATI = $877C;
4496
4497   // GL_ATI_fragment_shader
4498   GL_FRAGMENT_SHADER_ATI = $8920;
4499   GL_REG_0_ATI = $8921;
4500   GL_REG_1_ATI = $8922;
4501   GL_REG_2_ATI = $8923;
4502   GL_REG_3_ATI = $8924;
4503   GL_REG_4_ATI = $8925;
4504   GL_REG_5_ATI = $8926;
4505   GL_REG_6_ATI = $8927;
4506   GL_REG_7_ATI = $8928;
4507   GL_REG_8_ATI = $8929;
4508   GL_REG_9_ATI = $892A;
4509   GL_REG_10_ATI = $892B;
4510   GL_REG_11_ATI = $892C;
4511   GL_REG_12_ATI = $892D;
4512   GL_REG_13_ATI = $892E;
4513   GL_REG_14_ATI = $892F;
4514   GL_REG_15_ATI = $8930;
4515   GL_REG_16_ATI = $8931;
4516   GL_REG_17_ATI = $8932;
4517   GL_REG_18_ATI = $8933;
4518   GL_REG_19_ATI = $8934;
4519   GL_REG_20_ATI = $8935;
4520   GL_REG_21_ATI = $8936;
4521   GL_REG_22_ATI = $8937;
4522   GL_REG_23_ATI = $8938;
4523   GL_REG_24_ATI = $8939;
4524   GL_REG_25_ATI = $893A;
4525   GL_REG_26_ATI = $893B;
4526   GL_REG_27_ATI = $893C;
4527   GL_REG_28_ATI = $893D;
4528   GL_REG_29_ATI = $893E;
4529   GL_REG_30_ATI = $893F;
4530   GL_REG_31_ATI = $8940;
4531   GL_CON_0_ATI = $8941;
4532   GL_CON_1_ATI = $8942;
4533   GL_CON_2_ATI = $8943;
4534   GL_CON_3_ATI = $8944;
4535   GL_CON_4_ATI = $8945;
4536   GL_CON_5_ATI = $8946;
4537   GL_CON_6_ATI = $8947;
4538   GL_CON_7_ATI = $8948;
4539   GL_CON_8_ATI = $8949;
4540   GL_CON_9_ATI = $894A;
4541   GL_CON_10_ATI = $894B;
4542   GL_CON_11_ATI = $894C;
4543   GL_CON_12_ATI = $894D;
4544   GL_CON_13_ATI = $894E;
4545   GL_CON_14_ATI = $894F;
4546   GL_CON_15_ATI = $8950;
4547   GL_CON_16_ATI = $8951;
4548   GL_CON_17_ATI = $8952;
4549   GL_CON_18_ATI = $8953;
4550   GL_CON_19_ATI = $8954;
4551   GL_CON_20_ATI = $8955;
4552   GL_CON_21_ATI = $8956;
4553   GL_CON_22_ATI = $8957;
4554   GL_CON_23_ATI = $8958;
4555   GL_CON_24_ATI = $8959;
4556   GL_CON_25_ATI = $895A;
4557   GL_CON_26_ATI = $895B;
4558   GL_CON_27_ATI = $895C;
4559   GL_CON_28_ATI = $895D;
4560   GL_CON_29_ATI = $895E;
4561   GL_CON_30_ATI = $895F;
4562   GL_CON_31_ATI = $8960;
4563   GL_MOV_ATI = $8961;
4564   GL_ADD_ATI = $8963;
4565   GL_MUL_ATI = $8964;
4566   GL_SUB_ATI = $8965;
4567   GL_DOT3_ATI = $8966;
4568   GL_DOT4_ATI = $8967;
4569   GL_MAD_ATI = $8968;
4570   GL_LERP_ATI = $8969;
4571   GL_CND_ATI = $896A;
4572   GL_CND0_ATI = $896B;
4573   GL_DOT2_ADD_ATI = $896C;
4574   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4575   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4576   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4577   GL_NUM_PASSES_ATI = $8970;
4578   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4579   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4580   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4581   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4582   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4583   GL_SWIZZLE_STR_ATI = $8976;
4584   GL_SWIZZLE_STQ_ATI = $8977;
4585   GL_SWIZZLE_STR_DR_ATI = $8978;
4586   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4587   GL_SWIZZLE_STRQ_ATI = $897A;
4588   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4589   GL_RED_BIT_ATI = $00000001;
4590   GL_GREEN_BIT_ATI = $00000002;
4591   GL_BLUE_BIT_ATI = $00000004;
4592   GL_2X_BIT_ATI = $00000001;
4593   GL_4X_BIT_ATI = $00000002;
4594   GL_8X_BIT_ATI = $00000004;
4595   GL_HALF_BIT_ATI = $00000008;
4596   GL_QUARTER_BIT_ATI = $00000010;
4597   GL_EIGHTH_BIT_ATI = $00000020;
4598   GL_SATURATE_BIT_ATI = $00000040;
4599   GL_COMP_BIT_ATI = $00000002;
4600   GL_NEGATE_BIT_ATI = $00000004;
4601   GL_BIAS_BIT_ATI = $00000008;
4602
4603   // GL_ATI_pn_triangles
4604   GL_PN_TRIANGLES_ATI = $87F0;
4605   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4606   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4607   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4608   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4609   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4610   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4611   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4612   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4613
4614   // GL_ATI_separate_stencil
4615   GL_STENCIL_BACK_FUNC_ATI = $8800;
4616   GL_STENCIL_BACK_FAIL_ATI = $8801;
4617   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4618   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4619
4620   // GL_ATI_text_fragment_shader
4621   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4622
4623   // GL_ATI_texture_env_combine3
4624   GL_MODULATE_ADD_ATI = $8744;
4625   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4626   GL_MODULATE_SUBTRACT_ATI = $8746;
4627
4628   // GL_ATI_texture_float
4629   GL_RGBA_FLOAT32_ATI = $8814;
4630   GL_RGB_FLOAT32_ATI = $8815;
4631   GL_ALPHA_FLOAT32_ATI = $8816;
4632   GL_INTENSITY_FLOAT32_ATI = $8817;
4633   GL_LUMINANCE_FLOAT32_ATI = $8818;
4634   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4635   GL_RGBA_FLOAT16_ATI = $881A;
4636   GL_RGB_FLOAT16_ATI = $881B;
4637   GL_ALPHA_FLOAT16_ATI = $881C;
4638   GL_INTENSITY_FLOAT16_ATI = $881D;
4639   GL_LUMINANCE_FLOAT16_ATI = $881E;
4640   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4641
4642   // GL_ATI_texture_mirror_once
4643   GL_MIRROR_CLAMP_ATI = $8742;
4644   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4645
4646   // GL_ATI_vertex_array_object
4647   GL_STATIC_ATI = $8760;
4648   GL_DYNAMIC_ATI = $8761;
4649   GL_PRESERVE_ATI = $8762;
4650   GL_DISCARD_ATI = $8763;
4651   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4652   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4653   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4654   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4655
4656   // GL_ATI_vertex_streams
4657   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4658   GL_VERTEX_STREAM0_ATI = $876C;
4659   GL_VERTEX_STREAM1_ATI = $876D;
4660   GL_VERTEX_STREAM2_ATI = $876E;
4661   GL_VERTEX_STREAM3_ATI = $876F;
4662   GL_VERTEX_STREAM4_ATI = $8770;
4663   GL_VERTEX_STREAM5_ATI = $8771;
4664   GL_VERTEX_STREAM6_ATI = $8772;
4665   GL_VERTEX_STREAM7_ATI = $8773;
4666   GL_VERTEX_SOURCE_ATI = $8774;
4667
4668   // GL_ATI_meminfo
4669   GL_VBO_FREE_MEMORY_ATI = $87FB;
4670   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4671   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4672
4673   // GL_AMD_performance_monitor
4674   GL_COUNTER_TYPE_AMD = $8BC0;
4675   GL_COUNTER_RANGE_AMD = $8BC1;
4676   GL_UNSIGNED_INT64_AMD = $8BC2;
4677   GL_PERCENTAGE_AMD = $8BC3;
4678   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4679   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4680   GL_PERFMON_RESULT_AMD = $8BC6;
4681
4682   // GL_AMD_vertex_shader_tesselator
4683   GL_SAMPLER_BUFFER_AMD = $9001;
4684   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4685   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4686   GL_TESSELLATION_MODE_AMD = $9004;
4687   GL_TESSELLATION_FACTOR_AMD = $9005;
4688   GL_DISCRETE_AMD = $9006;
4689   GL_CONTINUOUS_AMD = $9007;
4690
4691   // GL_AMD_seamless_cubemap_per_texture
4692   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4693
4694   // GL_AMD_name_gen_delete
4695   GL_DATA_BUFFER_AMD = $9151;
4696   GL_PERFORMANCE_MONITOR_AMD = $9152;
4697   GL_QUERY_OBJECT_AMD = $9153;
4698   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
4699   GL_SAMPLER_OBJECT_AMD = $9155;
4700
4701   // GL_AMD_debug_output
4702   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
4703   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
4704   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
4705   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
4706   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
4707   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
4708   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
4709   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
4710   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
4711   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
4712   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
4713   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
4714   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
4715
4716   // GL_AMD_depth_clamp_separate
4717   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
4718   GL_DEPTH_CLAMP_FAR_AMD = $901F;
4719
4720   // GL_EXT_422_pixels
4721   GL_422_EXT = $80CC;
4722   GL_422_REV_EXT = $80CD;
4723   GL_422_AVERAGE_EXT = $80CE;
4724   GL_422_REV_AVERAGE_EXT = $80CF;
4725
4726   // GL_EXT_abgr
4727   GL_ABGR_EXT = $8000;
4728
4729   // GL_EXT_bgra
4730   GL_BGR_EXT = $80E0;
4731   GL_BGRA_EXT = $80E1;
4732
4733   // GL_EXT_blend_color
4734   GL_CONSTANT_COLOR_EXT = $8001;
4735   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
4736   GL_CONSTANT_ALPHA_EXT = $8003;
4737   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
4738   GL_BLEND_COLOR_EXT = $8005;
4739
4740   // GL_EXT_blend_func_separate
4741   GL_BLEND_DST_RGB_EXT = $80C8;
4742   GL_BLEND_SRC_RGB_EXT = $80C9;
4743   GL_BLEND_DST_ALPHA_EXT = $80CA;
4744   GL_BLEND_SRC_ALPHA_EXT = $80CB;
4745
4746   // GL_EXT_blend_minmax
4747   GL_FUNC_ADD_EXT = $8006;
4748   GL_MIN_EXT = $8007;
4749   GL_MAX_EXT = $8008;
4750   GL_BLEND_EQUATION_EXT = $8009;
4751
4752   // GL_EXT_blend_subtract
4753   GL_FUNC_SUBTRACT_EXT = $800A;
4754   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
4755
4756   // GL_EXT_clip_volume_hint
4757   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
4758
4759   // GL_EXT_cmyka
4760   GL_CMYK_EXT = $800C;
4761   GL_CMYKA_EXT = $800D;
4762   GL_PACK_CMYK_HINT_EXT = $800E;
4763   GL_UNPACK_CMYK_HINT_EXT = $800F;
4764
4765   // GL_EXT_compiled_vertex_array
4766   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
4767   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
4768
4769   // GL_EXT_convolution
4770   GL_CONVOLUTION_1D_EXT = $8010;
4771   GL_CONVOLUTION_2D_EXT = $8011;
4772   GL_SEPARABLE_2D_EXT = $8012;
4773   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
4774   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
4775   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
4776   GL_REDUCE_EXT = $8016;
4777   GL_CONVOLUTION_FORMAT_EXT = $8017;
4778   GL_CONVOLUTION_WIDTH_EXT = $8018;
4779   GL_CONVOLUTION_HEIGHT_EXT = $8019;
4780   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
4781   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
4782   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
4783   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
4784   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
4785   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
4786   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
4787   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
4788   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
4789   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
4790
4791   // GL_EXT_coordinate_frame
4792   GL_TANGENT_ARRAY_EXT = $8439;
4793   GL_BINORMAL_ARRAY_EXT = $843A;
4794   GL_CURRENT_TANGENT_EXT = $843B;
4795   GL_CURRENT_BINORMAL_EXT = $843C;
4796   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
4797   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
4798   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
4799   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
4800   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
4801   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
4802   GL_MAP1_TANGENT_EXT = $8444;
4803   GL_MAP2_TANGENT_EXT = $8445;
4804   GL_MAP1_BINORMAL_EXT = $8446;
4805   GL_MAP2_BINORMAL_EXT = $8447;
4806
4807   // GL_EXT_cull_vertex
4808   GL_CULL_VERTEX_EXT = $81AA;
4809   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
4810   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
4811
4812   // GL_EXT_draw_range_elements
4813   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
4814   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
4815
4816   // GL_EXT_fog_coord
4817   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
4818   GL_FOG_COORDINATE_EXT = $8451;
4819   GL_FRAGMENT_DEPTH_EXT = $8452;
4820   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
4821   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
4822   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
4823   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
4824   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
4825
4826   // GL_EXT_framebuffer_object
4827   GL_FRAMEBUFFER_EXT = $8D40;
4828   GL_RENDERBUFFER_EXT = $8D41;
4829   GL_STENCIL_INDEX_EXT = $8D45;
4830   GL_STENCIL_INDEX1_EXT = $8D46;
4831   GL_STENCIL_INDEX4_EXT = $8D47;
4832   GL_STENCIL_INDEX8_EXT = $8D48;
4833   GL_STENCIL_INDEX16_EXT = $8D49;
4834   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
4835   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
4836   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
4837   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
4838   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
4839   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
4840   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
4841   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
4842   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
4843   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
4844   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
4845   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
4846   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
4847   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
4848   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
4849   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
4850   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
4851   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
4852   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
4853   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
4854   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
4855   GL_COLOR_ATTACHMENT13_EXT = $8CED;
4856   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
4857   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
4858   GL_DEPTH_ATTACHMENT_EXT = $8D00;
4859   GL_STENCIL_ATTACHMENT_EXT = $8D20;
4860   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
4861   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
4862   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
4863   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
4864   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
4865   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
4866   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
4867   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
4868   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
4869   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
4870   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
4871   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
4872   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
4873   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
4874   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
4875
4876   // GL_EXT_histogram
4877   GL_HISTOGRAM_EXT = $8024;
4878   GL_PROXY_HISTOGRAM_EXT = $8025;
4879   GL_HISTOGRAM_WIDTH_EXT = $8026;
4880   GL_HISTOGRAM_FORMAT_EXT = $8027;
4881   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
4882   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
4883   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
4884   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
4885   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
4886   GL_HISTOGRAM_SINK_EXT = $802D;
4887   GL_MINMAX_EXT = $802E;
4888   GL_MINMAX_FORMAT_EXT = $802F;
4889   GL_MINMAX_SINK_EXT = $8030;
4890   GL_TABLE_TOO_LARGE_EXT = $8031;
4891
4892   // GL_EXT_index_array_formats
4893   GL_IUI_V2F_EXT = $81AD;
4894   GL_IUI_V3F_EXT = $81AE;
4895   GL_IUI_N3F_V2F_EXT = $81AF;
4896   GL_IUI_N3F_V3F_EXT = $81B0;
4897   GL_T2F_IUI_V2F_EXT = $81B1;
4898   GL_T2F_IUI_V3F_EXT = $81B2;
4899   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
4900   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
4901
4902   // GL_EXT_index_func
4903   GL_INDEX_TEST_EXT = $81B5;
4904   GL_INDEX_TEST_FUNC_EXT = $81B6;
4905   GL_INDEX_TEST_REF_EXT = $81B7;
4906
4907   // GL_EXT_index_material
4908   GL_INDEX_MATERIAL_EXT = $81B8;
4909   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
4910   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
4911
4912   // GL_EXT_light_texture
4913   GL_FRAGMENT_MATERIAL_EXT = $8349;
4914   GL_FRAGMENT_NORMAL_EXT = $834A;
4915   GL_FRAGMENT_COLOR_EXT = $834C;
4916   GL_ATTENUATION_EXT = $834D;
4917   GL_SHADOW_ATTENUATION_EXT = $834E;
4918   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
4919   GL_TEXTURE_LIGHT_EXT = $8350;
4920   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
4921   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
4922
4923   // GL_EXT_multisample
4924   GL_MULTISAMPLE_EXT = $809D;
4925   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
4926   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
4927   GL_SAMPLE_MASK_EXT = $80A0;
4928   GL_1PASS_EXT = $80A1;
4929   GL_2PASS_0_EXT = $80A2;
4930   GL_2PASS_1_EXT = $80A3;
4931   GL_4PASS_0_EXT = $80A4;
4932   GL_4PASS_1_EXT = $80A5;
4933   GL_4PASS_2_EXT = $80A6;
4934   GL_4PASS_3_EXT = $80A7;
4935   GL_SAMPLE_BUFFERS_EXT = $80A8;
4936   GL_SAMPLES_EXT = $80A9;
4937   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
4938   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
4939   GL_SAMPLE_PATTERN_EXT = $80AC;
4940   GL_MULTISAMPLE_BIT_EXT = $20000000;
4941
4942   // GL_EXT_packed_pixels
4943   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
4944   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
4945   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
4946   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
4947   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
4948
4949   // GL_EXT_paletted_texture
4950   GL_COLOR_INDEX1_EXT = $80E2;
4951   GL_COLOR_INDEX2_EXT = $80E3;
4952   GL_COLOR_INDEX4_EXT = $80E4;
4953   GL_COLOR_INDEX8_EXT = $80E5;
4954   GL_COLOR_INDEX12_EXT = $80E6;
4955   GL_COLOR_INDEX16_EXT = $80E7;
4956   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
4957
4958   // GL_EXT_pixel_transform
4959   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
4960   GL_PIXEL_MAG_FILTER_EXT = $8331;
4961   GL_PIXEL_MIN_FILTER_EXT = $8332;
4962   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
4963   GL_CUBIC_EXT = $8334;
4964   GL_AVERAGE_EXT = $8335;
4965   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
4966   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
4967   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
4968
4969   // GL_EXT_point_parameters
4970   GL_POINT_SIZE_MIN_EXT = $8126;
4971   GL_POINT_SIZE_MAX_EXT = $8127;
4972   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
4973   GL_DISTANCE_ATTENUATION_EXT = $8129;
4974
4975   // GL_EXT_polygon_offset
4976   GL_POLYGON_OFFSET_EXT = $8037;
4977   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
4978   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
4979
4980   // GL_EXT_rescale_normal
4981   GL_RESCALE_NORMAL_EXT = $803A;
4982
4983   // GL_EXT_secondary_color
4984   GL_COLOR_SUM_EXT = $8458;
4985   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
4986   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
4987   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
4988   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
4989   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
4990   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
4991
4992   // GL_EXT_separate_specular_color
4993   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
4994   GL_SINGLE_COLOR_EXT = $81F9;
4995   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
4996
4997   // GL_EXT_shared_texture_palette
4998   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
4999
5000   // GL_EXT_stencil_two_side
5001   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
5002   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
5003
5004   // GL_EXT_stencil_wrap
5005   GL_INCR_WRAP_EXT = $8507;
5006   GL_DECR_WRAP_EXT = $8508;
5007
5008   // GL_EXT_texture
5009   GL_ALPHA4_EXT = $803B;
5010   GL_ALPHA8_EXT = $803C;
5011   GL_ALPHA12_EXT = $803D;
5012   GL_ALPHA16_EXT = $803E;
5013   GL_LUMINANCE4_EXT = $803F;
5014   GL_LUMINANCE8_EXT = $8040;
5015   GL_LUMINANCE12_EXT = $8041;
5016   GL_LUMINANCE16_EXT = $8042;
5017   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5018   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5019   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5020   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5021   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5022   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5023   GL_INTENSITY_EXT = $8049;
5024   GL_INTENSITY4_EXT = $804A;
5025   GL_INTENSITY8_EXT = $804B;
5026   GL_INTENSITY12_EXT = $804C;
5027   GL_INTENSITY16_EXT = $804D;
5028   GL_RGB2_EXT = $804E;
5029   GL_RGB4_EXT = $804F;
5030   GL_RGB5_EXT = $8050;
5031   GL_RGB8_EXT = $8051;
5032   GL_RGB10_EXT = $8052;
5033   GL_RGB12_EXT = $8053;
5034   GL_RGB16_EXT = $8054;
5035   GL_RGBA2_EXT = $8055;
5036   GL_RGBA4_EXT = $8056;
5037   GL_RGB5_A1_EXT = $8057;
5038   GL_RGBA8_EXT = $8058;
5039   GL_RGB10_A2_EXT = $8059;
5040   GL_RGBA12_EXT = $805A;
5041   GL_RGBA16_EXT = $805B;
5042   GL_TEXTURE_RED_SIZE_EXT = $805C;
5043   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5044   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5045   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5046   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5047   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5048   GL_REPLACE_EXT = $8062;
5049   GL_PROXY_TEXTURE_1D_EXT = $8063;
5050   GL_PROXY_TEXTURE_2D_EXT = $8064;
5051   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5052
5053   // GL_EXT_texture3D
5054   GL_PACK_SKIP_IMAGES_EXT = $806B;
5055   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5056   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5057   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5058   GL_TEXTURE_3D_EXT = $806F;
5059   GL_PROXY_TEXTURE_3D_EXT = $8070;
5060   GL_TEXTURE_DEPTH_EXT = $8071;
5061   GL_TEXTURE_WRAP_R_EXT = $8072;
5062   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5063
5064   // GL_EXT_texture_compression_s3tc
5065   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5066   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5067   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5068   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5069
5070   // GL_EXT_texture_cube_map
5071   GL_NORMAL_MAP_EXT = $8511;
5072   GL_REFLECTION_MAP_EXT = $8512;
5073   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5074   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5075   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5076   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5077   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5078   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5079   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5080   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5081   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5082   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5083
5084   // GL_EXT_texture_edge_clamp
5085   GL_CLAMP_TO_EDGE_EXT = $812F;
5086
5087   // GL_EXT_texture_env_combine
5088   GL_COMBINE_EXT = $8570;
5089   GL_COMBINE_RGB_EXT = $8571;
5090   GL_COMBINE_ALPHA_EXT = $8572;
5091   GL_RGB_SCALE_EXT = $8573;
5092   GL_ADD_SIGNED_EXT = $8574;
5093   GL_INTERPOLATE_EXT = $8575;
5094   GL_CONSTANT_EXT = $8576;
5095   GL_PRIMARY_COLOR_EXT = $8577;
5096   GL_PREVIOUS_EXT = $8578;
5097   GL_SOURCE0_RGB_EXT = $8580;
5098   GL_SOURCE1_RGB_EXT = $8581;
5099   GL_SOURCE2_RGB_EXT = $8582;
5100   GL_SOURCE0_ALPHA_EXT = $8588;
5101   GL_SOURCE1_ALPHA_EXT = $8589;
5102   GL_SOURCE2_ALPHA_EXT = $858A;
5103   GL_OPERAND0_RGB_EXT = $8590;
5104   GL_OPERAND1_RGB_EXT = $8591;
5105   GL_OPERAND2_RGB_EXT = $8592;
5106   GL_OPERAND0_ALPHA_EXT = $8598;
5107   GL_OPERAND1_ALPHA_EXT = $8599;
5108   GL_OPERAND2_ALPHA_EXT = $859A;
5109
5110   // GL_EXT_texture_env_dot3
5111   GL_DOT3_RGB_EXT = $8740;
5112   GL_DOT3_RGBA_EXT = $8741;
5113
5114   // GL_EXT_texture_filter_anisotropic
5115   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5116   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5117
5118   // GL_EXT_texture_lod_bias
5119   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5120   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5121   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5122
5123   // GL_EXT_texture_object
5124   GL_TEXTURE_PRIORITY_EXT = $8066;
5125   GL_TEXTURE_RESIDENT_EXT = $8067;
5126   GL_TEXTURE_1D_BINDING_EXT = $8068;
5127   GL_TEXTURE_2D_BINDING_EXT = $8069;
5128   GL_TEXTURE_3D_BINDING_EXT = $806A;
5129
5130   // GL_EXT_texture_perturb_normal
5131   GL_PERTURB_EXT = $85AE;
5132   GL_TEXTURE_NORMAL_EXT = $85AF;
5133
5134   // GL_EXT_texture_rectangle
5135   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5136   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5137   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5138   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5139
5140   // GL_EXT_vertex_array
5141   GL_VERTEX_ARRAY_EXT = $8074;
5142   GL_NORMAL_ARRAY_EXT = $8075;
5143   GL_COLOR_ARRAY_EXT = $8076;
5144   GL_INDEX_ARRAY_EXT = $8077;
5145   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5146   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5147   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5148   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5149   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5150   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5151   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5152   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5153   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5154   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5155   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5156   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5157   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5158   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5159   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5160   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5161   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5162   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5163   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5164   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5165   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5166   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5167   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5168   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5169   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5170   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5171   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5172   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5173
5174   // GL_EXT_vertex_shader
5175   GL_VERTEX_SHADER_EXT = $8780;
5176   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5177   GL_OP_INDEX_EXT = $8782;
5178   GL_OP_NEGATE_EXT = $8783;
5179   GL_OP_DOT3_EXT = $8784;
5180   GL_OP_DOT4_EXT = $8785;
5181   GL_OP_MUL_EXT = $8786;
5182   GL_OP_ADD_EXT = $8787;
5183   GL_OP_MADD_EXT = $8788;
5184   GL_OP_FRAC_EXT = $8789;
5185   GL_OP_MAX_EXT = $878A;
5186   GL_OP_MIN_EXT = $878B;
5187   GL_OP_SET_GE_EXT = $878C;
5188   GL_OP_SET_LT_EXT = $878D;
5189   GL_OP_CLAMP_EXT = $878E;
5190   GL_OP_FLOOR_EXT = $878F;
5191   GL_OP_ROUND_EXT = $8790;
5192   GL_OP_EXP_BASE_2_EXT = $8791;
5193   GL_OP_LOG_BASE_2_EXT = $8792;
5194   GL_OP_POWER_EXT = $8793;
5195   GL_OP_RECIP_EXT = $8794;
5196   GL_OP_RECIP_SQRT_EXT = $8795;
5197   GL_OP_SUB_EXT = $8796;
5198   GL_OP_CROSS_PRODUCT_EXT = $8797;
5199   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5200   GL_OP_MOV_EXT = $8799;
5201   GL_OUTPUT_VERTEX_EXT = $879A;
5202   GL_OUTPUT_COLOR0_EXT = $879B;
5203   GL_OUTPUT_COLOR1_EXT = $879C;
5204   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5205   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5206   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5207   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5208   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5209   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5210   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5211   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5212   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5213   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5214   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5215   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5216   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5217   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5218   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5219   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5220   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5221   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5222   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5223   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5224   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5225   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5226   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5227   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5228   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5229   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5230   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5231   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5232   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5233   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5234   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5235   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5236   GL_OUTPUT_FOG_EXT = $87BD;
5237   GL_SCALAR_EXT = $87BE;
5238   GL_VECTOR_EXT = $87BF;
5239   GL_MATRIX_EXT = $87C0;
5240   GL_VARIANT_EXT = $87C1;
5241   GL_INVARIANT_EXT = $87C2;
5242   GL_LOCAL_CONSTANT_EXT = $87C3;
5243   GL_LOCAL_EXT = $87C4;
5244   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5245   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5246   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5247   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5248   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5249   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5250   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5251   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5252   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5253   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5254   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5255   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5256   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5257   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5258   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5259   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5260   GL_X_EXT = $87D5;
5261   GL_Y_EXT = $87D6;
5262   GL_Z_EXT = $87D7;
5263   GL_W_EXT = $87D8;
5264   GL_NEGATIVE_X_EXT = $87D9;
5265   GL_NEGATIVE_Y_EXT = $87DA;
5266   GL_NEGATIVE_Z_EXT = $87DB;
5267   GL_NEGATIVE_W_EXT = $87DC;
5268   GL_ZERO_EXT = $87DD;
5269   GL_ONE_EXT = $87DE;
5270   GL_NEGATIVE_ONE_EXT = $87DF;
5271   GL_NORMALIZED_RANGE_EXT = $87E0;
5272   GL_FULL_RANGE_EXT = $87E1;
5273   GL_CURRENT_VERTEX_EXT = $87E2;
5274   GL_MVP_MATRIX_EXT = $87E3;
5275   GL_VARIANT_VALUE_EXT = $87E4;
5276   GL_VARIANT_DATATYPE_EXT = $87E5;
5277   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5278   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5279   GL_VARIANT_ARRAY_EXT = $87E8;
5280   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5281   GL_INVARIANT_VALUE_EXT = $87EA;
5282   GL_INVARIANT_DATATYPE_EXT = $87EB;
5283   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5284   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5285
5286   // GL_EXT_vertex_weighting
5287   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5288   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5289   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5290   GL_MODELVIEW1_MATRIX_EXT = $8506;
5291   GL_VERTEX_WEIGHTING_EXT = $8509;
5292   GL_MODELVIEW0_EXT = $1700;
5293   GL_MODELVIEW1_EXT = $850A;
5294   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5295   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5296   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5297   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5298   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5299   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5300
5301   // GL_EXT_depth_bounds_test
5302   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5303   GL_DEPTH_BOUNDS_EXT = $8891;
5304
5305   // GL_EXT_texture_mirror_clamp
5306   GL_MIRROR_CLAMP_EXT = $8742;
5307   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5308   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5309
5310   // GL_EXT_blend_equation_separate
5311   GL_BLEND_EQUATION_RGB_EXT = $8009;
5312   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5313
5314   // GL_EXT_pixel_buffer_object
5315   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5316   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5317   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5318   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5319
5320   // GL_EXT_stencil_clear_tag
5321   GL_STENCIL_TAG_BITS_EXT = $88F2;
5322   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5323
5324   // GL_EXT_packed_depth_stencil
5325   GL_DEPTH_STENCIL_EXT = $84F9;
5326   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5327   GL_DEPTH24_STENCIL8_EXT = $88F0;
5328   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5329
5330   // GL_EXT_texture_sRGB
5331   GL_SRGB_EXT = $8C40;
5332   GL_SRGB8_EXT = $8C41;
5333   GL_SRGB_ALPHA_EXT = $8C42;
5334   GL_SRGB8_ALPHA8_EXT = $8C43;
5335   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5336   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5337   GL_SLUMINANCE_EXT = $8C46;
5338   GL_SLUMINANCE8_EXT = $8C47;
5339   GL_COMPRESSED_SRGB_EXT = $8C48;
5340   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5341   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5342   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5343   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5344   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5345   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5346   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5347
5348   // GL_EXT_framebuffer_blit
5349   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5350   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5351   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5352   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5353
5354   // GL_EXT_framebuffer_multisample
5355   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5356   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5357   GL_MAX_SAMPLES_EXT = $8D57;
5358
5359   // GL_EXT_timer_query
5360   GL_TIME_ELAPSED_EXT = $88BF;
5361
5362   // GL_EXT_bindable_uniform
5363   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5364   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5365   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5366   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5367   GL_UNIFORM_BUFFER_EXT = $8DEE;
5368   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5369
5370   // GL_EXT_framebuffer_sRGB
5371   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5372   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5373   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5374   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5375
5376   // GL_EXT_geometry_shader4
5377   GL_GEOMETRY_SHADER_EXT = $8DD9;
5378   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5379   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5380   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5381   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5382   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5383   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5384   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5385   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5386   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5387   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5388   GL_LINES_ADJACENCY_EXT = $A;
5389   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5390   GL_TRIANGLES_ADJACENCY_EXT = $C;
5391   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5392   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5393   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5394   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5395   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5396   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5397
5398   // GL_EXT_gpu_shader4
5399   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5400   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5401   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5402   GL_SAMPLER_BUFFER_EXT = $8DC2;
5403   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5404   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5405   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5406   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5407   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5408   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5409   GL_INT_SAMPLER_1D_EXT = $8DC9;
5410   GL_INT_SAMPLER_2D_EXT = $8DCA;
5411   GL_INT_SAMPLER_3D_EXT = $8DCB;
5412   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5413   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5414   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5415   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5416   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5417   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5418   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5419   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5420   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5421   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5422   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5423   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5424   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5425   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5426   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5427
5428   // GL_EXT_packed_float
5429   GL_R11F_G11F_B10F_EXT = $8C3A;
5430   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5431   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5432   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5433   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5434   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5435
5436   // GL_EXT_texture_array
5437   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5438   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5439   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5440   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5441   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5442   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5443   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5444   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5445
5446   // GL_EXT_texture_buffer_object
5447   GL_TEXTURE_BUFFER_EXT = $8C2A;
5448   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5449   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5450   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5451   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5452
5453   // GL_EXT_texture_compression_latc
5454   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5455   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5456   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5457   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5458
5459   // GL_EXT_texture_compression_rgtc
5460   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5461   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5462   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5463   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5464
5465   // GL_EXT_texture_integer
5466   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5467   GL_RGBA32UI_EXT = $8D70;
5468   GL_RGB32UI_EXT = $8D71;
5469   GL_ALPHA32UI_EXT = $8D72;
5470   GL_INTENSITY32UI_EXT = $8D73;
5471   GL_LUMINANCE32UI_EXT = $8D74;
5472   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5473   GL_RGBA16UI_EXT = $8D76;
5474   GL_RGB16UI_EXT = $8D77;
5475   GL_ALPHA16UI_EXT = $8D78;
5476   GL_INTENSITY16UI_EXT = $8D79;
5477   GL_LUMINANCE16UI_EXT = $8D7A;
5478   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5479   GL_RGBA8UI_EXT = $8D7C;
5480   GL_RGB8UI_EXT = $8D7D;
5481   GL_ALPHA8UI_EXT = $8D7E;
5482   GL_INTENSITY8UI_EXT = $8D7F;
5483   GL_LUMINANCE8UI_EXT = $8D80;
5484   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5485   GL_RGBA32I_EXT = $8D82;
5486   GL_RGB32I_EXT = $8D83;
5487   GL_ALPHA32I_EXT = $8D84;
5488   GL_INTENSITY32I_EXT = $8D85;
5489   GL_LUMINANCE32I_EXT = $8D86;
5490   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5491   GL_RGBA16I_EXT = $8D88;
5492   GL_RGB16I_EXT = $8D89;
5493   GL_ALPHA16I_EXT = $8D8A;
5494   GL_INTENSITY16I_EXT = $8D8B;
5495   GL_LUMINANCE16I_EXT = $8D8C;
5496   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5497   GL_RGBA8I_EXT = $8D8E;
5498   GL_RGB8I_EXT = $8D8F;
5499   GL_ALPHA8I_EXT = $8D90;
5500   GL_INTENSITY8I_EXT = $8D91;
5501   GL_LUMINANCE8I_EXT = $8D92;
5502   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5503   GL_RED_INTEGER_EXT = $8D94;
5504   GL_GREEN_INTEGER_EXT = $8D95;
5505   GL_BLUE_INTEGER_EXT = $8D96;
5506   GL_ALPHA_INTEGER_EXT = $8D97;
5507   GL_RGB_INTEGER_EXT = $8D98;
5508   GL_RGBA_INTEGER_EXT = $8D99;
5509   GL_BGR_INTEGER_EXT = $8D9A;
5510   GL_BGRA_INTEGER_EXT = $8D9B;
5511   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5512   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5513
5514   // GL_EXT_texture_shared_exponent
5515   GL_RGB9_E5_EXT = $8C3D;
5516   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5517   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5518
5519   // GL_EXT_transform_feedback
5520   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5521   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5522   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5523   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5524   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5525   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5526   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5527   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5528   GL_RASTERIZER_DISCARD_EXT = $8C89;
5529   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5530   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5531   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5532   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5533   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5534   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5535
5536   // GL_EXT_direct_state_access
5537   GL_PROGRAM_MATRIX_EXT = $8E2D;
5538   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5539   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5540
5541   // GL_EXT_texture_swizzle
5542   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5543   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5544   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5545   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5546   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5547
5548   // GL_EXT_provoking_vertex
5549   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5550   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5551   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5552   GL_PROVOKING_VERTEX_EXT = $8E4F;
5553
5554   // GL_EXT_texture_snorm
5555   GL_ALPHA_SNORM = $9010;
5556   GL_LUMINANCE_SNORM = $9011;
5557   GL_LUMINANCE_ALPHA_SNORM = $9012;
5558   GL_INTENSITY_SNORM = $9013;
5559   GL_ALPHA8_SNORM = $9014;
5560   GL_LUMINANCE8_SNORM = $9015;
5561   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5562   GL_INTENSITY8_SNORM = $9017;
5563   GL_ALPHA16_SNORM = $9018;
5564   GL_LUMINANCE16_SNORM = $9019;
5565   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5566   GL_INTENSITY16_SNORM = $901B;
5567   { reuse GL_RED_SNORM }
5568   { reuse GL_RG_SNORM }
5569   { reuse GL_RGB_SNORM }
5570   { reuse GL_RGBA_SNORM }
5571   { reuse GL_R8_SNORM }
5572   { reuse GL_RG8_SNORM }
5573   { reuse GL_RGB8_SNORM }
5574   { reuse GL_RGBA8_SNORM }
5575   { reuse GL_R16_SNORM }
5576   { reuse GL_RG16_SNORM }
5577   { reuse GL_RGB16_SNORM }
5578   { reuse GL_RGBA16_SNORM }
5579   { reuse GL_SIGNED_NORMALIZED }
5580
5581   // GL_EXT_separate_shader_objects
5582   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5583
5584   // GL_EXT_shader_image_load_store
5585   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5586   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5587   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5588   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5589   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5590   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5591   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5592   GL_IMAGE_1D_EXT = $904C;
5593   GL_IMAGE_2D_EXT = $904D;
5594   GL_IMAGE_3D_EXT = $904E;
5595   GL_IMAGE_2D_RECT_EXT = $904F;
5596   GL_IMAGE_CUBE_EXT = $9050;
5597   GL_IMAGE_BUFFER_EXT = $9051;
5598   GL_IMAGE_1D_ARRAY_EXT = $9052;
5599   GL_IMAGE_2D_ARRAY_EXT = $9053;
5600   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5601   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5602   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5603   GL_INT_IMAGE_1D_EXT = $9057;
5604   GL_INT_IMAGE_2D_EXT = $9058;
5605   GL_INT_IMAGE_3D_EXT = $9059;
5606   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5607   GL_INT_IMAGE_CUBE_EXT = $905B;
5608   GL_INT_IMAGE_BUFFER_EXT = $905C;
5609   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5610   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5611   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5612   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5613   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5614   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5615   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5616   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5617   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5618   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5619   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5620   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5621   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5622   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5623   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5624   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5625   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5626   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5627   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5628   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5629   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5630   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5631   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5632   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5633   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5634   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5635   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5636   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5637   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5638   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5639   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5640
5641   // GL_EXT_vertex_attrib_64bit
5642   { reuse GL_DOUBLE }
5643   GL_DOUBLE_VEC2_EXT = $8FFC;
5644   GL_DOUBLE_VEC3_EXT = $8FFD;
5645   GL_DOUBLE_VEC4_EXT = $8FFE;
5646   GL_DOUBLE_MAT2_EXT = $8F46;
5647   GL_DOUBLE_MAT3_EXT = $8F47;
5648   GL_DOUBLE_MAT4_EXT = $8F48;
5649   GL_DOUBLE_MAT2x3_EXT = $8F49;
5650   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5651   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5652   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5653   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5654   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5655
5656   // GL_EXT_texture_sRGB_decode
5657   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5658   GL_DECODE_EXT = $8A49;
5659   GL_SKIP_DECODE_EXT = $8A4A;
5660
5661   // GL_NV_texture_multisample
5662   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5663   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5664
5665   // GL_AMD_blend_minmax_factor
5666   GL_FACTOR_MIN_AMD                 = $901C;
5667   GL_FACTOR_MAX_AMD                 = $901D;
5668
5669   // GL_AMD_sample_positions
5670   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5671
5672   // GL_EXT_x11_sync_object
5673   GL_SYNC_X11_FENCE_EXT             = $90E1;
5674
5675   // GL_EXT_framebuffer_multisample_blit_scaled
5676   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5677   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5678
5679   // (4.3) GL_NV_path_rendering
5680         GL_PATH_FORMAT_SVG_NV            = $9070;
5681         GL_PATH_FORMAT_PS_NV             = $9071;
5682         GL_STANDARD_FONT_NAME_NV         = $9072;
5683         GL_SYSTEM_FONT_NAME_NV           = $9073;
5684         GL_FILE_NAME_NV                  = $9074;
5685         GL_PATH_STROKE_WIDTH_NV          = $9075;
5686         GL_PATH_END_CAPS_NV              = $9076;
5687         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5688         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5689         GL_PATH_JOIN_STYLE_NV            = $9079;
5690         GL_PATH_MITER_LIMIT_NV           = $907A;
5691         GL_PATH_DASH_CAPS_NV             = $907B;
5692         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5693         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5694         GL_PATH_DASH_OFFSET_NV           = $907E;
5695         GL_PATH_CLIENT_LENGTH_NV         = $907F;
5696         GL_PATH_FILL_MODE_NV             = $9080;
5697         GL_PATH_FILL_MASK_NV             = $9081;
5698         GL_PATH_FILL_COVER_MODE_NV       = $9082;
5699         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
5700         GL_PATH_STROKE_MASK_NV           = $9084;
5701         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
5702         GL_PATH_STROKE_BOUND_NV          = $9086;
5703         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
5704         GL_COUNT_UP_NV                   = $9088;
5705         GL_COUNT_DOWN_NV                 = $9089;
5706         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
5707         GL_CONVEX_HULL_NV                = $908B;
5708         GL_MULTI_HULLS_NV                = $908C;
5709         GL_BOUNDING_BOX_NV               = $908D;
5710         GL_TRANSLATE_X_NV                = $908E;
5711         GL_TRANSLATE_Y_NV                = $908F;
5712         GL_TRANSLATE_2D_NV               = $9090;
5713         GL_TRANSLATE_3D_NV               = $9091;
5714         GL_AFFINE_2D_NV                  = $9092;
5715         GL_PROJECTIVE_2D_NV              = $9093;
5716         GL_AFFINE_3D_NV                  = $9094;
5717         GL_PROJECTIVE_3D_NV              = $9095;
5718         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
5719         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
5720         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
5721         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
5722         GL_UTF8_NV                       = $909A;
5723         GL_UTF16_NV                      = $909B;
5724         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
5725         GL_PATH_COMMAND_COUNT_NV         = $909D;
5726         GL_PATH_COORD_COUNT_NV           = $909E;
5727   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
5728   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
5729   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
5730   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
5731   GL_SQUARE_NV                     = $90A3;
5732   GL_ROUND_NV                      = $90A4;
5733   GL_TRIANGULAR_NV                 = $90A5;
5734   GL_BEVEL_NV                      = $90A6;
5735   GL_MITER_REVERT_NV               = $90A7;
5736   GL_MITER_TRUNCATE_NV             = $90A8;
5737   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
5738   GL_USE_MISSING_GLYPH_NV          = $90AA;
5739   GL_PATH_ERROR_POSITION_NV        = $90AB;
5740   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
5741   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
5742   GL_ADJACENT_PAIRS_NV             = $90AE;
5743   GL_FIRST_TO_REST_NV              = $90AF;
5744   GL_PATH_GEN_MODE_NV              = $90B0;
5745   GL_PATH_GEN_COEFF_NV             = $90B1;
5746   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
5747   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
5748   GL_PATH_STENCIL_FUNC_NV          = $90B7;
5749   GL_PATH_STENCIL_REF_NV           = $90B8;
5750   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
5751   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
5752   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
5753   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
5754   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
5755   GL_MOVE_TO_RESETS_NV             = $90B5;
5756   GL_MOVE_TO_CONTINUES_NV          = $90B6;
5757   GL_CLOSE_PATH_NV                 = $00;
5758   GL_MOVE_TO_NV                    = $02;
5759   GL_RELATIVE_MOVE_TO_NV           = $03;
5760   GL_LINE_TO_NV                    = $04;
5761   GL_RELATIVE_LINE_TO_NV           = $05;
5762   GL_HORIZONTAL_LINE_TO_NV         = $06;
5763   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
5764   GL_VERTICAL_LINE_TO_NV           = $08;
5765   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
5766   GL_QUADRATIC_CURVE_TO_NV         = $0A;
5767   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
5768   GL_CUBIC_CURVE_TO_NV             = $0C;
5769   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
5770   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
5771   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
5772   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
5773   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
5774   GL_SMALL_CCW_ARC_TO_NV           = $12;
5775   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
5776   GL_SMALL_CW_ARC_TO_NV            = $14;
5777   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
5778   GL_LARGE_CCW_ARC_TO_NV           = $16;
5779   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
5780   GL_LARGE_CW_ARC_TO_NV            = $18;
5781   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
5782   GL_RESTART_PATH_NV               = $F0;
5783   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
5784   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
5785   GL_RECT_NV                       = $F6;
5786   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
5787   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
5788   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
5789   GL_ARC_TO_NV                     = $FE;
5790   GL_RELATIVE_ARC_TO_NV            = $FF;
5791   GL_BOLD_BIT_NV                   = $01;
5792   GL_ITALIC_BIT_NV                 = $02;
5793   GL_GLYPH_WIDTH_BIT_NV            = $01;
5794   GL_GLYPH_HEIGHT_BIT_NV           = $02;
5795   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
5796   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
5797   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
5798   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
5799   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
5800   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
5801   GL_GLYPH_HAS_KERNING_NV          = $100;
5802   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
5803   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
5804   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
5805   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
5806   GL_FONT_UNITS_PER_EM_NV          = $00100000;
5807   GL_FONT_ASCENDER_NV              = $00200000;
5808   GL_FONT_DESCENDER_NV             = $00400000;
5809   GL_FONT_HEIGHT_NV                = $00800000;
5810   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
5811   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
5812   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
5813   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
5814   GL_FONT_HAS_KERNING_NV           = $10000000;
5815
5816   // (4.3) GL_AMD_pinned_memory
5817   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
5818
5819   // (4.3) GL_AMD_stencil_operation_extended
5820   GL_SET_AMD                       = $874A;
5821   GL_REPLACE_VALUE_AMD             = $874B;
5822   GL_STENCIL_OP_VALUE_AMD          = $874C;
5823   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
5824
5825   // (4.3) GL_AMD_vertex_shader_viewport_index
5826
5827   // (4.3) GL_AMD_vertex_shader_layer
5828
5829   // (4.3) GL_NV_bindless_texture
5830
5831   // (4.3) GL_NV_shader_atomic_float
5832
5833   // (4.3) GL_AMD_query_buffer_object
5834   GL_QUERY_BUFFER_AMD              = $9192;
5835   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
5836   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
5837
5838   // GL_FfdMaskSGIX
5839   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
5840   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
5841
5842   // GL_HP_convolution_border_modes
5843   GL_IGNORE_BORDER_HP = $8150;
5844   GL_CONSTANT_BORDER_HP = $8151;
5845   GL_REPLICATE_BORDER_HP = $8153;
5846   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
5847
5848   // GL_HP_image_transform
5849   GL_IMAGE_SCALE_X_HP = $8155;
5850   GL_IMAGE_SCALE_Y_HP = $8156;
5851   GL_IMAGE_TRANSLATE_X_HP = $8157;
5852   GL_IMAGE_TRANSLATE_Y_HP = $8158;
5853   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
5854   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
5855   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
5856   GL_IMAGE_MAG_FILTER_HP = $815C;
5857   GL_IMAGE_MIN_FILTER_HP = $815D;
5858   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
5859   GL_CUBIC_HP = $815F;
5860   GL_AVERAGE_HP = $8160;
5861   GL_IMAGE_TRANSFORM_2D_HP = $8161;
5862   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
5863   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
5864
5865   // GL_HP_occlusion_test
5866   GL_OCCLUSION_TEST_HP = $8165;
5867   GL_OCCLUSION_TEST_RESULT_HP = $8166;
5868
5869   // GL_HP_texture_lighting
5870   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
5871   GL_TEXTURE_POST_SPECULAR_HP = $8168;
5872   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
5873
5874   // GL_IBM_cull_vertex
5875   GL_CULL_VERTEX_IBM = 103050;
5876
5877   // GL_IBM_rasterpos_clip
5878   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
5879
5880   // GL_IBM_texture_mirrored_repeat
5881   GL_MIRRORED_REPEAT_IBM = $8370;
5882
5883   // GL_IBM_vertex_array_lists
5884   GL_VERTEX_ARRAY_LIST_IBM = 103070;
5885   GL_NORMAL_ARRAY_LIST_IBM = 103071;
5886   GL_COLOR_ARRAY_LIST_IBM = 103072;
5887   GL_INDEX_ARRAY_LIST_IBM = 103073;
5888   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
5889   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
5890   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
5891   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
5892   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
5893   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
5894   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
5895   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
5896   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
5897   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
5898   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
5899   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
5900
5901   // GL_INGR_color_clamp
5902   GL_RED_MIN_CLAMP_INGR = $8560;
5903   GL_GREEN_MIN_CLAMP_INGR = $8561;
5904   GL_BLUE_MIN_CLAMP_INGR = $8562;
5905   GL_ALPHA_MIN_CLAMP_INGR = $8563;
5906   GL_RED_MAX_CLAMP_INGR = $8564;
5907   GL_GREEN_MAX_CLAMP_INGR = $8565;
5908   GL_BLUE_MAX_CLAMP_INGR = $8566;
5909   GL_ALPHA_MAX_CLAMP_INGR = $8567;
5910
5911   // GL_INGR_interlace_read
5912   GL_INTERLACE_READ_INGR = $8568;
5913
5914   // GL_INTEL_parallel_arrays
5915   GL_PARALLEL_ARRAYS_INTEL = $83F4;
5916   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
5917   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
5918   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
5919   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
5920
5921   // GL_NV_copy_depth_to_color
5922   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
5923   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
5924
5925   // GL_NV_depth_clamp
5926   GL_DEPTH_CLAMP_NV = $864F;
5927
5928   // GL_NV_evaluators
5929   GL_EVAL_2D_NV = $86C0;
5930   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
5931   GL_MAP_TESSELLATION_NV = $86C2;
5932   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
5933   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
5934   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
5935   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
5936   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
5937   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
5938   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
5939   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
5940   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
5941   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
5942   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
5943   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
5944   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
5945   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
5946   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
5947   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
5948   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
5949   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
5950   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
5951   GL_MAX_MAP_TESSELLATION_NV = $86D6;
5952   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
5953
5954   // GL_NV_fence
5955   GL_ALL_COMPLETED_NV = $84F2;
5956   GL_FENCE_STATUS_NV = $84F3;
5957   GL_FENCE_CONDITION_NV = $84F4;
5958
5959   // GL_NV_float_buffer
5960   GL_FLOAT_R_NV = $8880;
5961   GL_FLOAT_RG_NV = $8881;
5962   GL_FLOAT_RGB_NV = $8882;
5963   GL_FLOAT_RGBA_NV = $8883;
5964   GL_FLOAT_R16_NV = $8884;
5965   GL_FLOAT_R32_NV = $8885;
5966   GL_FLOAT_RG16_NV = $8886;
5967   GL_FLOAT_RG32_NV = $8887;
5968   GL_FLOAT_RGB16_NV = $8888;
5969   GL_FLOAT_RGB32_NV = $8889;
5970   GL_FLOAT_RGBA16_NV = $888A;
5971   GL_FLOAT_RGBA32_NV = $888B;
5972   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
5973   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
5974   GL_FLOAT_RGBA_MODE_NV = $888E;
5975
5976   // GL_NV_fog_distance
5977   GL_FOG_DISTANCE_MODE_NV = $855A;
5978   GL_EYE_RADIAL_NV = $855B;
5979   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
5980
5981   // GL_NV_fragment_program
5982   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
5983   GL_FRAGMENT_PROGRAM_NV = $8870;
5984   GL_MAX_TEXTURE_COORDS_NV = $8871;
5985   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
5986   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
5987   GL_PROGRAM_ERROR_STRING_NV = $8874;
5988
5989   // GL_NV_half_float
5990   GL_HALF_FLOAT_NV = $140B;
5991
5992   // GL_NV_light_max_exponent
5993   GL_MAX_SHININESS_NV = $8504;
5994   GL_MAX_SPOT_EXPONENT_NV = $8505;
5995
5996   // GL_NV_multisample_filter_hint
5997   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
5998
5999   // GL_NV_occlusion_query
6000   GL_PIXEL_COUNTER_BITS_NV = $8864;
6001   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
6002   GL_PIXEL_COUNT_NV = $8866;
6003   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
6004
6005   // GL_NV_packed_depth_stencil
6006   GL_DEPTH_STENCIL_NV = $84F9;
6007   GL_UNSIGNED_INT_24_8_NV = $84FA;
6008
6009   // GL_NV_pixel_data_range
6010   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
6011   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
6012   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
6013   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6014   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6015   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6016
6017   // GL_NV_point_sprite
6018   GL_POINT_SPRITE_NV = $8861;
6019   GL_COORD_REPLACE_NV = $8862;
6020   GL_POINT_SPRITE_R_MODE_NV = $8863;
6021
6022   // GL_NV_primitive_restart
6023   GL_PRIMITIVE_RESTART_NV = $8558;
6024   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6025
6026   // GL_NV_register_combiners
6027   GL_REGISTER_COMBINERS_NV = $8522;
6028   GL_VARIABLE_A_NV = $8523;
6029   GL_VARIABLE_B_NV = $8524;
6030   GL_VARIABLE_C_NV = $8525;
6031   GL_VARIABLE_D_NV = $8526;
6032   GL_VARIABLE_E_NV = $8527;
6033   GL_VARIABLE_F_NV = $8528;
6034   GL_VARIABLE_G_NV = $8529;
6035   GL_CONSTANT_COLOR0_NV = $852A;
6036   GL_CONSTANT_COLOR1_NV = $852B;
6037   GL_PRIMARY_COLOR_NV = $852C;
6038   GL_SECONDARY_COLOR_NV = $852D;
6039   GL_SPARE0_NV = $852E;
6040   GL_SPARE1_NV = $852F;
6041   GL_DISCARD_NV = $8530;
6042   GL_E_TIMES_F_NV = $8531;
6043   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6044   GL_UNSIGNED_IDENTITY_NV = $8536;
6045   GL_UNSIGNED_INVERT_NV = $8537;
6046   GL_EXPAND_NORMAL_NV = $8538;
6047   GL_EXPAND_NEGATE_NV = $8539;
6048   GL_HALF_BIAS_NORMAL_NV = $853A;
6049   GL_HALF_BIAS_NEGATE_NV = $853B;
6050   GL_SIGNED_IDENTITY_NV = $853C;
6051   GL_SIGNED_NEGATE_NV = $853D;
6052   GL_SCALE_BY_TWO_NV = $853E;
6053   GL_SCALE_BY_FOUR_NV = $853F;
6054   GL_SCALE_BY_ONE_HALF_NV = $8540;
6055   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6056   GL_COMBINER_INPUT_NV = $8542;
6057   GL_COMBINER_MAPPING_NV = $8543;
6058   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6059   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6060   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6061   GL_COMBINER_MUX_SUM_NV = $8547;
6062   GL_COMBINER_SCALE_NV = $8548;
6063   GL_COMBINER_BIAS_NV = $8549;
6064   GL_COMBINER_AB_OUTPUT_NV = $854A;
6065   GL_COMBINER_CD_OUTPUT_NV = $854B;
6066   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6067   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6068   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6069   GL_COLOR_SUM_CLAMP_NV = $854F;
6070   GL_COMBINER0_NV = $8550;
6071   GL_COMBINER1_NV = $8551;
6072   GL_COMBINER2_NV = $8552;
6073   GL_COMBINER3_NV = $8553;
6074   GL_COMBINER4_NV = $8554;
6075   GL_COMBINER5_NV = $8555;
6076   GL_COMBINER6_NV = $8556;
6077   GL_COMBINER7_NV = $8557;
6078
6079   // GL_NV_register_combiners2
6080   GL_PER_STAGE_CONSTANTS_NV = $8535;
6081
6082   // GL_NV_texgen_emboss
6083   GL_EMBOSS_LIGHT_NV = $855D;
6084   GL_EMBOSS_CONSTANT_NV = $855E;
6085   GL_EMBOSS_MAP_NV = $855F;
6086
6087   // GL_NV_texgen_reflection
6088   GL_NORMAL_MAP_NV = $8511;
6089   GL_REFLECTION_MAP_NV = $8512;
6090
6091   // GL_NV_texture_env_combine4
6092   GL_COMBINE4_NV = $8503;
6093   GL_SOURCE3_RGB_NV = $8583;
6094   GL_SOURCE3_ALPHA_NV = $858B;
6095   GL_OPERAND3_RGB_NV = $8593;
6096   GL_OPERAND3_ALPHA_NV = $859B;
6097
6098   // GL_NV_texture_expand_normal
6099   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6100
6101   // GL_NV_texture_rectangle
6102   GL_TEXTURE_RECTANGLE_NV = $84F5;
6103   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6104   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6105   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6106
6107   // GL_NV_texture_shader
6108   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6109   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6110   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6111   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6112   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6113   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6114   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6115   GL_SHADER_CONSISTENT_NV = $86DD;
6116   GL_TEXTURE_SHADER_NV = $86DE;
6117   GL_SHADER_OPERATION_NV = $86DF;
6118   GL_CULL_MODES_NV = $86E0;
6119   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6120   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6121   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6122   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6123   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6124   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6125   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6126   GL_CONST_EYE_NV = $86E5;
6127   GL_PASS_THROUGH_NV = $86E6;
6128   GL_CULL_FRAGMENT_NV = $86E7;
6129   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6130   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6131   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6132   GL_DOT_PRODUCT_NV = $86EC;
6133   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6134   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6135   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6136   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6137   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6138   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6139   GL_HILO_NV = $86F4;
6140   GL_DSDT_NV = $86F5;
6141   GL_DSDT_MAG_NV = $86F6;
6142   GL_DSDT_MAG_VIB_NV = $86F7;
6143   GL_HILO16_NV = $86F8;
6144   GL_SIGNED_HILO_NV = $86F9;
6145   GL_SIGNED_HILO16_NV = $86FA;
6146   GL_SIGNED_RGBA_NV = $86FB;
6147   GL_SIGNED_RGBA8_NV = $86FC;
6148   GL_SIGNED_RGB_NV = $86FE;
6149   GL_SIGNED_RGB8_NV = $86FF;
6150   GL_SIGNED_LUMINANCE_NV = $8701;
6151   GL_SIGNED_LUMINANCE8_NV = $8702;
6152   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6153   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6154   GL_SIGNED_ALPHA_NV = $8705;
6155   GL_SIGNED_ALPHA8_NV = $8706;
6156   GL_SIGNED_INTENSITY_NV = $8707;
6157   GL_SIGNED_INTENSITY8_NV = $8708;
6158   GL_DSDT8_NV = $8709;
6159   GL_DSDT8_MAG8_NV = $870A;
6160   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6161   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6162   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6163   GL_HI_SCALE_NV = $870E;
6164   GL_LO_SCALE_NV = $870F;
6165   GL_DS_SCALE_NV = $8710;
6166   GL_DT_SCALE_NV = $8711;
6167   GL_MAGNITUDE_SCALE_NV = $8712;
6168   GL_VIBRANCE_SCALE_NV = $8713;
6169   GL_HI_BIAS_NV = $8714;
6170   GL_LO_BIAS_NV = $8715;
6171   GL_DS_BIAS_NV = $8716;
6172   GL_DT_BIAS_NV = $8717;
6173   GL_MAGNITUDE_BIAS_NV = $8718;
6174   GL_VIBRANCE_BIAS_NV = $8719;
6175   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6176   GL_TEXTURE_HI_SIZE_NV = $871B;
6177   GL_TEXTURE_LO_SIZE_NV = $871C;
6178   GL_TEXTURE_DS_SIZE_NV = $871D;
6179   GL_TEXTURE_DT_SIZE_NV = $871E;
6180   GL_TEXTURE_MAG_SIZE_NV = $871F;
6181
6182   // GL_NV_texture_shader2
6183   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6184
6185   // GL_NV_texture_shader3
6186   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6187   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6188   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6189   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6190   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6191   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6192   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6193   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6194   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6195   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6196   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6197   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6198   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6199   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6200   GL_HILO8_NV = $885E;
6201   GL_SIGNED_HILO8_NV = $885F;
6202   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6203
6204   // GL_NV_vertex_array_range
6205   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6206   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6207   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6208   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6209   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6210
6211   // GL_NV_vertex_array_range2
6212   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6213
6214   // GL_NV_vertex_program
6215   GL_VERTEX_PROGRAM_NV = $8620;
6216   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6217   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6218   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6219   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6220   GL_CURRENT_ATTRIB_NV = $8626;
6221   GL_PROGRAM_LENGTH_NV = $8627;
6222   GL_PROGRAM_STRING_NV = $8628;
6223   GL_MODELVIEW_PROJECTION_NV = $8629;
6224   GL_IDENTITY_NV = $862A;
6225   GL_INVERSE_NV = $862B;
6226   GL_TRANSPOSE_NV = $862C;
6227   GL_INVERSE_TRANSPOSE_NV = $862D;
6228   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6229   GL_MAX_TRACK_MATRICES_NV = $862F;
6230   GL_MATRIX0_NV = $8630;
6231   GL_MATRIX1_NV = $8631;
6232   GL_MATRIX2_NV = $8632;
6233   GL_MATRIX3_NV = $8633;
6234   GL_MATRIX4_NV = $8634;
6235   GL_MATRIX5_NV = $8635;
6236   GL_MATRIX6_NV = $8636;
6237   GL_MATRIX7_NV = $8637;
6238   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6239   GL_CURRENT_MATRIX_NV = $8641;
6240   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6241   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6242   GL_PROGRAM_PARAMETER_NV = $8644;
6243   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6244   GL_PROGRAM_TARGET_NV = $8646;
6245   GL_PROGRAM_RESIDENT_NV = $8647;
6246   GL_TRACK_MATRIX_NV = $8648;
6247   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6248   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6249   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6250   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6251   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6252   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6253   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6254   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6255   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6256   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6257   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6258   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6259   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6260   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6261   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6262   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6263   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6264   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6265   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6266   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6267   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6268   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6269   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6270   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6271   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6272   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6273   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6274   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6275   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6276   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6277   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6278   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6279   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6280   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6281   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6282   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6283   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6284   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6285   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6286   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6287   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6288   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6289   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6290   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6291   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6292   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6293   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6294   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6295   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6296   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6297   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6298
6299   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6300   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6301   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6302
6303   // GL_NV_fragment_program2
6304   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6305   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6306   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6307
6308   // GL_NV_vertex_program3
6309   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6310
6311   // GL_NV_depth_buffer_float
6312   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6313   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6314
6315   // GL_NV_framebuffer_multisample_coverage
6316   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6317   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6318
6319   // GL_NV_geometry_program4
6320   GL_GEOMETRY_PROGRAM_NV = $8C26;
6321   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6322   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6323
6324   // GL_NV_gpu_program4
6325   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6326   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6327   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6328   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6329   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6330   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6331
6332   // GL_NV_parameter_buffer_object
6333   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6334   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6335   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6336   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6337   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6338
6339   // GL_NV_transform_feedback
6340   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6341   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6342   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6343   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6344   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6345   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6346   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6347   GL_PRIMITIVES_GENERATED_NV = $8C87;
6348   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6349   GL_RASTERIZER_DISCARD_NV = $8C89;
6350   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6351   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6352   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6353   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6354   GL_ACTIVE_VARYINGS_NV = $8C81;
6355   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6356   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6357   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6358   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6359   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6360   GL_TEXTURE_COORD_NV = $8C79;
6361   GL_CLIP_DISTANCE_NV = $8C7A;
6362   GL_VERTEX_ID_NV = $8C7B;
6363   GL_PRIMITIVE_ID_NV = $8C7C;
6364   GL_GENERIC_ATTRIB_NV = $8C7D;
6365   GL_LAYER_NV = $8DAA;
6366   GL_NEXT_BUFFER_NV = -2;
6367   GL_SKIP_COMPONENTS4_NV = -3;
6368   GL_SKIP_COMPONENTS3_NV = -4;
6369   GL_SKIP_COMPONENTS2_NV = -5;
6370   GL_SKIP_COMPONENTS1_NV = -6;
6371
6372   // GL_NV_conditional_render
6373   GL_QUERY_WAIT_NV = $8E13;
6374   GL_QUERY_NO_WAIT_NV = $8E14;
6375   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6376   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6377
6378   // GL_NV_present_video
6379   GL_FRAME_NV = $8E26;
6380   GL_FIELDS_NV = $8E27;
6381   GL_CURRENT_TIME_NV = $8E28;
6382   GL_NUM_FILL_STREAMS_NV = $8E29;
6383   GL_PRESENT_TIME_NV = $8E2A;
6384   GL_PRESENT_DURATION_NV = $8E2B;
6385
6386   // GL_NV_explicit_multisample
6387   GL_SAMPLE_POSITION_NV = $8E50;
6388   GL_SAMPLE_MASK_NV = $8E51;
6389   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6390   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6391   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6392   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6393   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6394   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6395   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6396   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6397
6398   // GL_NV_transform_feedback2
6399   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6400   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6401   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6402   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6403
6404   // GL_NV_video_capture
6405   GL_VIDEO_BUFFER_NV = $9020;
6406   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6407   GL_FIELD_UPPER_NV = $9022;
6408   GL_FIELD_LOWER_NV = $9023;
6409   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6410   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6411   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6412   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6413   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6414   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6415   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6416   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6417   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6418   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6419   GL_PARTIAL_SUCCESS_NV = $902E;
6420   GL_SUCCESS_NV = $902F;
6421   GL_FAILURE_NV = $9030;
6422   GL_YCBYCR8_422_NV = $9031;
6423   GL_YCBAYCR8A_4224_NV = $9032;
6424   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6425   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6426   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6427   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6428   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6429   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6430   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6431   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6432   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6433   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6434
6435   // GL_NV_shader_buffer_load
6436   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6437   GL_GPU_ADDRESS_NV = $8F34;
6438   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6439
6440   // GL_NV_vertex_buffer_unified_memory
6441   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6442   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6443   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6444   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6445   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6446   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6447   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6448   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6449   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6450   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6451   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6452   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6453   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6454   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6455   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6456   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6457   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6458   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6459   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6460   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6461   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6462   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6463   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6464   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6465   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6466
6467   // GL_NV_gpu_program5
6468   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6469   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6470   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6471   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6472   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6473   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6474   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6475   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6476
6477   // GL_NV_gpu_shader5
6478   GL_INT64_NV = $140E;
6479   GL_UNSIGNED_INT64_NV = $140F;
6480   GL_INT8_NV = $8FE0;
6481   GL_INT8_VEC2_NV = $8FE1;
6482   GL_INT8_VEC3_NV = $8FE2;
6483   GL_INT8_VEC4_NV = $8FE3;
6484   GL_INT16_NV = $8FE4;
6485   GL_INT16_VEC2_NV = $8FE5;
6486   GL_INT16_VEC3_NV = $8FE6;
6487   GL_INT16_VEC4_NV = $8FE7;
6488   GL_INT64_VEC2_NV = $8FE9;
6489   GL_INT64_VEC3_NV = $8FEA;
6490   GL_INT64_VEC4_NV = $8FEB;
6491   GL_UNSIGNED_INT8_NV = $8FEC;
6492   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6493   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6494   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6495   GL_UNSIGNED_INT16_NV = $8FF0;
6496   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6497   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6498   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6499   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6500   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6501   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6502   GL_FLOAT16_NV = $8FF8;
6503   GL_FLOAT16_VEC2_NV = $8FF9;
6504   GL_FLOAT16_VEC3_NV = $8FFA;
6505   GL_FLOAT16_VEC4_NV = $8FFB;
6506   { reuse GL_PATCHES }
6507
6508   // GL_NV_shader_buffer_store
6509   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6510   { reuse GL_READ_WRITE }
6511   { reuse GL_WRITE_ONLY }
6512
6513   // GL_NV_tessellation_program5
6514   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6515   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6516   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6517   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6518   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6519
6520   // GL_NV_vertex_attrib_integer_64bit
6521   { reuse GL_INT64_NV }
6522   { reuse GL_UNSIGNED_INT64_NV }
6523
6524   // GL_NV_multisample_coverage
6525   GL_COVERAGE_SAMPLES_NV = $80A9;
6526   GL_COLOR_SAMPLES_NV = $8E20;
6527
6528   // GL_NV_vdpau_interop
6529   GL_SURFACE_STATE_NV = $86EB;
6530   GL_SURFACE_REGISTERED_NV = $86FD;
6531   GL_SURFACE_MAPPED_NV = $8700;
6532   GL_WRITE_DISCARD_NV = $88BE;
6533
6534   // GL_OML_interlace
6535   GL_INTERLACE_OML = $8980;
6536   GL_INTERLACE_READ_OML = $8981;
6537
6538   // GL_OML_resample
6539   GL_PACK_RESAMPLE_OML = $8984;
6540   GL_UNPACK_RESAMPLE_OML = $8985;
6541   GL_RESAMPLE_REPLICATE_OML = $8986;
6542   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6543   GL_RESAMPLE_AVERAGE_OML = $8988;
6544   GL_RESAMPLE_DECIMATE_OML = $8989;
6545
6546   // GL_OML_subsample
6547   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6548   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6549
6550   // GL_PGI_misc_hints
6551   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6552   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6553   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6554   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6555   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6556   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6557   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6558   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6559   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6560   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6561   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6562   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6563   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6564   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6565   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6566   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6567   GL_CLIP_NEAR_HINT_PGI = $1A220;
6568   GL_CLIP_FAR_HINT_PGI = $1A221;
6569   GL_WIDE_LINE_HINT_PGI = $1A222;
6570   GL_BACK_NORMALS_HINT_PGI = $1A223;
6571
6572   // GL_PGI_vertex_hints
6573   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6574   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6575   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6576   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6577   GL_COLOR3_BIT_PGI = $00010000;
6578   GL_COLOR4_BIT_PGI = $00020000;
6579   GL_EDGEFLAG_BIT_PGI = $00040000;
6580   GL_INDEX_BIT_PGI = $00080000;
6581   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6582   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6583   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6584   GL_MAT_EMISSION_BIT_PGI = $00800000;
6585   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6586   GL_MAT_SHININESS_BIT_PGI = $02000000;
6587   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6588   GL_NORMAL_BIT_PGI = $08000000;
6589   GL_TEXCOORD1_BIT_PGI = $10000000;
6590   GL_TEXCOORD2_BIT_PGI = $20000000;
6591   GL_TEXCOORD3_BIT_PGI = $40000000;
6592   GL_TEXCOORD4_BIT_PGI = $80000000;
6593   GL_VERTEX23_BIT_PGI = $00000004;
6594   GL_VERTEX4_BIT_PGI = $00000008;
6595
6596   // GL_REND_screen_coordinates
6597   GL_SCREEN_COORDINATES_REND = $8490;
6598   GL_INVERTED_SCREEN_W_REND = $8491;
6599
6600   // GL_S3_s3tc
6601   GL_RGB_S3TC = $83A0;
6602   GL_RGB4_S3TC = $83A1;
6603   GL_RGBA_S3TC = $83A2;
6604   GL_RGBA4_S3TC = $83A3;
6605
6606   // GL_SGIS_detail_texture
6607   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6608   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6609   GL_LINEAR_DETAIL_SGIS = $8097;
6610   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6611   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6612   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6613   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6614   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6615
6616   // GL_SGIS_fog_function
6617   GL_FOG_FUNC_SGIS = $812A;
6618   GL_FOG_FUNC_POINTS_SGIS = $812B;
6619   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6620
6621   // GL_SGIS_generate_mipmap
6622   GL_GENERATE_MIPMAP_SGIS = $8191;
6623   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6624
6625   // GL_SGIS_multisample
6626   GL_MULTISAMPLE_SGIS = $809D;
6627   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6628   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6629   GL_SAMPLE_MASK_SGIS = $80A0;
6630   GL_1PASS_SGIS = $80A1;
6631   GL_2PASS_0_SGIS = $80A2;
6632   GL_2PASS_1_SGIS = $80A3;
6633   GL_4PASS_0_SGIS = $80A4;
6634   GL_4PASS_1_SGIS = $80A5;
6635   GL_4PASS_2_SGIS = $80A6;
6636   GL_4PASS_3_SGIS = $80A7;
6637   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6638   GL_SAMPLES_SGIS = $80A9;
6639   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6640   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6641   GL_SAMPLE_PATTERN_SGIS = $80AC;
6642
6643   // GL_SGIS_pixel_texture
6644   GL_PIXEL_TEXTURE_SGIS = $8353;
6645   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6646   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6647   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6648
6649   // GL_SGIS_point_line_texgen
6650   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6651   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6652   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6653   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6654   GL_EYE_POINT_SGIS = $81F4;
6655   GL_OBJECT_POINT_SGIS = $81F5;
6656   GL_EYE_LINE_SGIS = $81F6;
6657   GL_OBJECT_LINE_SGIS = $81F7;
6658
6659   // GL_SGIS_point_parameters
6660   GL_POINT_SIZE_MIN_SGIS = $8126;
6661   GL_POINT_SIZE_MAX_SGIS = $8127;
6662   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6663   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6664
6665   // GL_SGIS_sharpen_texture
6666   GL_LINEAR_SHARPEN_SGIS = $80AD;
6667   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6668   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6669   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6670
6671   // GL_SGIS_texture4D
6672   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6673   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6674   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6675   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6676   GL_TEXTURE_4D_SGIS = $8134;
6677   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6678   GL_TEXTURE_4DSIZE_SGIS = $8136;
6679   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6680   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6681   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6682
6683   // GL_SGIS_texture_color_mask
6684   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6685
6686   // GL_SGIS_texture_edge_clamp
6687   GL_CLAMP_TO_EDGE_SGIS = $812F;
6688
6689   // GL_SGIS_texture_filter4
6690   GL_FILTER4_SGIS = $8146;
6691   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6692
6693   // GL_SGIS_texture_lod
6694   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6695   GL_TEXTURE_MAX_LOD_SGIS = $813B;
6696   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
6697   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
6698
6699   // GL_SGIS_texture_select
6700   GL_DUAL_ALPHA4_SGIS = $8110;
6701   GL_DUAL_ALPHA8_SGIS = $8111;
6702   GL_DUAL_ALPHA12_SGIS = $8112;
6703   GL_DUAL_ALPHA16_SGIS = $8113;
6704   GL_DUAL_LUMINANCE4_SGIS = $8114;
6705   GL_DUAL_LUMINANCE8_SGIS = $8115;
6706   GL_DUAL_LUMINANCE12_SGIS = $8116;
6707   GL_DUAL_LUMINANCE16_SGIS = $8117;
6708   GL_DUAL_INTENSITY4_SGIS = $8118;
6709   GL_DUAL_INTENSITY8_SGIS = $8119;
6710   GL_DUAL_INTENSITY12_SGIS = $811A;
6711   GL_DUAL_INTENSITY16_SGIS = $811B;
6712   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
6713   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
6714   GL_QUAD_ALPHA4_SGIS = $811E;
6715   GL_QUAD_ALPHA8_SGIS = $811F;
6716   GL_QUAD_LUMINANCE4_SGIS = $8120;
6717   GL_QUAD_LUMINANCE8_SGIS = $8121;
6718   GL_QUAD_INTENSITY4_SGIS = $8122;
6719   GL_QUAD_INTENSITY8_SGIS = $8123;
6720   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
6721   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
6722
6723   // GL_SGIX_async
6724   GL_ASYNC_MARKER_SGIX = $8329;
6725
6726   // GL_SGIX_async_histogram
6727   GL_ASYNC_HISTOGRAM_SGIX = $832C;
6728   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
6729
6730   // GL_SGIX_async_pixel
6731   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
6732   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
6733   GL_ASYNC_READ_PIXELS_SGIX = $835E;
6734   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
6735   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
6736   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
6737
6738   // GL_SGIX_blend_alpha_minmax
6739   GL_ALPHA_MIN_SGIX = $8320;
6740   GL_ALPHA_MAX_SGIX = $8321;
6741
6742   // GL_SGIX_calligraphic_fragment
6743   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
6744
6745   // GL_SGIX_clipmap
6746   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
6747   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
6748   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
6749   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
6750   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
6751   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
6752   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
6753   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
6754   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
6755   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
6756   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
6757   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
6758
6759   // GL_SGIX_convolution_accuracy
6760   GL_CONVOLUTION_HINT_SGIX = $8316;
6761
6762   // GL_SGIX_depth_texture
6763   GL_DEPTH_COMPONENT16_SGIX = $81A5;
6764   GL_DEPTH_COMPONENT24_SGIX = $81A6;
6765   GL_DEPTH_COMPONENT32_SGIX = $81A7;
6766
6767   // GL_SGIX_fog_offset
6768   GL_FOG_OFFSET_SGIX = $8198;
6769   GL_FOG_OFFSET_VALUE_SGIX = $8199;
6770
6771   // GL_SGIX_fog_scale
6772   GL_FOG_SCALE_SGIX = $81FC;
6773   GL_FOG_SCALE_VALUE_SGIX = $81FD;
6774
6775   // GL_SGIX_fragment_lighting
6776   GL_FRAGMENT_LIGHTING_SGIX = $8400;
6777   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
6778   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
6779   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
6780   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
6781   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
6782   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
6783   GL_LIGHT_ENV_MODE_SGIX = $8407;
6784   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
6785   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
6786   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
6787   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
6788   GL_FRAGMENT_LIGHT0_SGIX = $840C;
6789   GL_FRAGMENT_LIGHT1_SGIX = $840D;
6790   GL_FRAGMENT_LIGHT2_SGIX = $840E;
6791   GL_FRAGMENT_LIGHT3_SGIX = $840F;
6792   GL_FRAGMENT_LIGHT4_SGIX = $8410;
6793   GL_FRAGMENT_LIGHT5_SGIX = $8411;
6794   GL_FRAGMENT_LIGHT6_SGIX = $8412;
6795   GL_FRAGMENT_LIGHT7_SGIX = $8413;
6796
6797   // GL_SGIX_framezoom
6798   GL_FRAMEZOOM_SGIX = $818B;
6799   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
6800   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
6801
6802   // GL_SGIX_impact_pixel_texture
6803   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
6804   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
6805   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
6806   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
6807   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
6808   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
6809   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
6810
6811   // GL_SGIX_instruments
6812   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
6813   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
6814
6815   // GL_SGIX_interlace
6816   GL_INTERLACE_SGIX = $8094;
6817
6818   // GL_SGIX_ir_instrument1
6819   GL_IR_INSTRUMENT1_SGIX = $817F;
6820
6821   // GL_SGIX_list_priority
6822   GL_LIST_PRIORITY_SGIX = $8182;
6823
6824   // GL_SGIX_pixel_texture
6825   GL_PIXEL_TEX_GEN_SGIX = $8139;
6826   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
6827
6828   // GL_SGIX_pixel_tiles
6829   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
6830   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
6831   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
6832   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
6833   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
6834   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
6835   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
6836   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
6837
6838   // GL_SGIX_polynomial_ffd
6839   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
6840   GL_TEXTURE_DEFORMATION_SGIX = $8195;
6841   GL_DEFORMATIONS_MASK_SGIX = $8196;
6842   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
6843
6844   // GL_SGIX_reference_plane
6845   GL_REFERENCE_PLANE_SGIX = $817D;
6846   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
6847
6848   // GL_SGIX_resample
6849   GL_PACK_RESAMPLE_SGIX = $842C;
6850   GL_UNPACK_RESAMPLE_SGIX = $842D;
6851   GL_RESAMPLE_REPLICATE_SGIX = $842E;
6852   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
6853   GL_RESAMPLE_DECIMATE_SGIX = $8430;
6854
6855   // GL_SGIX_scalebias_hint
6856   GL_SCALEBIAS_HINT_SGIX = $8322;
6857
6858   // GL_SGIX_shadow
6859   GL_TEXTURE_COMPARE_SGIX = $819A;
6860   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
6861   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
6862   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
6863
6864   // GL_SGIX_shadow_ambient
6865   GL_SHADOW_AMBIENT_SGIX = $80BF;
6866
6867   // GL_SGIX_sprite
6868   GL_SPRITE_SGIX = $8148;
6869   GL_SPRITE_MODE_SGIX = $8149;
6870   GL_SPRITE_AXIS_SGIX = $814A;
6871   GL_SPRITE_TRANSLATION_SGIX = $814B;
6872   GL_SPRITE_AXIAL_SGIX = $814C;
6873   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
6874   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
6875
6876   // GL_SGIX_subsample
6877   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
6878   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
6879   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
6880   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
6881   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
6882
6883   // GL_SGIX_texture_add_env
6884   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
6885
6886   // GL_SGIX_texture_coordinate_clamp
6887   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
6888   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
6889   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
6890
6891   // GL_SGIX_texture_lod_bias
6892   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
6893   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
6894   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
6895
6896   // GL_SGIX_texture_multi_buffer
6897   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
6898
6899   // GL_SGIX_texture_scale_bias
6900   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
6901   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
6902   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
6903   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
6904
6905   // GL_SGIX_vertex_preclip
6906   GL_VERTEX_PRECLIP_SGIX = $83EE;
6907   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
6908
6909   // GL_SGIX_ycrcb
6910   GL_YCRCB_422_SGIX = $81BB;
6911   GL_YCRCB_444_SGIX = $81BC;
6912
6913   // GL_SGIX_ycrcba
6914   GL_YCRCB_SGIX = $8318;
6915   GL_YCRCBA_SGIX = $8319;
6916
6917   // GL_SGI_color_matrix
6918   GL_COLOR_MATRIX_SGI = $80B1;
6919   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
6920   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
6921   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
6922   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
6923   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
6924   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
6925   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
6926   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
6927   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
6928   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
6929
6930   // GL_SGI_color_table
6931   GL_COLOR_TABLE_SGI = $80D0;
6932   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
6933   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
6934   GL_PROXY_COLOR_TABLE_SGI = $80D3;
6935   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
6936   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
6937   GL_COLOR_TABLE_SCALE_SGI = $80D6;
6938   GL_COLOR_TABLE_BIAS_SGI = $80D7;
6939   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
6940   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
6941   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
6942   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
6943   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
6944   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
6945   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
6946   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
6947
6948   // GL_SGI_depth_pass_instrument
6949   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
6950   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
6951   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
6952
6953   // GL_SGI_texture_color_table
6954   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
6955   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
6956
6957   // GL_SUNX_constant_data
6958   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
6959   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
6960
6961   // GL_SUN_convolution_border_modes
6962   GL_WRAP_BORDER_SUN = $81D4;
6963
6964   // GL_SUN_global_alpha
6965   GL_GLOBAL_ALPHA_SUN = $81D9;
6966   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
6967
6968   // GL_SUN_mesh_array
6969   GL_QUAD_MESH_SUN = $8614;
6970   GL_TRIANGLE_MESH_SUN = $8615;
6971
6972   // GL_SUN_slice_accum
6973   GL_SLICE_ACCUM_SUN = $85CC;
6974
6975   // GL_SUN_triangle_list
6976   GL_RESTART_SUN = $0001;
6977   GL_REPLACE_MIDDLE_SUN = $0002;
6978   GL_REPLACE_OLDEST_SUN = $0003;
6979   GL_TRIANGLE_LIST_SUN = $81D7;
6980   GL_REPLACEMENT_CODE_SUN = $81D8;
6981   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
6982   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
6983   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
6984   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
6985   GL_R1UI_V3F_SUN = $85C4;
6986   GL_R1UI_C4UB_V3F_SUN = $85C5;
6987   GL_R1UI_C3F_V3F_SUN = $85C6;
6988   GL_R1UI_N3F_V3F_SUN = $85C7;
6989   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
6990   GL_R1UI_T2F_V3F_SUN = $85C9;
6991   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
6992   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
6993
6994   // GL_WIN_phong_shading
6995   GL_PHONG_WIN = $80EA;
6996   GL_PHONG_HINT_WIN = $80EB;
6997
6998   // GL_WIN_specular_fog
6999   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
7000
7001   // GL_ARB_vertex_shader
7002   GL_VERTEX_SHADER_ARB = $8B31;
7003   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
7004   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
7005   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
7006   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
7007   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
7008   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
7009
7010   // GL_KHR_blend_equation_advanced
7011   GL_MULTIPLY_KHR = $9294;
7012   GL_SCREEN_KHR = $9295;
7013   GL_OVERLAY_KHR = $9296;
7014   GL_DARKEN_KHR = $9297;
7015   GL_LIGHTEN_KHR = $9298;
7016   GL_COLORDODGE_KHR = $9299;
7017   GL_COLORBURN_KHR = $929A;
7018   GL_HARDLIGHT_KHR = $929B;
7019   GL_SOFTLIGHT_KHR = $929C;
7020   GL_DIFFERENCE_KHR = $929E;
7021   GL_EXCLUSION_KHR = $92A0;
7022   GL_HSL_HUE_KHR = $92AD;
7023   GL_HSL_SATURATION_KHR = $92AE;
7024   GL_HSL_COLOR_KHR = $92AF;
7025   GL_HSL_LUMINOSITY_KHR = $92B0;
7026
7027   // GL_KHR_blend_equation_advanced_coherent
7028   GL_BLEND_ADVANCED_COHERENT_KHR = $9285;
7029
7030   // GL_KHR_robustness
7031   GL_CONTEXT_ROBUST_ACCESS = $90F3;
7032
7033   // GL_ARB_fragment_shader
7034   GL_FRAGMENT_SHADER_ARB = $8B30;
7035   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7036   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7037
7038   // GL_ARB_occlusion_query
7039   GL_SAMPLES_PASSED_ARB = $8914;
7040   GL_QUERY_COUNTER_BITS_ARB = $8864;
7041   GL_CURRENT_QUERY_ARB = $8865;
7042   GL_QUERY_RESULT_ARB = $8866;
7043   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7044
7045   // GL_ARB_pipeline_statistics_query
7046   GL_VERTICES_SUBMITTED_ARB         = $82EE;
7047   GL_PRIMITIVES_SUBMITTED_ARB       = $82EF;
7048   GL_VERTEX_SHADER_INVOCATIONS_ARB  = $82F0;
7049   GL_TESS_CONTROL_SHADER_PATCHES_ARB = $82F1;
7050   GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = $82F2;
7051   GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = $82F3;
7052   GL_FRAGMENT_SHADER_INVOCATIONS_ARB = $82F4;
7053   GL_COMPUTE_SHADER_INVOCATIONS_ARB = $82F5;
7054   GL_CLIPPING_INPUT_PRIMITIVES_ARB  = $82F6;
7055   GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = $82F7;
7056
7057   // GL_ARB_point_sprite
7058   GL_POINT_SPRITE_ARB = $8861;
7059   GL_COORD_REPLACE_ARB = $8862;
7060
7061   // GL_ARB_shading_language_100
7062   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7063
7064   // GL_ARB_shader_objects
7065   GL_PROGRAM_OBJECT_ARB = $8B40;
7066
7067   GL_OBJECT_TYPE_ARB = $8B4E;
7068   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7069   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7070   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7071   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7072   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7073   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7074   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7075   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7076   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7077   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7078
7079   GL_SHADER_OBJECT_ARB = $8B48;
7080
7081   GL_FLOAT_VEC2_ARB = $8B50;
7082   GL_FLOAT_VEC3_ARB = $8B51;
7083   GL_FLOAT_VEC4_ARB = $8B52;
7084   GL_INT_VEC2_ARB = $8B53;
7085   GL_INT_VEC3_ARB = $8B54;
7086   GL_INT_VEC4_ARB = $8B55;
7087   GL_BOOL_ARB = $8B56;
7088   GL_BOOL_VEC2_ARB = $8B57;
7089   GL_BOOL_VEC3_ARB = $8B58;
7090   GL_BOOL_VEC4_ARB = $8B59;
7091   GL_FLOAT_MAT2_ARB = $8B5A;
7092   GL_FLOAT_MAT3_ARB = $8B5B;
7093   GL_FLOAT_MAT4_ARB = $8B5C;
7094   GL_SAMPLER_1D_ARB = $8B5D;
7095   GL_SAMPLER_2D_ARB = $8B5E;
7096   GL_SAMPLER_3D_ARB = $8B5F;
7097   GL_SAMPLER_CUBE_ARB = $8B60;
7098   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7099   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7100   GL_SAMPLER_2D_RECT_ARB = $8B63;
7101   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7102
7103   // WGL_3DFX_multisample
7104   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7105   WGL_SAMPLES_3DFX = $2061;
7106
7107   // WGL_ARB_buffer_region
7108   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7109   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7110   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7111   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7112
7113   // WGL_ARB_context_flush_control
7114   WGL_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7115   WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7116   WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7117
7118   // WGL_ARB_make_current_read
7119   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7120   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7121
7122   // WGL_ARB_multisample
7123   WGL_SAMPLE_BUFFERS_ARB = $2041;
7124   WGL_SAMPLES_ARB = $2042;
7125
7126   // WGL_ARB_pbuffer
7127   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7128   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7129   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7130   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7131   WGL_PBUFFER_LARGEST_ARB = $2033;
7132   WGL_PBUFFER_WIDTH_ARB = $2034;
7133   WGL_PBUFFER_HEIGHT_ARB = $2035;
7134   WGL_PBUFFER_LOST_ARB = $2036;
7135
7136   // WGL_ARB_pixel_format
7137   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7138   WGL_DRAW_TO_WINDOW_ARB = $2001;
7139   WGL_DRAW_TO_BITMAP_ARB = $2002;
7140   WGL_ACCELERATION_ARB = $2003;
7141   WGL_NEED_PALETTE_ARB = $2004;
7142   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7143   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7144   WGL_SWAP_METHOD_ARB = $2007;
7145   WGL_NUMBER_OVERLAYS_ARB = $2008;
7146   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7147   WGL_TRANSPARENT_ARB = $200A;
7148   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7149   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7150   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7151   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7152   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7153   WGL_SHARE_DEPTH_ARB = $200C;
7154   WGL_SHARE_STENCIL_ARB = $200D;
7155   WGL_SHARE_ACCUM_ARB = $200E;
7156   WGL_SUPPORT_GDI_ARB = $200F;
7157   WGL_SUPPORT_OPENGL_ARB = $2010;
7158   WGL_DOUBLE_BUFFER_ARB = $2011;
7159   WGL_STEREO_ARB = $2012;
7160   WGL_PIXEL_TYPE_ARB = $2013;
7161   WGL_COLOR_BITS_ARB = $2014;
7162   WGL_RED_BITS_ARB = $2015;
7163   WGL_RED_SHIFT_ARB = $2016;
7164   WGL_GREEN_BITS_ARB = $2017;
7165   WGL_GREEN_SHIFT_ARB = $2018;
7166   WGL_BLUE_BITS_ARB = $2019;
7167   WGL_BLUE_SHIFT_ARB = $201A;
7168   WGL_ALPHA_BITS_ARB = $201B;
7169   WGL_ALPHA_SHIFT_ARB = $201C;
7170   WGL_ACCUM_BITS_ARB = $201D;
7171   WGL_ACCUM_RED_BITS_ARB = $201E;
7172   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7173   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7174   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7175   WGL_DEPTH_BITS_ARB = $2022;
7176   WGL_STENCIL_BITS_ARB = $2023;
7177   WGL_AUX_BUFFERS_ARB = $2024;
7178   WGL_NO_ACCELERATION_ARB = $2025;
7179   WGL_GENERIC_ACCELERATION_ARB = $2026;
7180   WGL_FULL_ACCELERATION_ARB = $2027;
7181   WGL_SWAP_EXCHANGE_ARB = $2028;
7182   WGL_SWAP_COPY_ARB = $2029;
7183   WGL_SWAP_UNDEFINED_ARB = $202A;
7184   WGL_TYPE_RGBA_ARB = $202B;
7185   WGL_TYPE_COLORINDEX_ARB = $202C;
7186
7187   // WGL_ARB_pixel_format_float
7188   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7189   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7190   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7191   WGL_CLAMP_READ_COLOR_ARB = $891C;
7192   WGL_FIXED_ONLY_ARB = $891D;
7193
7194   // WGL_ARB_render_texture
7195   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7196   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7197   WGL_TEXTURE_FORMAT_ARB = $2072;
7198   WGL_TEXTURE_TARGET_ARB = $2073;
7199   WGL_MIPMAP_TEXTURE_ARB = $2074;
7200   WGL_TEXTURE_RGB_ARB = $2075;
7201   WGL_TEXTURE_RGBA_ARB = $2076;
7202   WGL_NO_TEXTURE_ARB = $2077;
7203   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7204   WGL_TEXTURE_1D_ARB = $2079;
7205   WGL_TEXTURE_2D_ARB = $207A;
7206   WGL_MIPMAP_LEVEL_ARB = $207B;
7207   WGL_CUBE_MAP_FACE_ARB = $207C;
7208   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7209   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7210   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7211   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7212   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7213   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7214   WGL_FRONT_LEFT_ARB = $2083;
7215   WGL_FRONT_RIGHT_ARB = $2084;
7216   WGL_BACK_LEFT_ARB = $2085;
7217   WGL_BACK_RIGHT_ARB = $2086;
7218   WGL_AUX0_ARB = $2087;
7219   WGL_AUX1_ARB = $2088;
7220   WGL_AUX2_ARB = $2089;
7221   WGL_AUX3_ARB = $208A;
7222   WGL_AUX4_ARB = $208B;
7223   WGL_AUX5_ARB = $208C;
7224   WGL_AUX6_ARB = $208D;
7225   WGL_AUX7_ARB = $208E;
7226   WGL_AUX8_ARB = $208F;
7227   WGL_AUX9_ARB = $2090;
7228
7229   // WGL_ARB_robustness_application_isolation
7230   WGL_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7231
7232   // WGL_ARB_create_context
7233   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7234   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7235   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7236   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7237   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7238   WGL_CONTEXT_FLAGS_ARB = $2094;
7239   ERROR_INVALID_VERSION_ARB = $2095;
7240
7241   // WGL_ARB_create_context_profile
7242   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7243   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7244   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7245   ERROR_INVALID_PROFILE_ARB = $2096;
7246
7247   // WGL_ARB_framebuffer_sRGB
7248   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7249
7250   // WGL_ARB_create_context_robustness
7251   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7252   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7253   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7254   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7255
7256   // WGL_ATI_pixel_format_float
7257   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7258   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7259   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7260
7261   // WGL_AMD_gpu_association
7262   WGL_GPU_VENDOR_AMD = $1F00;
7263   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7264   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7265   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7266   WGL_GPU_RAM_AMD = $21A3;
7267   WGL_GPU_CLOCK_AMD = $21A4;
7268   WGL_GPU_NUM_PIPES_AMD = $21A5;
7269   WGL_GPU_NUM_SIMD_AMD = $21A6;
7270   WGL_GPU_NUM_RB_AMD = $21A7;
7271   WGL_GPU_NUM_SPI_AMD = $21A8;
7272
7273   // WGL_EXT_depth_float
7274   WGL_DEPTH_FLOAT_EXT = $2040;
7275
7276   // WGL_EXT_make_current_read
7277   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7278
7279   // WGL_EXT_multisample
7280   WGL_SAMPLE_BUFFERS_EXT = $2041;
7281   WGL_SAMPLES_EXT = $2042;
7282
7283   // WGL_EXT_pbuffer
7284   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7285   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7286   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7287   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7288   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7289   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7290   WGL_PBUFFER_LARGEST_EXT = $2033;
7291   WGL_PBUFFER_WIDTH_EXT = $2034;
7292   WGL_PBUFFER_HEIGHT_EXT = $2035;
7293
7294   // WGL_EXT_pixel_format
7295   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7296   WGL_DRAW_TO_WINDOW_EXT = $2001;
7297   WGL_DRAW_TO_BITMAP_EXT = $2002;
7298   WGL_ACCELERATION_EXT = $2003;
7299   WGL_NEED_PALETTE_EXT = $2004;
7300   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7301   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7302   WGL_SWAP_METHOD_EXT = $2007;
7303   WGL_NUMBER_OVERLAYS_EXT = $2008;
7304   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7305   WGL_TRANSPARENT_EXT = $200A;
7306   WGL_TRANSPARENT_VALUE_EXT = $200B;
7307   WGL_SHARE_DEPTH_EXT = $200C;
7308   WGL_SHARE_STENCIL_EXT = $200D;
7309   WGL_SHARE_ACCUM_EXT = $200E;
7310   WGL_SUPPORT_GDI_EXT = $200F;
7311   WGL_SUPPORT_OPENGL_EXT = $2010;
7312   WGL_DOUBLE_BUFFER_EXT = $2011;
7313   WGL_STEREO_EXT = $2012;
7314   WGL_PIXEL_TYPE_EXT = $2013;
7315   WGL_COLOR_BITS_EXT = $2014;
7316   WGL_RED_BITS_EXT = $2015;
7317   WGL_RED_SHIFT_EXT = $2016;
7318   WGL_GREEN_BITS_EXT = $2017;
7319   WGL_GREEN_SHIFT_EXT = $2018;
7320   WGL_BLUE_BITS_EXT = $2019;
7321   WGL_BLUE_SHIFT_EXT = $201A;
7322   WGL_ALPHA_BITS_EXT = $201B;
7323   WGL_ALPHA_SHIFT_EXT = $201C;
7324   WGL_ACCUM_BITS_EXT = $201D;
7325   WGL_ACCUM_RED_BITS_EXT = $201E;
7326   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7327   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7328   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7329   WGL_DEPTH_BITS_EXT = $2022;
7330   WGL_STENCIL_BITS_EXT = $2023;
7331   WGL_AUX_BUFFERS_EXT = $2024;
7332   WGL_NO_ACCELERATION_EXT = $2025;
7333   WGL_GENERIC_ACCELERATION_EXT = $2026;
7334   WGL_FULL_ACCELERATION_EXT = $2027;
7335   WGL_SWAP_EXCHANGE_EXT = $2028;
7336   WGL_SWAP_COPY_EXT = $2029;
7337   WGL_SWAP_UNDEFINED_EXT = $202A;
7338   WGL_TYPE_RGBA_EXT = $202B;
7339   WGL_TYPE_COLORINDEX_EXT = $202C;
7340
7341   // WGL_I3D_digital_video_control
7342   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7343   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7344   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7345   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7346
7347   // WGL_I3D_gamma
7348   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7349   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7350
7351   // WGL_I3D_genlock
7352   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7353   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7354   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7355   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7356   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7357   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7358   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7359   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7360   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7361
7362   // WGL_I3D_image_buffer
7363   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7364   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7365
7366   // WGL_NV_float_buffer
7367   WGL_FLOAT_COMPONENTS_NV = $20B0;
7368   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7369   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7370   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7371   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7372   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7373   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7374   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7375   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7376
7377   // WGL_NV_render_depth_texture
7378   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7379   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7380   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7381   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7382   WGL_DEPTH_COMPONENT_NV = $20A7;
7383
7384   // WGL_NV_render_texture_rectangle
7385   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7386   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7387   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7388
7389   // WGL_NV_present_video
7390   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7391
7392   // WGL_NV_video_output
7393   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7394   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7395   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7396   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7397   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7398   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7399   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7400   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7401   WGL_VIDEO_OUT_FRAME = $20C8;
7402   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7403   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7404   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7405   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7406
7407   // WGL_NV_gpu_affinity
7408   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7409   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7410
7411   // WGL_NV_video_capture
7412   WGL_UNIQUE_ID_NV = $20CE;
7413   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7414
7415   // WGL_NV_multisample_coverage
7416   WGL_COVERAGE_SAMPLES_NV = $2042;
7417   WGL_COLOR_SAMPLES_NV = $20B9;
7418
7419   // WGL_EXT_create_context_es2_profile
7420   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7421
7422   // WGL_NV_DX_interop
7423   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7424   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7425   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7426
7427   // WIN_draw_range_elements
7428   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7429   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7430
7431   // GLX 1.1 and later:
7432   GLX_VENDOR = 1;
7433   GLX_VERSION = 2;
7434   GLX_EXTENSIONS = 3;
7435
7436   GLX_USE_GL = 1;
7437   GLX_BUFFER_SIZE = 2;
7438   GLX_LEVEL = 3;
7439   GLX_RGBA = 4;
7440   GLX_DOUBLEBUFFER = 5;
7441   GLX_STEREO = 6;
7442   GLX_AUX_BUFFERS = 7;
7443   GLX_RED_SIZE = 8;
7444   GLX_GREEN_SIZE = 9;
7445   GLX_BLUE_SIZE = 10;
7446   GLX_ALPHA_SIZE = 11;
7447   GLX_DEPTH_SIZE = 12;
7448   GLX_STENCIL_SIZE = 13;
7449   GLX_ACCUM_RED_SIZE = 14;
7450   GLX_ACCUM_GREEN_SIZE = 15;
7451   GLX_ACCUM_BLUE_SIZE = 16;
7452   GLX_ACCUM_ALPHA_SIZE = 17;
7453
7454   // GLX_VERSION_1_3
7455   GLX_WINDOW_BIT = $00000001;
7456   GLX_PIXMAP_BIT = $00000002;
7457   GLX_PBUFFER_BIT = $00000004;
7458   GLX_RGBA_BIT = $00000001;
7459   GLX_COLOR_INDEX_BIT = $00000002;
7460   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7461   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7462   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7463   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7464   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7465   GLX_AUX_BUFFERS_BIT = $00000010;
7466   GLX_DEPTH_BUFFER_BIT = $00000020;
7467   GLX_STENCIL_BUFFER_BIT = $00000040;
7468   GLX_ACCUM_BUFFER_BIT = $00000080;
7469   GLX_CONFIG_CAVEAT = $20;
7470   GLX_X_VISUAL_TYPE = $22;
7471   GLX_TRANSPARENT_TYPE = $23;
7472   GLX_TRANSPARENT_INDEX_VALUE = $24;
7473   GLX_TRANSPARENT_RED_VALUE = $25;
7474   GLX_TRANSPARENT_GREEN_VALUE = $26;
7475   GLX_TRANSPARENT_BLUE_VALUE = $27;
7476   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7477   GLX_DONT_CARE = $FFFFFFFF;
7478   GLX_NONE = $8000;
7479   GLX_SLOW_CONFIG = $8001;
7480   GLX_TRUE_COLOR = $8002;
7481   GLX_DIRECT_COLOR = $8003;
7482   GLX_PSEUDO_COLOR = $8004;
7483   GLX_STATIC_COLOR = $8005;
7484   GLX_GRAY_SCALE = $8006;
7485   GLX_STATIC_GRAY = $8007;
7486   GLX_TRANSPARENT_RGB = $8008;
7487   GLX_TRANSPARENT_INDEX = $8009;
7488   GLX_VISUAL_ID = $800B;
7489   GLX_SCREEN = $800C;
7490   GLX_NON_CONFORMANT_CONFIG = $800D;
7491   GLX_DRAWABLE_TYPE = $8010;
7492   GLX_RENDER_TYPE = $8011;
7493   GLX_X_RENDERABLE = $8012;
7494   GLX_FBCONFIG_ID = $8013;
7495   GLX_RGBA_TYPE = $8014;
7496   GLX_COLOR_INDEX_TYPE = $8015;
7497   GLX_MAX_PBUFFER_WIDTH = $8016;
7498   GLX_MAX_PBUFFER_HEIGHT = $8017;
7499   GLX_MAX_PBUFFER_PIXELS = $8018;
7500   GLX_PRESERVED_CONTENTS = $801B;
7501   GLX_LARGEST_PBUFFER = $801C;
7502   GLX_WIDTH = $801D;
7503   GLX_HEIGHT = $801E;
7504   GLX_EVENT_MASK = $801F;
7505   GLX_DAMAGED = $8020;
7506   GLX_SAVED = $8021;
7507   GLX_WINDOW = $8022;
7508   GLX_PBUFFER = $8023;
7509   GLX_PBUFFER_HEIGHT = $8040;
7510   GLX_PBUFFER_WIDTH = $8041;
7511
7512   // GLX_VERSION_1_4
7513   GLX_SAMPLE_BUFFERS = 100000;
7514   GLX_SAMPLES = 100001;
7515
7516   // GLX_ARB_multisample
7517   GLX_SAMPLE_BUFFERS_ARB = 100000;
7518   GLX_SAMPLES_ARB = 100001;
7519
7520   // GLX_ARB_robustness_application_isolation
7521   GLX_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7522
7523   // GLX_ARB_fbconfig_float
7524   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7525   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7526
7527   // GLX_ARB_context_flush_control
7528   GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7529   GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7530   GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7531
7532   // GLX_ARB_create_context
7533   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7534   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7535   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7536   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7537   GLX_CONTEXT_FLAGS_ARB = $2094;
7538
7539   // GLX_ARB_create_context_profile
7540   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7541   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7542   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7543
7544   // GLX_ARB_vertex_buffer_object
7545   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7546
7547   // GLX_ARB_framebuffer_sRGB
7548   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7549
7550   // GLX_ARB_create_context_robustness
7551   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7552   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7553   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7554   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7555
7556   // GLX_EXT_visual_info
7557   GLX_X_VISUAL_TYPE_EXT = $22;
7558   GLX_TRANSPARENT_TYPE_EXT = $23;
7559   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7560   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7561   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7562   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7563   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7564   GLX_NONE_EXT = $8000;
7565   GLX_TRUE_COLOR_EXT = $8002;
7566   GLX_DIRECT_COLOR_EXT = $8003;
7567   GLX_PSEUDO_COLOR_EXT = $8004;
7568   GLX_STATIC_COLOR_EXT = $8005;
7569   GLX_GRAY_SCALE_EXT = $8006;
7570   GLX_STATIC_GRAY_EXT = $8007;
7571   GLX_TRANSPARENT_RGB_EXT = $8008;
7572   GLX_TRANSPARENT_INDEX_EXT = $8009;
7573
7574   // GLX_EXT_visual_rating
7575   GLX_VISUAL_CAVEAT_EXT = $20;
7576   GLX_SLOW_VISUAL_EXT = $8001;
7577   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7578   (* reuse GLX_NONE_EXT *)
7579
7580   // GLX_EXT_import_context
7581   GLX_SHARE_CONTEXT_EXT = $800A;
7582   GLX_VISUAL_ID_EXT = $800B;
7583   GLX_SCREEN_EXT = $800C;
7584
7585   // GLX_EXT_fbconfig_packed_float
7586 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7587 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7588
7589   // GLX_EXT_framebuffer_sRGB
7590 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7591
7592   // GLX_EXT_texture_from_pixmap
7593   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7594   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7595   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7596   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7597   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7598   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7599   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7600   GLX_Y_INVERTED_EXT = $20D4;
7601   GLX_TEXTURE_FORMAT_EXT = $20D5;
7602   GLX_TEXTURE_TARGET_EXT = $20D6;
7603   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7604   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7605   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7606   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7607   GLX_TEXTURE_1D_EXT = $20DB;
7608   GLX_TEXTURE_2D_EXT = $20DC;
7609   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7610   GLX_FRONT_LEFT_EXT = $20DE;
7611   GLX_FRONT_RIGHT_EXT = $20DF;
7612   GLX_BACK_LEFT_EXT = $20E0;
7613   GLX_BACK_RIGHT_EXT = $20E1;
7614   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7615   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7616   GLX_AUX0_EXT = $20E2;
7617   GLX_AUX1_EXT = $20E3;
7618   GLX_AUX2_EXT = $20E4;
7619   GLX_AUX3_EXT = $20E5;
7620   GLX_AUX4_EXT = $20E6;
7621   GLX_AUX5_EXT = $20E7;
7622   GLX_AUX6_EXT = $20E8;
7623   GLX_AUX7_EXT = $20E9;
7624   GLX_AUX8_EXT = $20EA;
7625   GLX_AUX9_EXT = $20EB;
7626
7627   // GLX_EXT_swap_control
7628   GLX_SWAP_INTERVAL_EXT = $20F1;
7629   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7630
7631   // GLX_EXT_create_context_es2_profile
7632   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7633
7634   // GL_EXT_Late_Swaps
7635   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7636
7637   // GLU
7638   GLU_INVALID_ENUM = 100900;
7639   GLU_INVALID_VALUE = 100901;
7640   GLU_OUT_OF_MEMORY = 100902;
7641   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7642   GLU_VERSION = 100800;
7643   GLU_EXTENSIONS = 100801;
7644   GLU_TRUE: ByteBool = True;
7645   GLU_FALSE: ByteBool = False;
7646   GLU_SMOOTH = 100000;
7647   GLU_FLAT = 100001;
7648   GLU_NONE = 100002;
7649   GLU_POINT = 100010;
7650   GLU_LINE = 100011;
7651   GLU_FILL = 100012;
7652   GLU_SILHOUETTE = 100013;
7653   GLU_OUTSIDE = 100020;
7654   GLU_INSIDE = 100021;
7655   GLU_TESS_MAX_COORD = 1.0E150;
7656   GLU_TESS_WINDING_RULE = 100140;
7657   GLU_TESS_BOUNDARY_ONLY = 100141;
7658   GLU_TESS_TOLERANCE = 100142;
7659   GLU_TESS_WINDING_ODD = 100130;
7660   GLU_TESS_WINDING_NONZERO = 100131;
7661   GLU_TESS_WINDING_POSITIVE = 100132;
7662   GLU_TESS_WINDING_NEGATIVE = 100133;
7663   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7664   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7665   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7666   GLU_TESS_END = 100102; // TGLUTessEndProc
7667   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7668   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7669   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7670   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7671   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7672   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7673   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7674   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7675   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7676   GLU_TESS_ERROR1 = 100151;
7677   GLU_TESS_ERROR2 = 100152;
7678   GLU_TESS_ERROR3 = 100153;
7679   GLU_TESS_ERROR4 = 100154;
7680   GLU_TESS_ERROR5 = 100155;
7681   GLU_TESS_ERROR6 = 100156;
7682   GLU_TESS_ERROR7 = 100157;
7683   GLU_TESS_ERROR8 = 100158;
7684   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7685   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7686   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7687   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7688   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7689   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7690   GLU_AUTO_LOAD_MATRIX = 100200;
7691   GLU_CULLING = 100201;
7692   GLU_SAMPLING_TOLERANCE = 100203;
7693   GLU_DISPLAY_MODE = 100204;
7694   GLU_PARAMETRIC_TOLERANCE = 100202;
7695   GLU_SAMPLING_METHOD = 100205;
7696   GLU_U_STEP = 100206;
7697   GLU_V_STEP = 100207;
7698   GLU_PATH_LENGTH = 100215;
7699   GLU_PARAMETRIC_ERROR = 100216;
7700   GLU_DOMAIN_DISTANCE = 100217;
7701   GLU_MAP1_TRIM_2 = 100210;
7702   GLU_MAP1_TRIM_3 = 100211;
7703   GLU_OUTLINE_POLYGON = 100240;
7704   GLU_OUTLINE_PATCH = 100241;
7705   GLU_NURBS_ERROR1 = 100251;
7706   GLU_NURBS_ERROR2 = 100252;
7707   GLU_NURBS_ERROR3 = 100253;
7708   GLU_NURBS_ERROR4 = 100254;
7709   GLU_NURBS_ERROR5 = 100255;
7710   GLU_NURBS_ERROR6 = 100256;
7711   GLU_NURBS_ERROR7 = 100257;
7712   GLU_NURBS_ERROR8 = 100258;
7713   GLU_NURBS_ERROR9 = 100259;
7714   GLU_NURBS_ERROR10 = 100260;
7715   GLU_NURBS_ERROR11 = 100261;
7716   GLU_NURBS_ERROR12 = 100262;
7717   GLU_NURBS_ERROR13 = 100263;
7718   GLU_NURBS_ERROR14 = 100264;
7719   GLU_NURBS_ERROR15 = 100265;
7720   GLU_NURBS_ERROR16 = 100266;
7721   GLU_NURBS_ERROR17 = 100267;
7722   GLU_NURBS_ERROR18 = 100268;
7723   GLU_NURBS_ERROR19 = 100269;
7724   GLU_NURBS_ERROR20 = 100270;
7725   GLU_NURBS_ERROR21 = 100271;
7726   GLU_NURBS_ERROR22 = 100272;
7727   GLU_NURBS_ERROR23 = 100273;
7728   GLU_NURBS_ERROR24 = 100274;
7729   GLU_NURBS_ERROR25 = 100275;
7730   GLU_NURBS_ERROR26 = 100276;
7731   GLU_NURBS_ERROR27 = 100277;
7732   GLU_NURBS_ERROR28 = 100278;
7733   GLU_NURBS_ERROR29 = 100279;
7734   GLU_NURBS_ERROR30 = 100280;
7735   GLU_NURBS_ERROR31 = 100281;
7736   GLU_NURBS_ERROR32 = 100282;
7737   GLU_NURBS_ERROR33 = 100283;
7738   GLU_NURBS_ERROR34 = 100284;
7739   GLU_NURBS_ERROR35 = 100285;
7740   GLU_NURBS_ERROR36 = 100286;
7741   GLU_NURBS_ERROR37 = 100287;
7742   GLU_CW = 100120;
7743   GLU_CCW = 100121;
7744   GLU_INTERIOR = 100122;
7745   GLU_EXTERIOR = 100123;
7746   GLU_UNKNOWN = 100124;
7747   GLU_BEGIN = GLU_TESS_BEGIN;
7748   GLU_VERTEX = GLU_TESS_VERTEX;
7749   GLU_END = GLU_TESS_END;
7750   GLU_ERROR = GLU_TESS_ERROR;
7751   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7752
7753 type
7754   // GL_VERSION_1_0
7755   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7756   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7757   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7758   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7759   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7760   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7761   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7762   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7763   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7764   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7765   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7766   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}
7767   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}
7768   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7769   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7770   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7771   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7772   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7773   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7774   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7775   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7776   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7777   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7778   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7779   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7780   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7781   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7782   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7783   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7784   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7785   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7786   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7787   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7788   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7789   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7790   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7791   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7792   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7793   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7794   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7795   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7796   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7797   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7798   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7799   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7800   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7801   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7802   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7803
7804   // GL_VERSION_1_1
7805   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7806   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7807   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7808   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7809   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7810   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}
7811   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7812   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}
7813   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7814   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}
7815   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7816   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7817   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7818
7819 {$ifdef DGL_DEPRECATED}
7820   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7821   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7822   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7823   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7824   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
7825   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7826   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7827   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7828   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7829   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7830   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7831   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7832   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7833   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7834   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7835   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7836   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7837   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7838   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7839   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7840   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7841   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7842   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7843   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7844   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7845   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7846   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7847   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7848   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7849   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7850   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7851   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7852   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7853   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7854   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7855   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7856   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7857   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7858   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7859   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7860   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7861   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7862   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7863   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7864   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7865   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7866   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7867   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7868   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7869   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7870   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7871   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7872   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7873   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7874   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7875   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7876   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7877   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7878   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7879   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7880   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7881   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7882   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7883   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7884   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7885   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7886   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7887   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7888   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7889   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7890   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7891   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7892   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7893   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7894   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7895   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7896   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7897   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7898   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7899   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7900   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7901   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7902   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7903   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7904   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7905   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7906   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7907   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7908   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7909   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7910   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7911   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7912   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7913   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7914   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7915   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7916   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7917   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7918   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7919   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7920   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7921   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7922   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7923   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7924   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7925   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7926   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7927   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7928   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7929   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7930   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7931   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7932   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7933   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7934   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7935   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7936   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7937   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7938   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7939   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7940   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7941   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7942   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7943   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}
7944   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}
7945   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7946   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7947   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7948   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7949   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7950   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7951   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7952   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7953   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7954   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7955   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7956   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7957   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7958   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7959   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7960   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7961   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7962   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7963   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7964   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7965   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7966   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7967   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7968   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7969   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7970   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7971   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7972   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7973   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7974   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7975   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7976   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7977   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7978   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7979   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7980   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7981   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7982   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7983   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7984   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7985   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7986   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7987   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7988   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7999   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8000   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8001   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8037   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8052   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8057   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8058   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8064   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8065   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8066   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068
8069
8070   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8072   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8073   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8078   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8084   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8085   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8086   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8093   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8094   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8095   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097 {$endif}
8098
8099   // GL_VERSION_1_2
8100   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8101   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8102   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8103   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}
8104   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}
8105   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}
8106 {$ifdef DGL_DEPRECATED}
8107   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8108   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8109   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8125   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8126   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8128   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}
8129   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8131   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8132   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8135   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8136   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8137   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8138   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139 {$endif}
8140
8141   // GL_VERSION_1_3
8142   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8143   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8144   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}
8145   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}
8146   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8147   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}
8148   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}
8149   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8151 {$ifdef DGL_DEPRECATED}
8152   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8176   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8177   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8178   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8185   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8186   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8187   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189 {$endif}
8190
8191   // GL_VERSION_1_4
8192   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8193   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8194   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8195   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199 {$ifdef DGL_DEPRECATED}
8200   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8234   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8235   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8236   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238 {$endif}
8239
8240   // GL_VERSION_1_5
8241   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8242   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8243   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8256   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8257   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8258   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260
8261   // GL_VERSION_2_0
8262   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8264   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8265   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   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}
8278   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}
8279   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8281   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8302   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8331   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8332   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8336   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8337   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8338   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8339   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8350   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8351   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8352   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8353   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354
8355   // GL_VERSION_2_1
8356   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8357   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8358   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8359   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8360   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8361   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8362
8363   // GL_VERSION_3_0
8364   { OpenGL 3.0 also reuses entry points from these extensions: }
8365   { ARB_framebuffer_object }
8366   { ARB_map_buffer_range }
8367   { ARB_vertex_array_object }
8368   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8369   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8370   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8373   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8374   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8378   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8381   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8382   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8413   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8414   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8421   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8422   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8423   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8424   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8425   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426
8427   // GL_VERSION_2_1
8428   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8429   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8430   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}
8431
8432   // GL_VERSION_3_1
8433   { OpenGL 3.1 also reuses entry points from these extensions: }
8434   { ARB_copy_buffer }
8435   { ARB_uniform_buffer_object }
8436   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8437   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8438   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8439   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8440
8441   // GL_VERSION_3_2
8442   { OpenGL 3.2 also reuses entry points from these extensions: }
8443   { ARB_draw_elements_base_vertex }
8444   { ARB_provoking_vertex }
8445   { ARB_sync }
8446   { ARB_texture_multisample }
8447   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8448   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8449   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8450 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8451
8452   // GL_VERSION_3_3
8453   { OpenGL 3.3 also reuses entry points from these extensions: }
8454   { ARB_blend_func_extended }
8455   { ARB_sampler_objects }
8456   { ARB_explicit_attrib_location, but it has none }
8457   { ARB_occlusion_query2 (no entry points) }
8458   { ARB_shader_bit_encoding (no entry points) }
8459   { ARB_texture_rgb10_a2ui (no entry points) }
8460   { ARB_texture_swizzle (no entry points) }
8461   { ARB_timer_query }
8462   { ARB_vertex_type_2_10_10_10_rev }
8463   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8464
8465   // GL_VERSION_4_0
8466   { OpenGL 4.0 also reuses entry points from these extensions: }
8467   { ARB_texture_query_lod (no entry points) }
8468   { ARB_draw_indirect }
8469   { ARB_gpu_shader5 (no entry points) }
8470   { ARB_gpu_shader_fp64 }
8471   { ARB_shader_subroutine }
8472   { ARB_tessellation_shader }
8473   { ARB_texture_buffer_object_rgb32 (no entry points) }
8474   { ARB_texture_cube_map_array (no entry points) }
8475   { ARB_texture_gather (no entry points) }
8476   { ARB_transform_feedback2 }
8477   { ARB_transform_feedback3 }
8478   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8479   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8480   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8481   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8482   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8483
8484   // GL_VERSION_4_1
8485   { OpenGL 4.1 also reuses entry points from these extensions: }
8486   { ARB_ES2_compatibility }
8487   { ARB_get_program_binary }
8488   { ARB_separate_shader_objects }
8489   { ARB_shader_precision (no entry points) }
8490   { ARB_vertex_attrib_64bit }
8491   { ARB_viewport_array }
8492
8493   // GL_3DFX_tbuffer
8494   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8495
8496   // GL_APPLE_element_array
8497   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8498   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8499   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8500   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502
8503   // GL_APPLE_fence
8504   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8505   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8506   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8508   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8509   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8510   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8511   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512
8513   // GL_APPLE_vertex_array_object
8514   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8515   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8516   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8517   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518
8519   // GL_APPLE_vertex_array_range
8520   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8521   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8522   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8523
8524   // GL_APPLE_texture_range
8525   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8527
8528   // GL_APPLE_vertex_program_evaluators
8529   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8530   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8531   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8532   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8533   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534   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}
8535   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}
8536
8537   // GL_APPLE_object_purgeable
8538   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8539   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8540   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541
8542   // GL_ARB_matrix_palette
8543   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8544   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8545   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8546   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8547   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8548
8549   // GL_ARB_multisample
8550   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551
8552   // GL_ARB_multitexture
8553   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8555   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8574   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8575   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8578   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8581   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8583   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8584   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8587
8588   // GL_ARB_point_parameters
8589   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8590   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8591
8592   // GL_ARB_texture_compression
8593   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}
8594   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}
8595   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8596   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}
8597   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}
8598   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8599   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8600
8601   // GL_ARB_transpose_matrix
8602   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8603   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8604   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8605   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606
8607   // GL_ARB_vertex_blend
8608   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8609   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8610   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8614   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8615   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8616   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8618
8619   // GL_ARB_vertex_buffer_object
8620   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8621   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8622   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8627   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8628   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631
8632   // GL_ARB_vertex_program
8633   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8635   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8660   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8664   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8665   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8666   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8667   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8668   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8674   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8675   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8676   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8677   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8678   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8679   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8680   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8684   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8685   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8686   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8687   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8688   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8689   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8690   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8691   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8692   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8693   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8694   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8695
8696   // GL_ARB_window_pos
8697   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8698   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8699   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8700   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8701   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8702   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8703   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8704   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8705   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8706   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8707   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8708   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8709   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8710   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8711   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8712   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8713
8714   // GL_ARB_draw_buffers
8715   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8716
8717   // GL_ARB_color_buffer_float
8718   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8719
8720   // GL_ARB_vertex_shader
8721   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}
8722   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8723   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8724
8725   // GL_ARB_shader_objects
8726   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8727   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8728   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8729   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8730   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8736   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8737   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8742   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8745   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8746   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8747   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8752   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8753   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8756   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8757   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8758   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8760   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8761   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}
8762   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8763   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765
8766   // GL_ARB_Occlusion_Query
8767   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8768   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8769   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8770   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8771   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8772   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8773   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8775
8776   // GL_ARB_draw_instanced
8777   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8778   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8779
8780   // GL_ARB_framebuffer_object
8781   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8782   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8783   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8784   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8785   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8788   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8789   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8791   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8795   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8796   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8797   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8798   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}
8799   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8801
8802   // GL_ARB_geometry_shader4
8803   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8804   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8805   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8806   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8807
8808   // GL_ARB_instanced_arrays
8809   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8810
8811   // GL_ARB_map_buffer_range
8812   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8813   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8814
8815   // GL_ARB_texture_buffer_object
8816   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8817
8818   // GL_ARB_vertex_array_object
8819   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8820   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8821   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8822   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8823
8824   // GL_ARB_uniform_buffer_object
8825   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8826   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8827   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8828   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8829   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8830   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8831   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8832
8833   // GL_ARB_copy_buffer
8834   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8835
8836   // GL_ARB_draw_elements_base_vertex
8837   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8838   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8839   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8840   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8841
8842   // GL_ARB_provoking_vertex
8843   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844
8845   // GL_ARB_sync
8846   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8847   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8848   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8849   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8850   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8851   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8852   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8853
8854   // GL_ARB_texture_multisample
8855   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8856   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8857   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8858   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859
8860   // GL_ARB_draw_buffers_blend
8861   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8862   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8863   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8864   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8865
8866   // GL_ARB_sample_shading
8867   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8868
8869   // GL_ARB_shading_language_include
8870   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8872   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8873   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8876
8877   // GL_ARB_blend_func_extended
8878   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8880
8881   // GL_ARB_sampler_objects
8882   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8883   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8884   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8885   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8892   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8893   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896
8897   // GL_ARB_timer_query
8898   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8899   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8900   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901
8902   // GL_ARB_vertex_type_2_10_10_10_rev
8903   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8905   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8928   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8929   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8937   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8938   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8941
8942   // GL_ARB_draw_indirect
8943   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8945
8946   // GL_ARB_gpu_shader_fp64
8947   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8948   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8949   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8950   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8952   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8953   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8954   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8957   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8958   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8961   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8962   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8963   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965
8966   // GL_ARB_shader_subroutine
8967   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8968   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8969   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8970   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8971   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8972   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8973   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8975
8976   // GL_ARB_tessellation_shader
8977   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8978   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8979
8980   // GL_ARB_transform_feedback2
8981   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8982   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8983   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8984   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8985   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8988
8989   // GL_ARB_transform_feedback3
8990   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8991   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8992   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8993   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8994
8995   // GL_ARB_ES2_compatibility
8996   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8997   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8998   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8999   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001
9002   // GL_ARB_get_program_binary
9003   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9004   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9005   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006
9007   // GL_ARB_separate_shader_objects
9008   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9009   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9010   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9013   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9034   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9035   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9041   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9044   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9048   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9049   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9050   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9051   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9052   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9055   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9056   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9057   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9061   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9062   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9064   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9065   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9066   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9067   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9068
9069   // GL_ARB_vertex_attrib_64bit
9070   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9071   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9072   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9073   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9074   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9075   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9076   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9077   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9078   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9079   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9080
9081   // GL_ARB_viewport_array
9082   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9084   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9085   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9086   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9087   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9088   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9089   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9090   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9091   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9092
9093   // GL 4.2
9094
9095   // GL_ARB_base_instance
9096   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9097   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9098   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9099
9100   // GL_ARB_transform_feedback_instanced
9101   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9102   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9103
9104   // GL_ARB_internalformat_query
9105   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9106
9107   // GL_ARB_shader_atomic_counters
9108   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9109
9110   /// GL_ARB_shader_image_load_store
9111   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9112   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9113
9114   // GL_ARB_texture_storage
9115   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9116   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9117   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9118   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9119   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9120   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9121
9122
9123   // GL 4.3
9124
9125   // GL_KHR_debug
9126   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9127   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9128   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9129   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}
9130   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9131   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9132   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9133   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9134   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9135   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9136
9137   // GL_ARB_clear_buffer_object
9138   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9139   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9140   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9141   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9142
9143   // GL_ARB_compute_shader
9144   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9145   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9146
9147   // GL_ARB_copy_image
9148   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}
9149
9150   // GL_ARB_debug_group
9151   // ARB_debug_group reuses entry points from KHR_debug
9152
9153   // GL_ARB_debug_label
9154   // ARB_debug_label reuses entry points from KHR_debug
9155
9156   // GL_ARB_debug_output2
9157
9158   // GL_ARB_ES3_compatibility
9159
9160   // GL_ARB_explicit_uniform_location
9161
9162   // GL_ARB_fragment_layer_viewport
9163
9164   // GL_ARB_framebuffer_no_attachments
9165   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9166   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9167   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9168   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9169
9170   // GL_ARB_internalformat_query2
9171   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9172
9173   // GL_ARB_invalidate_subdata
9174   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}
9175   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9176   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9177   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9178   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9179   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9180
9181   // GL_ARB_multi_draw_indirect
9182   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9183   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9184
9185   // GL_ARB_program_interface_query
9186   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9187   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9188   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9189   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}
9190   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9191   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9192
9193   // GL_ARB_robust_buffer_access_behavior
9194
9195   // GL_ARB_shader_image_size
9196
9197   // GL_ARB_shader_storage_buffer_object
9198   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9199
9200   // GL_ARB_stencil_texturing
9201
9202   // GL_ARB_texture_buffer_range
9203   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9204   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9205
9206   // GL_ARB_texture_query_levels
9207
9208   // GL_ARB_texture_storage_multisample
9209   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9210   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9211   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9212   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}
9213
9214   // GL 4.4
9215
9216   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9217   TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9218   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}
9219   TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220   TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9221   TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9222   TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9223   TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   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}
9226
9227   // GL 4.5
9228   TglClipControl = procedure(origin : GLenum; depth : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9229   TglCreateTransformFeedbacks = procedure(n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9230   TglTransformFeedbackBufferBase = procedure (xfb : GLuint; index : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglTransformFeedbackBufferRange = procedure (xfb : GLuint; index : GLuint; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglGetTransformFeedbackiv = procedure (xfb : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233   TglGetTransformFeedbacki_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9234   TglGetTransformFeedbacki64_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9235   TglCreateBuffers = procedure (n : GLsizei; buffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglNamedBufferStorage = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglNamedBufferData = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; usage : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   TglCopyNamedBufferSubData = procedure (readBuffer : GLuint; writeBuffer : GLuint; readOffset : GLintptr; writeOffset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9240   TglClearNamedBufferData = procedure (buffer : GLuint; internalformat : GLenum; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241   TglClearNamedBufferSubData = procedure (buffer : GLuint; internalformat : GLenum; offset : GLintptr; size : GLsizei; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglMapNamedBuffer = function(buffer : GLuint; access : GLenum) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglMapNamedBufferRange = function(buffer : GLuint; offset : GLintptr; length : GLsizei; access : GLbitfield) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglUnmapNamedBuffer = function(buffer : GLuint) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglFlushMappedNamedBufferRange = procedure (buffer : GLuint; offset : GLintptr; length : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglGetNamedBufferParameteriv = procedure (buffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglGetNamedBufferParameteri64v = procedure (buffer : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglGetNamedBufferPointerv = procedure (buffer : GLuint; pname : GLenum; params : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglGetNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglCreateFramebuffers = procedure (n : GLsizei; framebuffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglNamedFramebufferRenderbuffer = procedure (framebuffer : GLuint; attachment : GLenum ; renderbuffertarget : GLEnum; renderbuffer : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglNamedFramebufferParameteri = procedure (framebuffer : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglNamedFramebufferTexture = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglNamedFramebufferTextureLayer = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint; layer : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglNamedFramebufferDrawBuffer = procedure (framebuffer : GLuint; buf : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglNamedFramebufferDrawBuffers = procedure (framebuffer : GLuint; n : GLsizei; bufs : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglNamedFramebufferReadBuffer = procedure (framebuffer : GLuint; src : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglInvalidateNamedFramebufferData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglInvalidateNamedFramebufferSubData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   TglClearNamedFramebufferiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9261   TglClearNamedFramebufferuiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglClearNamedFramebufferfv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglClearNamedFramebufferfi = procedure (framebuffer : GLuint; buffer : GLenum; const depth : GLfloat; stencil : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   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}
9265   TglCheckNamedFramebufferStatus = function(framebuffer : GLuint; target : GLenum) : GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   TglGetNamedFramebufferParameteriv = procedure (framebuffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   TglGetNamedFramebufferAttachmentParameteriv = procedure (framebuffer : GLuint; attachment : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9268   TglCreateRenderbuffers = procedure (n : GLsizei; renderbuffers : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9269   TglNamedRenderbufferStorage = procedure (renderbuffer : GLUInt; internalformat : GLenum ; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglNamedRenderbufferStorageMultisample = procedure (renderbuffer : GLUInt; samples : GLSizei; internalformat : GLenum ; width : GLSizei; height : GLSizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglGetNamedRenderbufferParameteriv = procedure (renderbuffer : GLUInt; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglCreateTextures = procedure (target : GLenum ; n : GLsizei; textures : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglTextureBuffer = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglTextureBufferRange = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglTextureStorage1D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglTextureStorage2D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglTextureStorage3D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglTextureStorage2DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglTextureStorage3DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   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}
9282   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}
9283   TglCompressedTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9284   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}
9285   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}
9286   TglCopyTextureSubImage1D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; x : GLint; y : GLint; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   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}
9288   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}
9289   TglTextureParameterf = procedure (texture : GLuint; pname : GLenum; param : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   TglTextureParameterfv = procedure (texture : GLuint; pname : GLenum; const param : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9291   TglTextureParameteri = procedure (texture : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; const params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; const params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglTextureParameteriv = procedure (texture : GLuint; pname : GLenum; const param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglGenerateTextureMipmap = procedure(texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglBindTextureUnit = procedure (_unit : GLuint; texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglGetTextureImage = procedure (texture : GLuint; level : GLint ; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglGetCompressedTextureImage = procedure (texture : GLuint; level : GLint; bufSize : GLSizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglGetTextureLevelParameterfv = procedure (texture : GLuint; level : GLint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglGetTextureLevelParameteriv = procedure (texture : GLuint; level : GLint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301   TglGetTextureParameterfv = procedure (texture : GLuint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9302   TglGetTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   TglGetTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; params : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglGetTextureParameteriv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglCreateVertexArrays = procedure (n : GLsizei; arrays : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglDisableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglEnableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglVertexArrayElementBuffer = procedure (vaobj : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglVertexArrayVertexBuffer = procedure (vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglVertexArrayVertexBuffers = procedure (vaobj : GLuint; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : PGLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglVertexArrayAttribBinding = procedure (vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   TglVertexArrayAttribFormat = procedure(vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; normalized : GLboolean; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9313   TglVertexArrayAttribIFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9314   TglVertexArrayAttribLFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglVertexArrayBindingDivisor = procedure (vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglGetVertexArrayiv = procedure (vaobj : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglGetVertexArrayIndexediv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglGetVertexArrayIndexed64iv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   TglCreateSamplers = procedure (n : GLsizei; samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglCreateProgramPipelines = procedure (n : GLsizei; pipelines : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321   TglCreateQueries = procedure (target : GLenum; n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   TglMemoryBarrierByRegion = procedure (barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9323   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}
9324   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}
9325   TglGetGraphicsResetStatus = function : GLEnum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9326   TglGetnCompressedTexImage = procedure (target : GLenum; lod : GLint; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9327   TglGetnTexImage = procedure (target : GLenum; level : GLint; format : GLenum; _type : GLenum; bufSize : GLSizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9328   TglGetnUniformdv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9329   TglGetnUniformfv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglGetnUniformiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331   TglGetnUniformuiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9332   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}
9333   TglGetnMapdv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9334   TglGetnMapfv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9335   TglGetnMapiv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9336   TglGetnPixelMapfv = procedure (map : GLenum; bufSize : GLsizei; values : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9337   TglGetnPixelMapuiv = procedure (map : GLenum; bufSize : GLsizei; values : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9338   TglGetnPixelMapusv = procedure (map : GLenum; bufSize : GLsizei; values : PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9339   TglGetnPolygonStipple = procedure (bufSize : GLsizei; pattern : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9340   TglGetnColorTable = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; table : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9341   TglGetnConvolutionFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; image : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9342   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}
9343   TglGetnHistogram = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9344   TglGetnMinmax = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9345   TglTextureBarrier = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9346
9347   // GL_ARB_sparse_buffer
9348   TglBufferPageCommitmentARB = procedure (target : GLenum; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9349   TglNamedBufferPageCommitmentEXT = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9350   TglNamedBufferPageCommitmentARB = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9351
9352   // GL_KHR_blend_equation_advanced
9353   TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9354
9355   // GL_ARB_texture_view
9356   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}
9357
9358   // GL_ARB_vertex_attrib_binding
9359   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9360   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9361   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9362   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9363   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9364   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9365   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9366   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9367   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9368   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9369   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9370   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9371
9372   // GL_ARB_robustness_isolation
9373
9374   //
9375
9376   // GL_ARB_cl_event
9377   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9378
9379   // GL_ARB_debug_output
9380   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9381   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9382   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9383   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}
9384
9385   // GL_ARB_robustness
9386   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9387   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9388   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9389   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9390   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9391   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9392   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9393   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9394   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9395   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9396   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}
9397   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9400   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}
9401   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9402   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9403   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9404   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9405   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9406
9407   // GL_ATI_draw_buffers
9408   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9409
9410   // GL_ATI_element_array
9411   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9412   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9413   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9414
9415   // GL_ATI_envmap_bumpmap
9416   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9417   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9418   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9419   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420
9421   // GL_ATI_fragment_shader
9422   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9423   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9424   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9425   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9426   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9427   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9428   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9429   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9430   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}
9431   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}
9432   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9433   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}
9434   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}
9435   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9436
9437   // GL_ATI_map_object_buffer
9438   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9439   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9440
9441   // GL_ATI_pn_triangles
9442   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9443   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9444
9445   // GL_ATI_separate_stencil
9446   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9447   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9448
9449   // GL_ATI_vertex_array_object
9450   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9451   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9452   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9453   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9454   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9455   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9458   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9459   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9460   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9461   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9462
9463   // GL_ATI_vertex_attrib_array_object
9464   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9465   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9466   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9467
9468   // GL_ATI_vertex_streams
9469   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9471   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9472   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9479   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9480   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9481   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9482   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9483   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9484   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9485   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9486   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9487   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9491   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9492   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9501   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9502   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9503   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9504   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9508   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9509   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9510   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9511   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9512   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9513   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9514
9515   // GL_AMD_performance_monitor
9516   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9517   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9518   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9519   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9522   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9523   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9524   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9525   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9527
9528   // GL_AMD_vertex_shader_tesselator
9529   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9530   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9531
9532   // GL_AMD_draw_buffers_blend
9533   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9534   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9535   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9536   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9537
9538   // GL_AMD_name_gen_delete
9539   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9540   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9541   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9542
9543   // GL_AMD_debug_output
9544   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9545   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9546   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9547   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9548
9549   // GL_EXT_blend_color
9550   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9551
9552   // GL_EXT_blend_func_separate
9553   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9554
9555   // GL_EXT_blend_minmax
9556   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9557
9558   // GL_EXT_color_subtable
9559   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9560   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9561
9562   // GL_EXT_compiled_vertex_array
9563   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9564   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9565
9566   // GL_EXT_convolution
9567   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9568   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9569   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9570   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9571   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9574   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9575   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9576   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9577   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9578   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   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}
9580
9581   // GL_EXT_coordinate_frame
9582   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9583   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9584   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9585   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9591   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9592   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9593   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9596   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9597   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9598   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9599   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9600   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9601   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9602   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604
9605   // GL_EXT_copy_texture
9606   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9607   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}
9608   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9609   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}
9610   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}
9611
9612   // GL_EXT_cull_vertex
9613   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9614   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9615
9616   // GL_EXT_draw_range_elements
9617   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618
9619   // GL_EXT_fog_coord
9620   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9621   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9622   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9623   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625
9626   // GL_EXT_framebuffer_object
9627   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9629   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9635   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9638   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9639   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9640   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9641   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9643   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9644
9645   // GL_EXT_histogram
9646   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9647   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9648   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9649   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9650   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9652   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9653   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9654   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9655   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9656
9657   // GL_EXT_index_func
9658   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9659
9660   // GL_EXT_index_material
9661   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9662
9663   // GL_EXT_light_texture
9664   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9665   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9666   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9667
9668   // GL_EXT_multi_draw_arrays
9669   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9670   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9671
9672   // GL_EXT_multisample
9673   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9674   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9675
9676   // GL_EXT_paletted_texture
9677   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9678   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9679   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9681
9682   // GL_EXT_pixel_transform
9683   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9684   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9685   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9686   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9687
9688   // GL_EXT_point_parameters
9689   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9690   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9691
9692   // GL_EXT_polygon_offset
9693   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9694
9695   // GL_EXT_secondary_color
9696   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9697   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9698   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9700   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9701   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9703   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9704   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9706   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9709   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9710   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9711   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9712   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9713
9714   // GL_EXT_stencil_two_side
9715   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9716
9717   // GL_EXT_subtexture
9718   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9719   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}
9720
9721   // GL_EXT_texture3D
9722   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}
9723   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}
9724
9725   // GL_EXT_texture_object
9726   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9727   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9728   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9729   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9731   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9732
9733   // GL_EXT_texture_perturb_normal
9734   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9735
9736   // GL_EXT_vertex_array
9737   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9739   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9740   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9742   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9743   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746
9747   // GL_EXT_vertex_shader
9748   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9749   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9750   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9751   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9752   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9764   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9767   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9770   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9771   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9774   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9775   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9776   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9777   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9778   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9779   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9780   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9782   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9783   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9785   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9786   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9787   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9788   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9789   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9790
9791   // GL_EXT_vertex_weighting
9792   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9793   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9794   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9795
9796   // GL_EXT_stencil_clear_tag
9797   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9798
9799   // GL_EXT_framebuffer_blit
9800   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}
9801
9802   // GL_EXT_framebuffer_multisample
9803   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9804
9805   // GL_EXT_timer_query
9806   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9807   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9808
9809   // GL_EXT_gpu_program_parameters
9810   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9811   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9812
9813   // GL_EXT_bindable_uniform
9814   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9815   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9816   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9817
9818   // GL_EXT_draw_buffers2
9819   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9820   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9821   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9822   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9823   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9824   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9825
9826   // GL_EXT_draw_instanced
9827   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9828   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9829
9830   // GL_EXT_geometry_shader4
9831   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9832   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9833
9834   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835
9836   // GL_EXT_gpu_shader4
9837   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9839   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9840   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9843   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9844   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9851   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9852   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9853   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9854   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9855   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9858   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9859   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9862   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9865   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9866   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9867   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9868   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9870   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9871
9872   // GL_EXT_texture_array
9873   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9874
9875   // GL_EXT_texture_buffer_object
9876   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9877
9878   // GL_EXT_texture_integer
9879   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9880   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9881   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9882   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9883   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885
9886   // GL_HP_image_transform
9887   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9889   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9890   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9892   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9893
9894   // GL_EXT_depth_bounds_test
9895   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9896
9897   // GL_EXT_blend_equation_separate
9898   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9899
9900   // GL_EXT_transform_feedback
9901   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9902   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9903   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9904   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9905   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9906   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9907   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9908
9909   // GL_EXT_direct_state_access
9910   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9911   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9912   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9913   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9916   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9917   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9919   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9920   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9921   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9923   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9924   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9925   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9926   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9929   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9930   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9931   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9932   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9933   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9934   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9935   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}
9936   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}
9937   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}
9938   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}
9939   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}
9940   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}
9941   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9942   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}
9943   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9944   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9945   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9946   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9947   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   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}
9949   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}
9950   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}
9951   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9952   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9953   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9954   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9955   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}
9956   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}
9957   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}
9958   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}
9959   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}
9960   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}
9961   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9962   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}
9963   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9965   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9966   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   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}
9969   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}
9970   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}
9971   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9972   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9973   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9974   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9977   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9978   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9979   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9980   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9981   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9982   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9983   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9984   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9985   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9986   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9990   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9991   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9992   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9993   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}
9994   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}
9995   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}
9996   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}
9997   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}
9998   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}
9999   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10000   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}
10001   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}
10002   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}
10003   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}
10004   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}
10005   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}
10006   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10007   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10008   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10015   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10016   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10043   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10044   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10045   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10046   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10047   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10056   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10057   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10063   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10064   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10065   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10066   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10067   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10068   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10069   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10070   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10076   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10077   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10078   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10098   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10100   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10101   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10102   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10103   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10104   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10105   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10106   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10107   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10108   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10109   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10110   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10111   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10112   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10113   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116
10117   // GL_EXT_separate_shader_objects
10118   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10119   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10120   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10121
10122   // GL_EXT_shader_image_load_store
10123   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10124   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10125
10126   // GL_EXT_vertex_attrib_64bit
10127   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10128   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10129   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10130   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10133   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10134   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10135   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10136   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10138
10139   // GL_IBM_multimode_draw_arrays
10140   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10142
10143   // GL_IBM_vertex_array_lists
10144   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10145   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10146   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10148   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10149   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10151   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10152
10153   // GL_INGR_blend_func_separate
10154   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155
10156   // GL_INTEL_parallel_arrays
10157   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10158   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10159   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10160   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10161
10162   // GL_MESA_resize_buffers
10163   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164
10165   // GL_MESA_window_pos
10166   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10168   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10186   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10187   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10188   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10189   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190
10191   // GL_NV_evaluators
10192   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}
10193   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10194   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10195   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10197   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10198   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10199   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201
10202   // GL_NV_fence
10203   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10205   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10206   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10207   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210
10211   // GL_NV_fragment_program
10212   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10214   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10215   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218
10219   // GL_NV_half_float
10220   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10222   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10223   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10224   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10229   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10233   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10246   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10247   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10250   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10251   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10256   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10260   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10261   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10262   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10263   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10264   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266
10267   // GL_NV_occlusion_query
10268   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10269   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10270   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10271   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10272   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10273   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10275
10276   // GL_NV_pixel_data_range
10277   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10279
10280   // GL_NV_point_sprite
10281   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10282   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10283
10284   // GL_NV_primitive_restart
10285   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10286   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10287
10288   // GL_NV_register_combiners
10289   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10290   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10291   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10292   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10294   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}
10295   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10297   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10298   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10299   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10300   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10302
10303   // GL_NV_register_combiners2
10304   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10306
10307   // GL_NV_vertex_array_range
10308   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10309   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10310
10311   // GL_NV_vertex_program
10312   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10314   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10318   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10326   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10363   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10368   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10369   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10372   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10373   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10374   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10375   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376
10377   // GL_NV_depth_buffer_float
10378   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10379   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10380   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10381
10382   // GL_NV_framebuffer_multisample_coverage
10383   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10384
10385   // GL_NV_geometry_program4
10386   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10387
10388   // GL_NV_gpu_program4
10389   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10390   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10391   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10392   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10395   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10396   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10397   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10401   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10402   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10405
10406   // GL_NV_parameter_buffer_object
10407   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10408   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10409   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10410
10411   // GL_NV_transform_feedback
10412   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10413   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10414   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10415   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10417   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10418   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10419   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10420   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10421   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10424
10425   // GL_NV_conditional_render
10426   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10427   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10428
10429   // GL_NV_present_video
10430   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}
10431   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}
10432   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10433   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10434   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10435   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437
10438   // GL_NV_explicit_multisample
10439   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10440   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10441   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442
10443   // GL_NV_transform_feedback2
10444   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10446   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10447   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10448   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10449   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451
10452   // GL_NV_video_capture
10453   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10454   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10455   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10456   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10461   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10462   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10464   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10465
10466   // GL_NV_copy_image
10467   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}
10468
10469   // GL_NV_shader_buffer_load
10470   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10471   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10472   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10480   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10481   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10483   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10484
10485   // GL_NV_vertex_buffer_unified_memory
10486   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10488   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10489   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10490   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10492   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10494   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10495   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10496   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10498
10499   // GL_NV_gpu_program5
10500   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10502
10503   // GL_NV_gpu_shader5
10504   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10506   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10507   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10512   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10513   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10514   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10517   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10518   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10519   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10532   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10533   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10534   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10535   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10536   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10537
10538   // GL_NV_vertex_attrib_integer_64bit
10539   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10540   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10541   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10545   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10546   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10550   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10551   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10554   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10555   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10556   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10558
10559   // GL_NV_vdpau_interop
10560   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10561   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10562   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10566   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10567   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10568   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10569   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10570
10571   // GL_NV_texture_barrier
10572   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10573
10574   // (4.3)
10575         // GL_NV_path_rendering
10576   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10577   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10578   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10581   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}
10582   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   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}
10585   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}
10586   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10587   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10588   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10589   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10592   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10595   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10596   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10597   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   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}
10600   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}
10601   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10603   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10604   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10605   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10606   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10607   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}
10608   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}
10609   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10610   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10611   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10612   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10613   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10614   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10615   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616   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}
10617   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10619   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10620   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10621   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10622   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10623   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10624   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}
10625
10626   // GL_AMD_pinned_memory
10627
10628   // GL_AMD_stencil_operation_extended
10629   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10630
10631   // GL_AMD_vertex_shader_viewport_index
10632
10633   // GL_AMD_vertex_shader_layer
10634
10635   // GL_NV_bindless_texture
10636   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10637   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10638   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10645   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10646   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10647   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649
10650   // GL_ARB_bindless_texture
10651
10652   TglGetTextureHandleARB = function (texture : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10653   TglGetTextureSamplerHandleARB = function (texture : GLuint; sampler : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10654   TglMakeTextureHandleResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10655   TglMakeTextureHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10656   TglGetImageHandleARB = function (texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657   TglMakeImageHandleResidentARB = procedure (handle : GLuint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10658   TglMakeImageHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10659   TglUniformHandleui64ARB = procedure (location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglUniformHandleui64vARB = procedure (location : GLint; count : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661   TglProgramUniformHandleui64ARB = procedure (program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10662   TglProgramUniformHandleui64vARB = procedure (program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663   TglIsTextureHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10664   TglIsImageHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10665   TglVertexAttribL1ui64ARB = procedure (index : GLuint; x : GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10666   TglVertexAttribL1ui64vARB = procedure (index : GLuint; const v : PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10667   TglGetVertexAttribLui64vARB = procedure (index : GLuint; pname : GLenum; params : PGLuint64EXT ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10668
10669         // GL_NV_shader_atomic_float
10670
10671         // GL_AMD_query_buffer_object
10672
10673   //
10674
10675   // GL_PGI_misc_hints
10676   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10677
10678   // GL_SGIS_detail_texture
10679   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10680   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10681
10682   // GL_SGIS_fog_function
10683   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10684   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10685
10686   // GL_SGIS_multisample
10687   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10688   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10689
10690   // GL_SGIS_pixel_texture
10691   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10692   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10693   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10694   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10695   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10697
10698   // GL_SGIS_point_parameters
10699   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10700   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10701
10702   // GL_SGIS_sharpen_texture
10703   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10704   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10705
10706   // GL_SGIS_texture4D
10707   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}
10708   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}
10709
10710   // GL_SGIS_texture_color_mask
10711   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10712
10713   // GL_SGIS_texture_filter4
10714   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10715   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10716
10717   // GL_SGIX_async
10718   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10720   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10721   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10723   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10724
10725   // GL_SGIX_flush_raster
10726   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727
10728   // GL_SGIX_fragment_lighting
10729   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10730   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10731   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10732   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10733   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10734   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10735   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10737   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10738   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10739   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10740   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10741   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10742   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10743   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10744   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10746   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10747
10748   // GL_SGIX_framezoom
10749   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10750
10751   // GL_SGIX_igloo_interface
10752   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10753
10754   // GL_SGIX_instruments
10755   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10756   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10757   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10758   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10759   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10760   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10761
10762   // GL_SGIX_list_priority
10763   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10764   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10765   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10766   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10767   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10768   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10769
10770   // GL_SGIX_pixel_texture
10771   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10772
10773   // GL_SGIX_polynomial_ffd
10774   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}
10775   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}
10776   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10777   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10778
10779   // GL_SGIX_reference_plane
10780   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10781
10782   // GL_SGIX_sprite
10783   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10784   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10785   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10786   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10787
10788   // GL_SGIX_tag_sample_buffer
10789   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10790
10791   // GL_SGI_color_table
10792   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10793   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10794   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10795   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10796   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10797   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10798   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10799
10800   // GL_SUNX_constant_data
10801   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10802
10803   // GL_SUN_global_alpha
10804   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10805   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10806   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10807   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10808   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10809   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10811   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10812
10813   // GL_SUN_mesh_array
10814   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10815
10816   // GL_SUN_triangle_list
10817   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10819   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10820   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10821   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824
10825   // GL_SUN_vertex
10826   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10827   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10828   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10829   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10831   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10833   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834   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}
10835   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10836   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10837   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10838   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}
10839   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10840   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}
10841   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10842   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}
10843   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   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}
10845   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10846   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}
10847   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10848   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}
10849   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10850   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10851   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10852   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}
10853   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10854   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10855   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10856   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10857   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10858   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}
10859   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10860   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10861   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10862   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}
10863   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10864   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}
10865   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10866
10867   // window support functions
10868 {$IFDEF DGL_WIN}
10869   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10870   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10871   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10872   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10873   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10874   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10875   TwglGetCurrentContext = function: HGLRC; stdcall;
10876   TwglGetCurrentDC = function: HDC; stdcall;
10877   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10878   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10879   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10880   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10881   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10882   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10883   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10884   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10885   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10886   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10887
10888   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10889   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10890   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10891
10892
10893   // WGL_ARB_buffer_region
10894   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10895   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10896   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10897   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10898
10899   // WGL_ARB_extensions_string
10900   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10901
10902   // WGL_ARB_make_current_read
10903   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10904   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10905
10906   // WGL_ARB_pbuffer
10907   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10908   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10909   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10910   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10911   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10912
10913   // WGL_ARB_pixel_format
10914   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10915   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10916   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
10917
10918   // WGL_ARB_color_buffer_float
10919   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
10920
10921   // WGL_ARB_render_texture
10922   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10923   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10924   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
10925
10926   // WGL_ARB_create_context
10927   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
10928
10929   // WGL_AMD_gpu_association
10930   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
10931   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
10932   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
10933   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
10934   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
10935   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
10936   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
10937   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
10938   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;
10939
10940   // WGL_EXT_display_color_table
10941   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10942   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
10943   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10944   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
10945
10946   // WGL_EXT_extensions_string
10947   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
10948
10949   // WGL_EXT_make_current_read
10950   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10951   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
10952
10953   // WGL_EXT_pbuffer
10954   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
10955   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
10956   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
10957   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
10958   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10959
10960   // WGL_EXT_pixel_format
10961   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10962   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10963   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
10964
10965   // WGL_EXT_swap_control
10966   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
10967   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
10968
10969   // WGL_I3D_digital_video_control
10970   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10971   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10972
10973   // WGL_I3D_gamma
10974   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10975   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10976   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
10977   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
10978
10979   // WGL_I3D_genlock
10980   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10981   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10982   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
10983   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
10984   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
10985   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
10986   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
10987   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
10988   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
10989   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
10990   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
10991   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
10992
10993   // WGL_I3D_image_buffer
10994   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
10995   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
10996   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
10997   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
10998
10999   // WGL_I3D_swap_frame_lock
11000   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
11001   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
11002   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
11003   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
11004
11005   // WGL_I3D_swap_frame_usage
11006   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
11007   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
11008   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
11009   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
11010
11011   // WGL_NV_vertex_array_range
11012   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
11013   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11014
11015   // WGL_NV_present_video
11016   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11017   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11018   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11019
11020   // WGL_NV_video_output
11021   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11022   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11023   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11024   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11025   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11026   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11027
11028   // WGL_NV_swap_group
11029   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11030   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11031   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11032   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11033   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11034   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11035
11036   // WGL_NV_gpu_affinity
11037   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11038   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11039   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11040   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11041   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11042
11043   // WGL_NV_video_capture
11044   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11045   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11046   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11047   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11048   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11049
11050   // WGL_NV_copy_image
11051   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;
11052
11053   // WGL_NV_DX_interop
11054   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11055   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11056   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11057   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11058   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11059   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11060   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11061   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11062
11063   // WGL_OML_sync_control
11064   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11065   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11066   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11067   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11068   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11069   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11070
11071   // WGL_3DL_stereo_control
11072   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11073
11074   // WIN_draw_range_elements
11075   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11076
11077   // WIN_swap_hint
11078   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11079 {$ENDIF}
11080
11081 {$IFDEF DGL_LINUX}
11082   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11083   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11084   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11085   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11086   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11087   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11088   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11089   TglXGetCurrentContext = function: GLXContext cdecl;
11090   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11091   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11092   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11093   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11094   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11095   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11096   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11097   TglXWaitGL = procedure; cdecl;
11098   TglXWaitX = procedure; cdecl;
11099
11100   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11101   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11102   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11103
11104   // GLX_VERSION_1_3
11105   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11106   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11107   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11108   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11109   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11110   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11111   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11112
11113   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11114   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11115   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11116   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11117   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11118   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11119   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11120   TglXGetCurreentDisplay = function: PDisplay;
11121
11122   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11123   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11124   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11125
11126   // GLX_VERSION_1_4
11127   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11128
11129   // GLX_ARB_get_proc_address
11130   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11131
11132   // GLX_ARB_create_context
11133   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11134
11135   // GLX_EXT_import_context
11136   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11137   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11138   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11139   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11140   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11141
11142   // GLX_EXT_texture_from_pixmap
11143   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11144   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11145
11146   TglXSwapIntervalEXT = procedure (dpy : PDisplay; drawable : GLXDrawable; interval : GLint); cdecl;
11147 {$ENDIF}
11148
11149   // GL utility functions and procedures
11150   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11151   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11152   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11153   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11154   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11155   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11156   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}
11157   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}
11158   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}
11159   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11160   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11161   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11162   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11163   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11164   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11165   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11166   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11167   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11168   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11169   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11170   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11171   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11172   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11173   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11174   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11175   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11176   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11177   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11178   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11179   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11180   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11181   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11182   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11183   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11184   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11185   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11186   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11187   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11188   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11189   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11190   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11191   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11192   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11193   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}
11194   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11195   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11196   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11197   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11198   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11199   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11200   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11201
11202 var
11203   // GL_VERSION_1_0
11204   glCullFace: TglCullFace;
11205   glFrontFace: TglFrontFace;
11206   glHint: TglHint;
11207   glLineWidth: TglLineWidth;
11208   glPointSize: TglPointSize;
11209   glPolygonMode: TglPolygonMode;
11210   glScissor: TglScissor;
11211   glTexParameterf: TglTexParameterf;
11212   glTexParameterfv: TglTexParameterfv;
11213   glTexParameteri: TglTexParameteri;
11214   glTexParameteriv: TglTexParameteriv;
11215   glTexImage1D: TglTexImage1D;
11216   glTexImage2D: TglTexImage2D;
11217   glDrawBuffer: TglDrawBuffer;
11218   glClear: TglClear;
11219   glClearColor: TglClearColor;
11220   glClearStencil: TglClearStencil;
11221   glClearDepth: TglClearDepth;
11222   glStencilMask: TglStencilMask;
11223   glColorMask: TglColorMask;
11224   glDepthMask: TglDepthMask;
11225   glDisable: TglDisable;
11226   glEnable: TglEnable;
11227   glFinish: TglFinish;
11228   glFlush: TglFlush;
11229   glBlendFunc: TglBlendFunc;
11230   glLogicOp: TglLogicOp;
11231   glStencilFunc: TglStencilFunc;
11232   glStencilOp: TglStencilOp;
11233   glDepthFunc: TglDepthFunc;
11234   glPixelStoref: TglPixelStoref;
11235   glPixelStorei: TglPixelStorei;
11236   glReadBuffer: TglReadBuffer;
11237   glReadPixels: TglReadPixels;
11238   glGetBooleanv: TglGetBooleanv;
11239   glGetDoublev: TglGetDoublev;
11240   glGetError: TglGetError;
11241   glGetFloatv: TglGetFloatv;
11242   glGetIntegerv: TglGetIntegerv;
11243   glGetString: TglGetString;
11244   glGetTexImage: TglGetTexImage;
11245   glGetTexParameteriv: TglGetTexParameteriv;
11246   glGetTexParameterfv: TglGetTexParameterfv;
11247   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11248   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11249   glIsEnabled: TglIsEnabled;
11250   glDepthRange: TglDepthRange;
11251   glViewport: TglViewport;
11252
11253   // GL_VERSION_1_1
11254   glDrawArrays: TglDrawArrays;
11255   glDrawElements: TglDrawElements;
11256   glGetPointerv: TglGetPointerv;
11257   glPolygonOffset: TglPolygonOffset;
11258   glCopyTexImage1D: TglCopyTexImage1D;
11259   glCopyTexImage2D: TglCopyTexImage2D;
11260   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11261   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11262   glTexSubImage1D: TglTexSubImage1D;
11263   glTexSubImage2D: TglTexSubImage2D;
11264   glBindTexture: TglBindTexture;
11265   glDeleteTextures: TglDeleteTextures;
11266   glGenTextures: TglGenTextures;
11267 {$ifdef DGL_DEPRECATED}
11268   glAccum: TglAccum;
11269   glAlphaFunc: TglAlphaFunc;
11270   glAreTexturesResident: TglAreTexturesResident;
11271   glArrayElement: TglArrayElement;
11272   glBegin: TglBegin;
11273   glBitmap: TglBitmap;
11274   glCallList: TglCallList;
11275   glCallLists: TglCallLists;
11276   glClearAccum: TglClearAccum;
11277   glClearIndex: TglClearIndex;
11278   glClipPlane: TglClipPlane;
11279   glColor3b: TglColor3b;
11280   glColor3bv: TglColor3bv;
11281   glColor3d: TglColor3d;
11282   glColor3dv: TglColor3dv;
11283   glColor3f: TglColor3f;
11284   glColor3fv: TglColor3fv;
11285   glColor3i: TglColor3i;
11286   glColor3iv: TglColor3iv;
11287   glColor3s: TglColor3s;
11288   glColor3sv: TglColor3sv;
11289   glColor3ub: TglColor3ub;
11290   glColor3ubv: TglColor3ubv;
11291   glColor3ui: TglColor3ui;
11292   glColor3uiv: TglColor3uiv;
11293   glColor3us: TglColor3us;
11294   glColor3usv: TglColor3usv;
11295   glColor4b: TglColor4b;
11296   glColor4bv: TglColor4bv;
11297   glColor4d: TglColor4d;
11298   glColor4dv: TglColor4dv;
11299   glColor4f: TglColor4f;
11300   glColor4fv: TglColor4fv;
11301   glColor4i: TglColor4i;
11302   glColor4iv: TglColor4iv;
11303   glColor4s: TglColor4s;
11304   glColor4sv: TglColor4sv;
11305   glColor4ub: TglColor4ub;
11306   glColor4ubv: TglColor4ubv;
11307   glColor4ui: TglColor4ui;
11308   glColor4uiv: TglColor4uiv;
11309   glColor4us: TglColor4us;
11310   glColor4usv: TglColor4usv;
11311   glColorMaterial: TglColorMaterial;
11312   glColorPointer: TglColorPointer;
11313   glCopyPixels: TglCopyPixels;
11314   glDeleteLists: TglDeleteLists;
11315   glDisableClientState: TglDisableClientState;
11316   glDrawPixels: TglDrawPixels;
11317   glEdgeFlag: TglEdgeFlag;
11318   glEdgeFlagPointer: TglEdgeFlagPointer;
11319   glEdgeFlagv: TglEdgeFlagv;
11320   glEnableClientState: TglEnableClientState;
11321   glEnd: TglEnd;
11322   glEndList: TglEndList;
11323   glEvalCoord1d: TglEvalCoord1d;
11324   glEvalCoord1dv: TglEvalCoord1dv;
11325   glEvalCoord1f: TglEvalCoord1f;
11326   glEvalCoord1fv: TglEvalCoord1fv;
11327   glEvalCoord2d: TglEvalCoord2d;
11328   glEvalCoord2dv: TglEvalCoord2dv;
11329   glEvalCoord2f: TglEvalCoord2f;
11330   glEvalCoord2fv: TglEvalCoord2fv;
11331   glEvalMesh1: TglEvalMesh1;
11332   glEvalMesh2: TglEvalMesh2;
11333   glEvalPoint1: TglEvalPoint1;
11334   glEvalPoint2: TglEvalPoint2;
11335   glFeedbackBuffer: TglFeedbackBuffer;
11336   glFogf: TglFogf;
11337   glFogfv: TglFogfv;
11338   glFogi: TglFogi;
11339   glFogiv: TglFogiv;
11340   glFrustum: TglFrustum;
11341   glGenLists: TglGenLists;
11342   glGetClipPlane: TglGetClipPlane;
11343   glGetLightfv: TglGetLightfv;
11344   glGetLightiv: TglGetLightiv;
11345   glGetMapdv: TglGetMapdv;
11346   glGetMapfv: TglGetMapfv;
11347   glGetMapiv: TglGetMapiv;
11348   glGetMaterialfv: TglGetMaterialfv;
11349   glGetMaterialiv: TglGetMaterialiv;
11350   glGetPixelMapfv: TglGetPixelMapfv;
11351   glGetPixelMapuiv: TglGetPixelMapuiv;
11352   glGetPixelMapusv: TglGetPixelMapusv;
11353   glGetPolygonStipple: TglGetPolygonStipple;
11354   glGetTexEnvfv: TglGetTexEnvfv;
11355   glGetTexEnviv: TglGetTexEnviv;
11356   glGetTexGendv: TglGetTexGendv;
11357   glGetTexGenfv: TglGetTexGenfv;
11358   glGetTexGeniv: TglGetTexGeniv;
11359   glIndexMask: TglIndexMask;
11360   glIndexPointer: TglIndexPointer;
11361   glIndexd: TglIndexd;
11362   glIndexdv: TglIndexdv;
11363   glIndexf: TglIndexf;
11364   glIndexfv: TglIndexfv;
11365   glIndexi: TglIndexi;
11366   glIndexiv: TglIndexiv;
11367   glIndexs: TglIndexs;
11368   glIndexsv: TglIndexsv;
11369   glIndexub: TglIndexub;
11370   glIndexubv: TglIndexubv;
11371   glInitNames: TglInitNames;
11372   glInterleavedArrays: TglInterleavedArrays;
11373   glIsList: TglIsList;
11374   glIsTexture: TglIsTexture;
11375   glLightModelf: TglLightModelf;
11376   glLightModelfv: TglLightModelfv;
11377   glLightModeli: TglLightModeli;
11378   glLightModeliv: TglLightModeliv;
11379   glLightf: TglLightf;
11380   glLightfv: TglLightfv;
11381   glLighti: TglLighti;
11382   glLightiv: TglLightiv;
11383   glLineStipple: TglLineStipple;
11384   glListBase: TglListBase;
11385   glLoadIdentity: TglLoadIdentity;
11386   glLoadMatrixd: TglLoadMatrixd;
11387   glLoadMatrixf: TglLoadMatrixf;
11388   glLoadName: TglLoadName;
11389   glMap1d: TglMap1d;
11390   glMap1f: TglMap1f;
11391   glMap2d: TglMap2d;
11392   glMap2f: TglMap2f;
11393   glMapGrid1d: TglMapGrid1d;
11394   glMapGrid1f: TglMapGrid1f;
11395   glMapGrid2d: TglMapGrid2d;
11396   glMapGrid2f: TglMapGrid2f;
11397   glMaterialf: TglMaterialf;
11398   glMaterialfv: TglMaterialfv;
11399   glMateriali: TglMateriali;
11400   glMaterialiv: TglMaterialiv;
11401   glMatrixMode: TglMatrixMode;
11402   glMultMatrixd: TglMultMatrixd;
11403   glMultMatrixf: TglMultMatrixf;
11404   glNewList: TglNewList;
11405   glNormal3b: TglNormal3b;
11406   glNormal3bv: TglNormal3bv;
11407   glNormal3d: TglNormal3d;
11408   glNormal3dv: TglNormal3dv;
11409   glNormal3f: TglNormal3f;
11410   glNormal3fv: TglNormal3fv;
11411   glNormal3i: TglNormal3i;
11412   glNormal3iv: TglNormal3iv;
11413   glNormal3s: TglNormal3s;
11414   glNormal3sv: TglNormal3sv;
11415   glNormalPointer: TglNormalPointer;
11416   glOrtho: TglOrtho;
11417   glPassThrough: TglPassThrough;
11418   glPixelMapfv: TglPixelMapfv;
11419   glPixelMapuiv: TglPixelMapuiv;
11420   glPixelMapusv: TglPixelMapusv;
11421   glPixelTransferf: TglPixelTransferf;
11422   glPixelTransferi: TglPixelTransferi;
11423   glPixelZoom: TglPixelZoom;
11424   glPolygonStipple: TglPolygonStipple;
11425   glPopAttrib: TglPopAttrib;
11426   glPopClientAttrib: TglPopClientAttrib;
11427   glPopMatrix: TglPopMatrix;
11428   glPopName: TglPopName;
11429   glPrioritizeTextures: TglPrioritizeTextures;
11430   glPushAttrib: TglPushAttrib;
11431   glPushClientAttrib: TglPushClientAttrib;
11432   glPushMatrix: TglPushMatrix;
11433   glPushName: TglPushName;
11434   glRasterPos2d: TglRasterPos2d;
11435   glRasterPos2dv: TglRasterPos2dv;
11436   glRasterPos2f: TglRasterPos2f;
11437   glRasterPos2fv: TglRasterPos2fv;
11438   glRasterPos2i: TglRasterPos2i;
11439   glRasterPos2iv: TglRasterPos2iv;
11440   glRasterPos2s: TglRasterPos2s;
11441   glRasterPos2sv: TglRasterPos2sv;
11442   glRasterPos3d: TglRasterPos3d;
11443   glRasterPos3dv: TglRasterPos3dv;
11444   glRasterPos3f: TglRasterPos3f;
11445   glRasterPos3fv: TglRasterPos3fv;
11446   glRasterPos3i: TglRasterPos3i;
11447   glRasterPos3iv: TglRasterPos3iv;
11448   glRasterPos3s: TglRasterPos3s;
11449   glRasterPos3sv: TglRasterPos3sv;
11450   glRasterPos4d: TglRasterPos4d;
11451   glRasterPos4dv: TglRasterPos4dv;
11452   glRasterPos4f: TglRasterPos4f;
11453   glRasterPos4fv: TglRasterPos4fv;
11454   glRasterPos4i: TglRasterPos4i;
11455   glRasterPos4iv: TglRasterPos4iv;
11456   glRasterPos4s: TglRasterPos4s;
11457   glRasterPos4sv: TglRasterPos4sv;
11458   glRectd: TglRectd;
11459   glRectdv: TglRectdv;
11460   glRectf: TglRectf;
11461   glRectfv: TglRectfv;
11462   glRecti: TglRecti;
11463   glRectiv: TglRectiv;
11464   glRects: TglRects;
11465   glRectsv: TglRectsv;
11466   glRenderMode: TglRenderMode;
11467   glRotated: TglRotated;
11468   glRotatef: TglRotatef;
11469   glScaled: TglScaled;
11470   glScalef: TglScalef;
11471   glSelectBuffer: TglSelectBuffer;
11472   glShadeModel: TglShadeModel;
11473   glTexCoord1d: TglTexCoord1d;
11474   glTexCoord1dv: TglTexCoord1dv;
11475   glTexCoord1f: TglTexCoord1f;
11476   glTexCoord1fv: TglTexCoord1fv;
11477   glTexCoord1i: TglTexCoord1i;
11478   glTexCoord1iv: TglTexCoord1iv;
11479   glTexCoord1s: TglTexCoord1s;
11480   glTexCoord1sv: TglTexCoord1sv;
11481   glTexCoord2d: TglTexCoord2d;
11482   glTexCoord2dv: TglTexCoord2dv;
11483   glTexCoord2f: TglTexCoord2f;
11484   glTexCoord2fv: TglTexCoord2fv;
11485   glTexCoord2i: TglTexCoord2i;
11486   glTexCoord2iv: TglTexCoord2iv;
11487   glTexCoord2s: TglTexCoord2s;
11488   glTexCoord2sv: TglTexCoord2sv;
11489   glTexCoord3d: TglTexCoord3d;
11490   glTexCoord3dv: TglTexCoord3dv;
11491   glTexCoord3f: TglTexCoord3f;
11492   glTexCoord3fv: TglTexCoord3fv;
11493   glTexCoord3i: TglTexCoord3i;
11494   glTexCoord3iv: TglTexCoord3iv;
11495   glTexCoord3s: TglTexCoord3s;
11496   glTexCoord3sv: TglTexCoord3sv;
11497   glTexCoord4d: TglTexCoord4d;
11498   glTexCoord4dv: TglTexCoord4dv;
11499   glTexCoord4f: TglTexCoord4f;
11500   glTexCoord4fv: TglTexCoord4fv;
11501   glTexCoord4i: TglTexCoord4i;
11502   glTexCoord4iv: TglTexCoord4iv;
11503   glTexCoord4s: TglTexCoord4s;
11504   glTexCoord4sv: TglTexCoord4sv;
11505   glTexCoordPointer: TglTexCoordPointer;
11506   glTexEnvf: TglTexEnvf;
11507   glTexEnvfv: TglTexEnvfv;
11508   glTexEnvi: TglTexEnvi;
11509   glTexEnviv: TglTexEnviv;
11510   glTexGend: TglTexGend;
11511   glTexGendv: TglTexGendv;
11512   glTexGenf: TglTexGenf;
11513   glTexGenfv: TglTexGenfv;
11514   glTexGeni: TglTexGeni;
11515   glTexGeniv: TglTexGeniv;
11516   glTranslated: TglTranslated;
11517   glTranslatef: TglTranslatef;
11518   glVertex2d: TglVertex2d;
11519   glVertex2dv: TglVertex2dv;
11520   glVertex2f: TglVertex2f;
11521   glVertex2fv: TglVertex2fv;
11522   glVertex2i: TglVertex2i;
11523   glVertex2iv: TglVertex2iv;
11524   glVertex2s: TglVertex2s;
11525   glVertex2sv: TglVertex2sv;
11526   glVertex3d: TglVertex3d;
11527   glVertex3dv: TglVertex3dv;
11528   glVertex3f: TglVertex3f;
11529   glVertex3fv: TglVertex3fv;
11530   glVertex3i: TglVertex3i;
11531   glVertex3iv: TglVertex3iv;
11532   glVertex3s: TglVertex3s;
11533   glVertex3sv: TglVertex3sv;
11534   glVertex4d: TglVertex4d;
11535   glVertex4dv: TglVertex4dv;
11536   glVertex4f: TglVertex4f;
11537   glVertex4fv: TglVertex4fv;
11538   glVertex4i: TglVertex4i;
11539   glVertex4iv: TglVertex4iv;
11540   glVertex4s: TglVertex4s;
11541   glVertex4sv: TglVertex4sv;
11542   glVertexPointer: TglVertexPointer;
11543 {$endif}
11544
11545   // GL_VERSION_1_2
11546   glBlendColor: TglBlendColor;
11547   glBlendEquation: TglBlendEquation;
11548   glDrawRangeElements: TglDrawRangeElements;
11549   glTexImage3D: TglTexImage3D;
11550   glTexSubImage3D: TglTexSubImage3D;
11551   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11552 {$ifdef DGL_DEPRECATED}
11553   glColorTable: TglColorTable;
11554   glColorTableParameterfv: TglColorTableParameterfv;
11555   glColorTableParameteriv: TglColorTableParameteriv;
11556   glCopyColorTable: TglCopyColorTable;
11557   glGetColorTable: TglGetColorTable;
11558   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11559   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11560   glColorSubTable: TglColorSubTable;
11561   glCopyColorSubTable: TglCopyColorSubTable;
11562   glConvolutionFilter1D: TglConvolutionFilter1D;
11563   glConvolutionFilter2D: TglConvolutionFilter2D;
11564   glConvolutionParameterf: TglConvolutionParameterf;
11565   glConvolutionParameterfv: TglConvolutionParameterfv;
11566   glConvolutionParameteri: TglConvolutionParameteri;
11567   glConvolutionParameteriv: TglConvolutionParameteriv;
11568   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11569   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11570   glGetConvolutionFilter: TglGetConvolutionFilter;
11571   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11572   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11573   glGetSeparableFilter: TglGetSeparableFilter;
11574   glSeparableFilter2D: TglSeparableFilter2D;
11575   glGetHistogram: TglGetHistogram;
11576   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11577   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11578   glGetMinmax: TglGetMinmax;
11579   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11580   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11581   glHistogram: TglHistogram;
11582   glMinmax: TglMinmax;
11583   glResetHistogram: TglResetHistogram;
11584   glResetMinmax: TglResetMinmax;
11585 {$endif}
11586
11587   // GL_VERSION_1_3
11588   glActiveTexture: TglActiveTexture;
11589   glSampleCoverage: TglSampleCoverage;
11590   glCompressedTexImage3D: TglCompressedTexImage3D;
11591   glCompressedTexImage2D: TglCompressedTexImage2D;
11592   glCompressedTexImage1D: TglCompressedTexImage1D;
11593   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11594   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11595   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11596   glGetCompressedTexImage: TglGetCompressedTexImage;
11597 {$ifdef DGL_DEPRECATED}
11598   glClientActiveTexture: TglClientActiveTexture;
11599   glMultiTexCoord1d: TglMultiTexCoord1d;
11600   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11601   glMultiTexCoord1f: TglMultiTexCoord1f;
11602   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11603   glMultiTexCoord1i: TglMultiTexCoord1i;
11604   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11605   glMultiTexCoord1s: TglMultiTexCoord1s;
11606   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11607   glMultiTexCoord2d: TglMultiTexCoord2d;
11608   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11609   glMultiTexCoord2f: TglMultiTexCoord2f;
11610   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11611   glMultiTexCoord2i: TglMultiTexCoord2i;
11612   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11613   glMultiTexCoord2s: TglMultiTexCoord2s;
11614   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11615   glMultiTexCoord3d: TglMultiTexCoord3d;
11616   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11617   glMultiTexCoord3f: TglMultiTexCoord3f;
11618   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11619   glMultiTexCoord3i: TglMultiTexCoord3i;
11620   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11621   glMultiTexCoord3s: TglMultiTexCoord3s;
11622   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11623   glMultiTexCoord4d: TglMultiTexCoord4d;
11624   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11625   glMultiTexCoord4f: TglMultiTexCoord4f;
11626   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11627   glMultiTexCoord4i: TglMultiTexCoord4i;
11628   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11629   glMultiTexCoord4s: TglMultiTexCoord4s;
11630   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11631   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11632   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11633   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11634   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11635 {$endif}
11636
11637   // GL_VERSION_1_4
11638   glBlendFuncSeparate: TglBlendFuncSeparate;
11639   glMultiDrawArrays: TglMultiDrawArrays;
11640   glMultiDrawElements: TglMultiDrawElements;
11641   glPointParameterf: TglPointParameterf;
11642   glPointParameterfv: TglPointParameterfv;
11643   glPointParameteri: TglPointParameteri;
11644   glPointParameteriv: TglPointParameteriv;
11645 {$ifdef DGL_DEPRECATED}
11646   glFogCoordf: TglFogCoordf;
11647   glFogCoordfv: TglFogCoordfv;
11648   glFogCoordd: TglFogCoordd;
11649   glFogCoorddv: TglFogCoorddv;
11650   glFogCoordPointer: TglFogCoordPointer;
11651   glSecondaryColor3b: TglSecondaryColor3b;
11652   glSecondaryColor3bv: TglSecondaryColor3bv;
11653   glSecondaryColor3d: TglSecondaryColor3d;
11654   glSecondaryColor3dv: TglSecondaryColor3dv;
11655   glSecondaryColor3f: TglSecondaryColor3f;
11656   glSecondaryColor3fv: TglSecondaryColor3fv;
11657   glSecondaryColor3i: TglSecondaryColor3i;
11658   glSecondaryColor3iv: TglSecondaryColor3iv;
11659   glSecondaryColor3s: TglSecondaryColor3s;
11660   glSecondaryColor3sv: TglSecondaryColor3sv;
11661   glSecondaryColor3ub: TglSecondaryColor3ub;
11662   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11663   glSecondaryColor3ui: TglSecondaryColor3ui;
11664   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11665   glSecondaryColor3us: TglSecondaryColor3us;
11666   glSecondaryColor3usv: TglSecondaryColor3usv;
11667   glSecondaryColorPointer: TglSecondaryColorPointer;
11668   glWindowPos2d: TglWindowPos2d;
11669   glWindowPos2dv: TglWindowPos2dv;
11670   glWindowPos2f: TglWindowPos2f;
11671   glWindowPos2fv: TglWindowPos2fv;
11672   glWindowPos2i: TglWindowPos2i;
11673   glWindowPos2iv: TglWindowPos2iv;
11674   glWindowPos2s: TglWindowPos2s;
11675   glWindowPos2sv: TglWindowPos2sv;
11676   glWindowPos3d: TglWindowPos3d;
11677   glWindowPos3dv: TglWindowPos3dv;
11678   glWindowPos3f: TglWindowPos3f;
11679   glWindowPos3fv: TglWindowPos3fv;
11680   glWindowPos3i: TglWindowPos3i;
11681   glWindowPos3iv: TglWindowPos3iv;
11682   glWindowPos3s: TglWindowPos3s;
11683   glWindowPos3sv: TglWindowPos3sv;
11684 {$endif}
11685
11686   // GL_VERSION_1_5
11687   glGenQueries: TglGenQueries;
11688   glDeleteQueries: TglDeleteQueries;
11689   glIsQuery: TglIsQuery;
11690   glBeginQuery: TglBeginQuery;
11691   glEndQuery: TglEndQuery;
11692   glGetQueryiv: TglGetQueryiv;
11693   glGetQueryObjectiv: TglGetQueryObjectiv;
11694   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11695   glBindBuffer: TglBindBuffer;
11696   glDeleteBuffers: TglDeleteBuffers;
11697   glGenBuffers: TglGenBuffers;
11698   glIsBuffer: TglIsBuffer;
11699   glBufferData: TglBufferData;
11700   glBufferSubData: TglBufferSubData;
11701   glGetBufferSubData: TglGetBufferSubData;
11702   glMapBuffer: TglMapBuffer;
11703   glUnmapBuffer: TglUnmapBuffer;
11704   glGetBufferParameteriv: TglGetBufferParameteriv;
11705   glGetBufferPointerv: TglGetBufferPointerv;
11706
11707   // GL_VERSION_2_0
11708   glBlendEquationSeparate: TglBlendEquationSeparate;
11709   glDrawBuffers: TglDrawBuffers;
11710   glStencilOpSeparate: TglStencilOpSeparate;
11711   glStencilFuncSeparate: TglStencilFuncSeparate;
11712   glStencilMaskSeparate: TglStencilMaskSeparate;
11713   glAttachShader: TglAttachShader;
11714   glBindAttribLocation: TglBindAttribLocation;
11715   glCompileShader: TglCompileShader;
11716   glCreateProgram: TglCreateProgram;
11717   glCreateShader: TglCreateShader;
11718   glDeleteProgram: TglDeleteProgram;
11719   glDeleteShader: TglDeleteShader;
11720   glDetachShader: TglDetachShader;
11721   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11722   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11723   glGetActiveAttrib: TglGetActiveAttrib;
11724   glGetActiveUniform: TglGetActiveUniform;
11725   glGetAttachedShaders: TglGetAttachedShaders;
11726   glGetAttribLocation: TglGetAttribLocation;
11727   glGetProgramiv: TglGetProgramiv;
11728   glGetProgramInfoLog: TglGetProgramInfoLog;
11729   glGetShaderiv: TglGetShaderiv;
11730   glGetShaderInfoLog: TglGetShaderInfoLog;
11731   glGetShaderSource: TglGetShaderSource;
11732   glGetUniformLocation: TglGetUniformLocation;
11733   glGetUniformfv: TglGetUniformfv;
11734   glGetUniformiv: TglGetUniformiv;
11735   glGetVertexAttribfv: TglGetVertexAttribfv;
11736   glGetVertexAttribiv: TglGetVertexAttribiv;
11737   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11738   glIsProgram: TglIsProgram;
11739   glIsShader: TglIsShader;
11740   glLinkProgram: TglLinkProgram;
11741   glShaderSource: TglShaderSource;
11742   glUseProgram: TglUseProgram;
11743   glUniform1f: TglUniform1f;
11744   glUniform2f: TglUniform2f;
11745   glUniform3f: TglUniform3f;
11746   glUniform4f: TglUniform4f;
11747   glUniform1i: TglUniform1i;
11748   glUniform2i: TglUniform2i;
11749   glUniform3i: TglUniform3i;
11750   glUniform4i: TglUniform4i;
11751   glUniform1fv: TglUniform1fv;
11752   glUniform2fv: TglUniform2fv;
11753   glUniform3fv: TglUniform3fv;
11754   glUniform4fv: TglUniform4fv;
11755   glUniform1iv: TglUniform1iv;
11756   glUniform2iv: TglUniform2iv;
11757   glUniform3iv: TglUniform3iv;
11758   glUniform4iv: TglUniform4iv;
11759   glUniformMatrix2fv: TglUniformMatrix2fv;
11760   glUniformMatrix3fv: TglUniformMatrix3fv;
11761   glUniformMatrix4fv: TglUniformMatrix4fv;
11762   glValidateProgram: TglValidateProgram;
11763   glVertexAttrib1d: TglVertexAttrib1d;
11764   glVertexAttrib1dv: TglVertexAttrib1dv;
11765   glVertexAttrib1f: TglVertexAttrib1f;
11766   glVertexAttrib1fv: TglVertexAttrib1fv;
11767   glVertexAttrib1s: TglVertexAttrib1s;
11768   glVertexAttrib1sv: TglVertexAttrib1sv;
11769   glVertexAttrib2d: TglVertexAttrib2d;
11770   glVertexAttrib2dv: TglVertexAttrib2dv;
11771   glVertexAttrib2f: TglVertexAttrib2f;
11772   glVertexAttrib2fv: TglVertexAttrib2fv;
11773   glVertexAttrib2s: TglVertexAttrib2s;
11774   glVertexAttrib2sv: TglVertexAttrib2sv;
11775   glVertexAttrib3d: TglVertexAttrib3d;
11776   glVertexAttrib3dv: TglVertexAttrib3dv;
11777   glVertexAttrib3f: TglVertexAttrib3f;
11778   glVertexAttrib3fv: TglVertexAttrib3fv;
11779   glVertexAttrib3s: TglVertexAttrib3s;
11780   glVertexAttrib3sv: TglVertexAttrib3sv;
11781   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11782   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11783   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11784   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11785   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11786   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11787   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11788   glVertexAttrib4bv: TglVertexAttrib4bv;
11789   glVertexAttrib4d: TglVertexAttrib4d;
11790   glVertexAttrib4dv: TglVertexAttrib4dv;
11791   glVertexAttrib4f: TglVertexAttrib4f;
11792   glVertexAttrib4fv: TglVertexAttrib4fv;
11793   glVertexAttrib4iv: TglVertexAttrib4iv;
11794   glVertexAttrib4s: TglVertexAttrib4s;
11795   glVertexAttrib4sv: TglVertexAttrib4sv;
11796   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11797   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11798   glVertexAttrib4usv: TglVertexAttrib4usv;
11799   glVertexAttribPointer: TglVertexAttribPointer;
11800
11801   // GL_VERSION_2_1
11802   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11803   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11804   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11805   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11806   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11807   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11808
11809   // GL_VERSION_3_0
11810   glColorMaski: TglColorMaski;
11811   glGetBooleani_v: TglGetBooleani_v;
11812   glGetIntegeri_v: TglGetIntegeri_v;
11813   glEnablei: TglEnablei;
11814   glDisablei: TglDisablei;
11815   glIsEnabledi: TglIsEnabledi;
11816   glBeginTransformFeedback: TglBeginTransformFeedback;
11817   glEndTransformFeedback: TglEndTransformFeedback;
11818   glBindBufferRange: TglBindBufferRange;
11819   glBindBufferBase: TglBindBufferBase;
11820   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11821   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11822   glClampColor: TglClampColor;
11823   glBeginConditionalRender: TglBeginConditionalRender;
11824   glEndConditionalRender: TglEndConditionalRender;
11825   glVertexAttribI1i: TglVertexAttribI1i;
11826   glVertexAttribI2i: TglVertexAttribI2i;
11827   glVertexAttribI3i: TglVertexAttribI3i;
11828   glVertexAttribI4i: TglVertexAttribI4i;
11829   glVertexAttribI1ui: TglVertexAttribI1ui;
11830   glVertexAttribI2ui: TglVertexAttribI2ui;
11831   glVertexAttribI3ui: TglVertexAttribI3ui;
11832   glVertexAttribI4ui: TglVertexAttribI4ui;
11833   glVertexAttribI1iv: TglVertexAttribI1iv;
11834   glVertexAttribI2iv: TglVertexAttribI2iv;
11835   glVertexAttribI3iv: TglVertexAttribI3iv;
11836   glVertexAttribI4iv: TglVertexAttribI4iv;
11837   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11838   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11839   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11840   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11841   glVertexAttribI4bv: TglVertexAttribI4bv;
11842   glVertexAttribI4sv: TglVertexAttribI4sv;
11843   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11844   glVertexAttribI4usv: TglVertexAttribI4usv;
11845   glVertexAttribIPointer: TglVertexAttribIPointer;
11846   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11847   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11848   glGetUniformuiv: TglGetUniformuiv;
11849   glBindFragDataLocation: TglBindFragDataLocation;
11850   glGetFragDataLocation: TglGetFragDataLocation;
11851   glUniform1ui: TglUniform1ui;
11852   glUniform2ui: TglUniform2ui;
11853   glUniform3ui: TglUniform3ui;
11854   glUniform4ui: TglUniform4ui;
11855   glUniform1uiv: TglUniform1uiv;
11856   glUniform2uiv: TglUniform2uiv;
11857   glUniform3uiv: TglUniform3uiv;
11858   glUniform4uiv: TglUniform4uiv;
11859   glTexParameterIiv: TglTexParameterIiv;
11860   glTexParameterIuiv: TglTexParameterIuiv;
11861   glGetTexParameterIiv: TglGetTexParameterIiv;
11862   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11863   glClearBufferiv: TglClearBufferiv;
11864   glClearBufferuiv: TglClearBufferuiv;
11865   glClearBufferfv: TglClearBufferfv;
11866   glClearBufferfi: TglClearBufferfi;
11867   glGetStringi: TglGetStringi;
11868
11869   // GL_VERSION_2_1
11870   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11871   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11872   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11873
11874   // GL_VERSION_3_1
11875   glDrawArraysInstanced: TglDrawArraysInstanced;
11876   glDrawElementsInstanced: TglDrawElementsInstanced;
11877   glTexBuffer: TglTexBuffer;
11878   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11879
11880   // GL_VERSION_3_2
11881   glGetInteger64i_v: TglGetInteger64i_v;
11882   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11883   glFramebufferTexture: TglFramebufferTexture;
11884
11885   // GL_VERSION_3_3
11886   glVertexAttribDivisor: TglVertexAttribDivisor;
11887
11888   // GL_VERSION_4_0
11889   { OpenGL 4.0 also reuses entry points from these extensions: }
11890   { ARB_texture_query_lod (no entry points) }
11891   { ARB_draw_indirect }
11892   { ARB_gpu_shader5 (no entry points) }
11893   { ARB_gpu_shader_fp64 }
11894   { ARB_shader_subroutine }
11895   { ARB_tessellation_shader }
11896   { ARB_texture_buffer_object_rgb32 (no entry points) }
11897   { ARB_texture_cube_map_array (no entry points) }
11898   { ARB_texture_gather (no entry points) }
11899   { ARB_transform_feedback2 }
11900   { ARB_transform_feedback3 }
11901   glMinSampleShading: TglMinSampleShading;
11902   glBlendEquationi: TglBlendEquationi;
11903   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11904   glBlendFunci: TglBlendFunci;
11905   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11906
11907   // GL_3DFX_tbuffer
11908   glTbufferMask3DFX: TglTbufferMask3DFX;
11909
11910   // GL_APPLE_element_array
11911   glElementPointerAPPLE: TglElementPointerAPPLE;
11912   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
11913   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
11914   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
11915   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
11916
11917   // GL_APPLE_fence
11918   glGenFencesAPPLE: TglGenFencesAPPLE;
11919   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
11920   glSetFenceAPPLE: TglSetFenceAPPLE;
11921   glIsFenceAPPLE: TglIsFenceAPPLE;
11922   glTestFenceAPPLE: TglTestFenceAPPLE;
11923   glFinishFenceAPPLE: TglFinishFenceAPPLE;
11924   glTestObjectAPPLE: TglTestObjectAPPLE;
11925   glFinishObjectAPPLE: TglFinishObjectAPPLE;
11926
11927   // GL_APPLE_vertex_array_object
11928   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
11929   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
11930   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
11931   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
11932
11933   // GL_APPLE_vertex_array_range
11934   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
11935   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
11936   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
11937
11938   // GL_APPLE_texture_range
11939   glTextureRangeAPPLE: TglTextureRangeAPPLE;
11940   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
11941
11942   // GL_APPLE_vertex_program_evaluators
11943   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
11944   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
11945   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
11946   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
11947   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
11948   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
11949   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
11950
11951   // GL_APPLE_object_purgeable
11952   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
11953   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
11954   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
11955
11956   // GL_ARB_matrix_palette
11957   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
11958   glMatrixIndexubvARB: TglMatrixIndexubvARB;
11959   glMatrixIndexusvARB: TglMatrixIndexusvARB;
11960   glMatrixIndexuivARB: TglMatrixIndexuivARB;
11961   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
11962
11963   // GL_ARB_multisample
11964   glSampleCoverageARB: TglSampleCoverageARB;
11965
11966   // GL_ARB_multitexture
11967   glActiveTextureARB: TglActiveTextureARB;
11968   glClientActiveTextureARB: TglClientActiveTextureARB;
11969   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
11970   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
11971   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
11972   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
11973   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
11974   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
11975   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
11976   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
11977   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
11978   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
11979   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
11980   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
11981   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
11982   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
11983   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
11984   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
11985   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
11986   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
11987   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
11988   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
11989   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
11990   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
11991   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
11992   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
11993   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
11994   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
11995   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
11996   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
11997   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
11998   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
11999   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
12000   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
12001
12002   // GL_ARB_point_parameters
12003   glPointParameterfARB: TglPointParameterfARB;
12004   glPointParameterfvARB: TglPointParameterfvARB;
12005
12006   // GL_ARB_texture_compression
12007   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
12008   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
12009   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
12010   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
12011   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
12012   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
12013   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
12014
12015   // GL_ARB_transpose_matrix
12016   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12017   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12018   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12019   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12020
12021   // GL_ARB_vertex_blend
12022   glWeightbvARB: TglWeightbvARB;
12023   glWeightsvARB: TglWeightsvARB;
12024   glWeightivARB: TglWeightivARB;
12025   glWeightfvARB: TglWeightfvARB;
12026   glWeightdvARB: TglWeightdvARB;
12027   glWeightubvARB: TglWeightubvARB;
12028   glWeightusvARB: TglWeightusvARB;
12029   glWeightuivARB: TglWeightuivARB;
12030   glWeightPointerARB: TglWeightPointerARB;
12031   glVertexBlendARB: TglVertexBlendARB;
12032
12033   // GL_ARB_vertex_buffer_object
12034   glBindBufferARB: TglBindBufferARB;
12035   glDeleteBuffersARB: TglDeleteBuffersARB;
12036   glGenBuffersARB: TglGenBuffersARB;
12037   glIsBufferARB: TglIsBufferARB;
12038   glBufferDataARB: TglBufferDataARB;
12039   glBufferSubDataARB: TglBufferSubData;
12040   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12041   glMapBufferARB: TglMapBufferARB;
12042   glUnmapBufferARB: TglUnmapBufferARB;
12043   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12044   glGetBufferPointervARB: TglGetBufferPointervARB;
12045
12046   // GL_ARB_vertex_program
12047   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12048   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12049   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12050   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12051   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12052   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12053   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12054   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12055   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12056   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12057   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12058   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12059   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12060   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12061   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12062   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12063   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12064   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12065   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12066   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12067   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12068   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12069   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12070   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12071   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12072   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12073   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12074   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12075   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12076   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12077   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12078   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12079   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12080   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12081   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12082   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12083   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12084   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12085   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12086   glProgramStringARB: TglProgramStringARB;
12087   glBindProgramARB: TglBindProgramARB;
12088   glDeleteProgramsARB: TglDeleteProgramsARB;
12089   glGenProgramsARB: TglGenProgramsARB;
12090
12091   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12092   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12093   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12094   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12095   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12096   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12097   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12098   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12099   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12100   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12101   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12102   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12103   glGetProgramivARB: TglGetProgramivARB;
12104   glGetProgramStringARB: TglGetProgramStringARB;
12105   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12106   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12107   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12108   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12109   glIsProgramARB: TglIsProgramARB;
12110
12111   // GL_ARB_window_pos
12112   glWindowPos2dARB: TglWindowPos2dARB;
12113   glWindowPos2dvARB: TglWindowPos2dvARB;
12114   glWindowPos2fARB: TglWindowPos2fARB;
12115   glWindowPos2fvARB: TglWindowPos2fvARB;
12116   glWindowPos2iARB: TglWindowPos2iARB;
12117   glWindowPos2ivARB: TglWindowPos2ivARB;
12118   glWindowPos2sARB: TglWindowPos2sARB;
12119   glWindowPos2svARB: TglWindowPos2svARB;
12120   glWindowPos3dARB: TglWindowPos3dARB;
12121   glWindowPos3dvARB: TglWindowPos3dvARB;
12122   glWindowPos3fARB: TglWindowPos3fARB;
12123   glWindowPos3fvARB: TglWindowPos3fvARB;
12124   glWindowPos3iARB: TglWindowPos3iARB;
12125   glWindowPos3ivARB: TglWindowPos3ivARB;
12126   glWindowPos3sARB: TglWindowPos3sARB;
12127   glWindowPos3svARB: TglWindowPos3svARB;
12128
12129   // GL_ARB_draw_buffers
12130   glDrawBuffersARB: TglDrawBuffersARB;
12131
12132   // GL_ARB_color_buffer_float
12133   glClampColorARB: TglClampColorARB;
12134
12135   // GL_ARB_vertex_shader
12136   glGetActiveAttribARB: TglGetActiveAttribARB;
12137   glGetAttribLocationARB: TglGetAttribLocationARB;
12138   glBindAttribLocationARB: TglBindAttribLocationARB;
12139
12140   // GL_ARB_shader_objects
12141   glDeleteObjectARB: TglDeleteObjectARB;
12142   glGetHandleARB: TglGetHandleARB;
12143   glDetachObjectARB: TglDetachObjectARB;
12144   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12145   glShaderSourceARB: TglShaderSourceARB;
12146   glCompileShaderARB: TglCompileShaderARB;
12147   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12148   glAttachObjectARB: TglAttachObjectARB;
12149   glLinkProgramARB: TglLinkProgramARB;
12150   glUseProgramObjectARB: TglUseProgramObjectARB;
12151   glValidateProgramARB: TglValidateProgramARB;
12152   glUniform1fARB: TglUniform1fARB;
12153   glUniform2fARB: TglUniform2fARB;
12154   glUniform3fARB: TglUniform3fARB;
12155   glUniform4fARB: TglUniform4fARB;
12156   glUniform1iARB: TglUniform1iARB;
12157   glUniform2iARB: TglUniform2iARB;
12158   glUniform3iARB: TglUniform3iARB;
12159   glUniform4iARB: TglUniform4iARB;
12160   glUniform1fvARB: TglUniform1fvARB;
12161   glUniform2fvARB: TglUniform2fvARB;
12162   glUniform3fvARB: TglUniform3fvARB;
12163   glUniform4fvARB: TglUniform4fvARB;
12164   glUniform1ivARB: TglUniform1ivARB;
12165   glUniform2ivARB: TglUniform2ivARB;
12166   glUniform3ivARB: TglUniform3ivARB;
12167   glUniform4ivARB: TglUniform4ivARB;
12168   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12169   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12170   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12171   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12172   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12173   glGetInfoLogARB: TglGetInfoLogARB;
12174   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12175   glGetUniformLocationARB: TglGetUniformLocationARB;
12176   glGetActiveUniformARB: TglGetActiveUniformARB;
12177   glGetUniformfvARB: TglGetUniformfvARB;
12178   glGetUniformivARB: TglGetUniformivARB;
12179   glGetShaderSourceARB: TglGetShaderSourceARB;
12180
12181   // GL_ARB_Occlusion_Query
12182   glGenQueriesARB: TglGenQueriesARB;
12183   glDeleteQueriesARB: TglDeleteQueriesARB;
12184   glIsQueryARB: TglIsQueryARB;
12185   glBeginQueryARB: TglBeginQueryARB;
12186   glEndQueryARB: TglEndQueryARB;
12187   glGetQueryivARB: TglGetQueryivARB;
12188   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12189   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12190
12191   // GL_ARB_draw_instanced
12192   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12193   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12194
12195   // GL_ARB_framebuffer_object
12196   glIsRenderbuffer: TglIsRenderbuffer;
12197   glBindRenderbuffer: TglBindRenderbuffer;
12198   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12199   glGenRenderbuffers: TglGenRenderbuffers;
12200   glRenderbufferStorage: TglRenderbufferStorage;
12201   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12202   glIsFramebuffer: TglIsFramebuffer;
12203   glBindFramebuffer: TglBindFramebuffer;
12204   glDeleteFramebuffers: TglDeleteFramebuffers;
12205   glGenFramebuffers: TglGenFramebuffers;
12206   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12207   glFramebufferTexture1D: TglFramebufferTexture1D;
12208   glFramebufferTexture2D: TglFramebufferTexture2D;
12209   glFramebufferTexture3D: TglFramebufferTexture3D;
12210   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12211   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12212   glGenerateMipmap: TglGenerateMipmap;
12213   glBlitFramebuffer: TglBlitFramebuffer;
12214   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12215   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12216
12217   // GL_ARB_geometry_shader4
12218   glProgramParameteriARB: TglProgramParameteriARB;
12219   glFramebufferTextureARB: TglFramebufferTextureARB;
12220   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12221   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12222
12223   // GL_ARB_instanced_arrays
12224   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12225
12226   // GL_ARB_map_buffer_range
12227   glMapBufferRange: TglMapBufferRange;
12228   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12229
12230   // GL_ARB_texture_buffer_object
12231   glTexBufferARB: TglTexBufferARB;
12232
12233   // GL_ARB_vertex_array_object
12234   glBindVertexArray: TglBindVertexArray;
12235   glDeleteVertexArrays: TglDeleteVertexArrays;
12236   glGenVertexArrays: TglGenVertexArrays;
12237   glIsVertexArray: TglIsVertexArray;
12238
12239   // GL_ARB_uniform_buffer_object
12240   glGetUniformIndices: TglGetUniformIndices;
12241   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12242   glGetActiveUniformName: TglGetActiveUniformName;
12243   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12244   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12245   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12246   glUniformBlockBinding: TglUniformBlockBinding;
12247
12248   // GL_ARB_copy_buffer
12249   glCopyBufferSubData: TglCopyBufferSubData;
12250
12251   // GL_ARB_draw_elements_base_vertex
12252   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12253   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12254   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12255   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12256
12257   // GL_ARB_provoking_vertex
12258   glProvokingVertex: TglProvokingVertex;
12259
12260   // GL_ARB_sync
12261   glFenceSync: TglFenceSync;
12262   glIsSync: TglIsSync;
12263   glDeleteSync: TglDeleteSync;
12264   glClientWaitSync: TglClientWaitSync;
12265   glWaitSync: TglWaitSync;
12266   glGetInteger64v: TglGetInteger64v;
12267   glGetSynciv: TglGetSynciv;
12268
12269   // GL_ARB_texture_multisample
12270   glTexImage2DMultisample: TglTexImage2DMultisample;
12271   glTexImage3DMultisample: TglTexImage3DMultisample;
12272   glGetMultisamplefv: TglGetMultisamplefv;
12273   glSampleMaski: TglSampleMaski;
12274
12275   // GL_ARB_draw_buffers_blend
12276   glBlendEquationiARB: TglBlendEquationiARB;
12277   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12278   glBlendFunciARB: TglBlendFunciARB;
12279   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12280
12281   // GL_ARB_sample_shading
12282   glMinSampleShadingARB: TglMinSampleShadingARB;
12283
12284   // GL_ARB_shading_language_include
12285   glNamedStringARB: TglNamedStringARB;
12286   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12287   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12288   glIsNamedStringARB: TglIsNamedStringARB;
12289   glGetNamedStringARB: TglGetNamedStringARB;
12290   glGetNamedStringivARB: TglGetNamedStringivARB;
12291
12292   // GL_ARB_blend_func_extended
12293   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12294   glGetFragDataIndex: TglGetFragDataIndex;
12295
12296   // GL_ARB_sampler_objects
12297   glGenSamplers: TglGenSamplers;
12298   glDeleteSamplers: TglDeleteSamplers;
12299   glIsSampler: TglIsSampler;
12300   glBindSampler: TglBindSampler;
12301   glSamplerParameteri: TglSamplerParameteri;
12302   glSamplerParameteriv: TglSamplerParameteriv;
12303   glSamplerParameterf: TglSamplerParameterf;
12304   glSamplerParameterfv: TglSamplerParameterfv;
12305   glSamplerParameterIiv: TglSamplerParameterIiv;
12306   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12307   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12308   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12309   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12310   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12311
12312   // GL_ARB_timer_query
12313   glQueryCounter: TglQueryCounter;
12314   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12315   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12316
12317   // GL_ARB_vertex_type_2_10_10_10_rev
12318   glVertexP2ui: TglVertexP2ui;
12319   glVertexP2uiv: TglVertexP2uiv;
12320   glVertexP3ui: TglVertexP3ui;
12321   glVertexP3uiv: TglVertexP3uiv;
12322   glVertexP4ui: TglVertexP4ui;
12323   glVertexP4uiv: TglVertexP4uiv;
12324   glTexCoordP1ui: TglTexCoordP1ui;
12325   glTexCoordP1uiv: TglTexCoordP1uiv;
12326   glTexCoordP2ui: TglTexCoordP2ui;
12327   glTexCoordP2uiv: TglTexCoordP2uiv;
12328   glTexCoordP3ui: TglTexCoordP3ui;
12329   glTexCoordP3uiv: TglTexCoordP3uiv;
12330   glTexCoordP4ui: TglTexCoordP4ui;
12331   glTexCoordP4uiv: TglTexCoordP4uiv;
12332   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12333   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12334   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12335   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12336   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12337   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12338   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12339   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12340   glNormalP3ui: TglNormalP3ui;
12341   glNormalP3uiv: TglNormalP3uiv;
12342   glColorP3ui: TglColorP3ui;
12343   glColorP3uiv: TglColorP3uiv;
12344   glColorP4ui: TglColorP4ui;
12345   glColorP4uiv: TglColorP4uiv;
12346   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12347   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12348   glVertexAttribP1ui: TglVertexAttribP1ui;
12349   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12350   glVertexAttribP2ui: TglVertexAttribP2ui;
12351   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12352   glVertexAttribP3ui: TglVertexAttribP3ui;
12353   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12354   glVertexAttribP4ui: TglVertexAttribP4ui;
12355   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12356
12357   // GL_ARB_draw_indirect
12358   glDrawArraysIndirect: TglDrawArraysIndirect;
12359   glDrawElementsIndirect: TglDrawElementsIndirect;
12360
12361   // GL_ARB_gpu_shader_fp64
12362   glUniform1d: TglUniform1d;
12363   glUniform2d: TglUniform2d;
12364   glUniform3d: TglUniform3d;
12365   glUniform4d: TglUniform4d;
12366   glUniform1dv: TglUniform1dv;
12367   glUniform2dv: TglUniform2dv;
12368   glUniform3dv: TglUniform3dv;
12369   glUniform4dv: TglUniform4dv;
12370   glUniformMatrix2dv: TglUniformMatrix2dv;
12371   glUniformMatrix3dv: TglUniformMatrix3dv;
12372   glUniformMatrix4dv: TglUniformMatrix4dv;
12373   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12374   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12375   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12376   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12377   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12378   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12379   glGetUniformdv: TglGetUniformdv;
12380
12381   // GL_ARB_shader_subroutine
12382   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12383   glGetSubroutineIndex: TglGetSubroutineIndex;
12384   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12385   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12386   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12387   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12388   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12389   glGetProgramStageiv: TglGetProgramStageiv;
12390
12391   // GL_ARB_tessellation_shader
12392   glPatchParameteri: TglPatchParameteri;
12393   glPatchParameterfv: TglPatchParameterfv;
12394
12395   // GL_ARB_transform_feedback2
12396   glBindTransformFeedback: TglBindTransformFeedback;
12397   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12398   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12399   glIsTransformFeedback: TglIsTransformFeedback;
12400   glPauseTransformFeedback: TglPauseTransformFeedback;
12401   glResumeTransformFeedback: TglResumeTransformFeedback;
12402   glDrawTransformFeedback: TglDrawTransformFeedback;
12403
12404   // GL_ARB_transform_feedback3
12405   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12406   glBeginQueryIndexed: TglBeginQueryIndexed;
12407   glEndQueryIndexed: TglEndQueryIndexed;
12408   glGetQueryIndexediv: TglGetQueryIndexediv;
12409
12410   // GL_ARB_ES2_compatibility
12411   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12412   glShaderBinary: TglShaderBinary;
12413   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12414   glDepthRangef: TglDepthRangef;
12415   glClearDepthf: TglClearDepthf;
12416
12417   // GL_ARB_get_program_binary
12418   glGetProgramBinary: TglGetProgramBinary;
12419   glProgramBinary: TglProgramBinary;
12420   glProgramParameteri: TglProgramParameteri;
12421
12422   // GL_ARB_separate_shader_objects
12423   glUseProgramStages: TglUseProgramStages;
12424   glActiveShaderProgram: TglActiveShaderProgram;
12425   glCreateShaderProgramv: TglCreateShaderProgramv;
12426   glBindProgramPipeline: TglBindProgramPipeline;
12427   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12428   glGenProgramPipelines: TglGenProgramPipelines;
12429   glIsProgramPipeline: TglIsProgramPipeline;
12430   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12431   glProgramUniform1i: TglProgramUniform1i;
12432   glProgramUniform1iv: TglProgramUniform1iv;
12433   glProgramUniform1f: TglProgramUniform1f;
12434   glProgramUniform1fv: TglProgramUniform1fv;
12435   glProgramUniform1d: TglProgramUniform1d;
12436   glProgramUniform1dv: TglProgramUniform1dv;
12437   glProgramUniform1ui: TglProgramUniform1ui;
12438   glProgramUniform1uiv: TglProgramUniform1uiv;
12439   glProgramUniform2i: TglProgramUniform2i;
12440   glProgramUniform2iv: TglProgramUniform2iv;
12441   glProgramUniform2f: TglProgramUniform2f;
12442   glProgramUniform2fv: TglProgramUniform2fv;
12443   glProgramUniform2d: TglProgramUniform2d;
12444   glProgramUniform2dv: TglProgramUniform2dv;
12445   glProgramUniform2ui: TglProgramUniform2ui;
12446   glProgramUniform2uiv: TglProgramUniform2uiv;
12447   glProgramUniform3i: TglProgramUniform3i;
12448   glProgramUniform3iv: TglProgramUniform3iv;
12449   glProgramUniform3f: TglProgramUniform3f;
12450   glProgramUniform3fv: TglProgramUniform3fv;
12451   glProgramUniform3d: TglProgramUniform3d;
12452   glProgramUniform3dv: TglProgramUniform3dv;
12453   glProgramUniform3ui: TglProgramUniform3ui;
12454   glProgramUniform3uiv: TglProgramUniform3uiv;
12455   glProgramUniform4i: TglProgramUniform4i;
12456   glProgramUniform4iv: TglProgramUniform4iv;
12457   glProgramUniform4f: TglProgramUniform4f;
12458   glProgramUniform4fv: TglProgramUniform4fv;
12459   glProgramUniform4d: TglProgramUniform4d;
12460   glProgramUniform4dv: TglProgramUniform4dv;
12461   glProgramUniform4ui: TglProgramUniform4ui;
12462   glProgramUniform4uiv: TglProgramUniform4uiv;
12463   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12464   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12465   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12466   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12467   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12468   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12469   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12470   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12471   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12472   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12473   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12474   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12475   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12476   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12477   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12478   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12479   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12480   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12481   glValidateProgramPipeline: TglValidateProgramPipeline;
12482   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12483
12484   // GL_ARB_vertex_attrib_64bit
12485   glVertexAttribL1d: TglVertexAttribL1d;
12486   glVertexAttribL2d: TglVertexAttribL2d;
12487   glVertexAttribL3d: TglVertexAttribL3d;
12488   glVertexAttribL4d: TglVertexAttribL4d;
12489   glVertexAttribL1dv: TglVertexAttribL1dv;
12490   glVertexAttribL2dv: TglVertexAttribL2dv;
12491   glVertexAttribL3dv: TglVertexAttribL3dv;
12492   glVertexAttribL4dv: TglVertexAttribL4dv;
12493   glVertexAttribLPointer: TglVertexAttribLPointer;
12494   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12495
12496   // GL_ARB_viewport_array
12497   glViewportArrayv: TglViewportArrayv;
12498   glViewportIndexedf: TglViewportIndexedf;
12499   glViewportIndexedfv: TglViewportIndexedfv;
12500   glScissorArrayv: TglScissorArrayv;
12501   glScissorIndexed: TglScissorIndexed;
12502   glScissorIndexedv: TglScissorIndexedv;
12503   glDepthRangeArrayv: TglDepthRangeArrayv;
12504   glDepthRangeIndexed: TglDepthRangeIndexed;
12505   glGetFloati_v: TglGetFloati_v;
12506   glGetDoublei_v: TglGetDoublei_v;
12507
12508   // GL 4.2
12509
12510   // GL_ARB_base_instance
12511   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12512   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12513   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12514
12515   // GL_ARB_transform_feedback_instanced
12516   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12517   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12518
12519   // GL_ARB_internalformat_query
12520   glGetInternalformativ : TglGetInternalformativ;
12521
12522   // GL_ARB_shader_atomic_counters
12523   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12524
12525   /// GL_ARB_shader_image_load_store
12526   glBindImageTexture : TglBindImageTexture;
12527   glMemoryBarrier : TglMemoryBarrier;
12528
12529   // GL_ARB_texture_storage
12530   glTexStorage1D : TglTexStorage1D;
12531   glTexStorage2D : TglTexStorage2D;
12532   glTexStorage3D : TglTexStorage3D;
12533   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12534   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12535   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12536
12537
12538   // GL 4.3
12539     // GL_KHR_debug
12540     glDebugMessageControl : TglDebugMessageControl;
12541     glDebugMessageInsert : TglDebugMessageInsert;
12542     glDebugMessageCallback : TglDebugMessageCallback;
12543     glGetDebugMessageLog : TglGetDebugMessageLog;
12544     glPushDebugGroup : TglPushDebugGroup;
12545     glPopDebugGroup : TglPopDebugGroup;
12546     glObjectLabel : TglObjectLabel;
12547     glGetObjectLabel : TglGetObjectLabel;
12548     glObjectPtrLabel : TglObjectPtrLabel;
12549     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12550     // GL_ARB_clear_buffer_object
12551     glClearBufferData : TglClearBufferData;
12552     glClearBufferSubData : TglClearBufferSubData;
12553     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12554     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12555     // GL_ARB_compute_shader
12556     glDispatchCompute : TglDispatchCompute;
12557     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12558     // GL_ARB_copy_image
12559     glCopyImageSubData : TglCopyImageSubData;
12560     // GL_ARB_framebuffer_no_attachments
12561     glFramebufferParameteri : TglFramebufferParameteri;
12562     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12563     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12564     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12565     // GL_ARB_internalformat_query2
12566     glGetInternalformati64v : TglGetInternalformati64v;
12567     // GL_ARB_invalidate_subdata
12568     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12569     glInvalidateTexImage : TglInvalidateTexImage;
12570     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12571     glInvalidateBufferData : TglInvalidateBufferData;
12572     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12573     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12574     // GL_ARB_multi_draw_indirect
12575     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12576     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12577     // GL_ARB_program_interface_query
12578     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12579     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12580     glGetProgramResourceName : TglGetProgramResourceName;
12581     glGetProgramResourceiv : TglGetProgramResourceiv;
12582     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12583     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12584     // GL_ARB_shader_storage_buffer_object
12585     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12586     // GL_ARB_texture_buffer_range
12587     glTexBufferRange : TglTexBufferRange;
12588     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12589     // GL_ARB_texture_storage_multisample
12590     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12591     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12592     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12593     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12594     // GL_ARB_texture_view
12595     glTextureView : TglTextureView;
12596     // GL_ARB_vertex_attrib_binding
12597     glBindVertexBuffer : TglBindVertexBuffer;
12598     glVertexAttribFormat : TglVertexAttribFormat;
12599     glVertexAttribIFormat : TglVertexAttribIFormat;
12600     glVertexAttribLFormat : TglVertexAttribLFormat;
12601     glVertexAttribBinding : TglVertexAttribBinding;
12602     glVertexBindingDivisor : TglVertexBindingDivisor;
12603     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12604     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12605     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12606     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12607     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12608     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12609   // END GL 4.3
12610
12611
12612   // GL 4.4
12613     glBufferStorage : TglBufferStorage;
12614     glClearTexImage : TglClearTexImage;
12615     glClearTexSubImage : TglClearTexSubImage;
12616     glBindBuffersBase : TglBindBuffersBase;
12617     glBindBuffersRange : TglBindBuffersRange;
12618     glBindTextures : TglBindTextures;
12619     glBindSamplers : TglBindSamplers;
12620     glBindImageTextures : TglBindImageTextures;
12621     glBindVertexBuffers : TglBindVertexBuffers;
12622     glTexPageCommitmentARB : TglTexPageCommitmentARB;
12623
12624   // GL 4.5
12625   glClipControl : TglClipControl;
12626   glCreateTransformFeedbacks : TglCreateTransformFeedbacks;
12627   glTransformFeedbackBufferBase : TglTransformFeedbackBufferBase;
12628   glTransformFeedbackBufferRange : TglTransformFeedbackBufferRange;
12629   glGetTransformFeedbackiv : TglGetTransformFeedbackiv;
12630   glGetTransformFeedbacki_v : TglGetTransformFeedbacki_v;
12631   glGetTransformFeedbacki64_v : TglGetTransformFeedbacki64_v;
12632   glCreateBuffers : TglCreateBuffers;
12633   glNamedBufferStorage : TglNamedBufferStorage;
12634   glNamedBufferData : TglNamedBufferData;
12635   glNamedBufferSubData : TglNamedBufferSubData;
12636   glCopyNamedBufferSubData : TglCopyNamedBufferSubData;
12637   glClearNamedBufferData : TglClearNamedBufferData;
12638   glClearNamedBufferSubData : TglClearNamedBufferSubData;
12639   glMapNamedBuffer : TglMapNamedBuffer;
12640   glMapNamedBufferRange : TglMapNamedBufferRange;
12641   glUnmapNamedBuffer : TglUnmapNamedBuffer;
12642   glFlushMappedNamedBufferRange : TglFlushMappedNamedBufferRange;
12643   glGetNamedBufferParameteriv : TglGetNamedBufferParameteriv;
12644   glGetNamedBufferParameteri64v : TglGetNamedBufferParameteri64v;
12645   glGetNamedBufferPointerv : TglGetNamedBufferPointerv;
12646   glGetNamedBufferSubData : TglGetNamedBufferSubData;
12647   glCreateFramebuffers : TglCreateFramebuffers;
12648   glNamedFramebufferRenderbuffer : TglNamedFramebufferRenderbuffer;
12649   glNamedFramebufferParameteri : TglNamedFramebufferParameteri;
12650   glNamedFramebufferTexture : TglNamedFramebufferTexture;
12651   glNamedFramebufferTextureLayer : TglNamedFramebufferTextureLayer;
12652   glNamedFramebufferDrawBuffer : TglNamedFramebufferDrawBuffer;
12653   glNamedFramebufferDrawBuffers : TglNamedFramebufferDrawBuffers;
12654   glNamedFramebufferReadBuffer : TglNamedFramebufferReadBuffer;
12655   glInvalidateNamedFramebufferData : TglInvalidateNamedFramebufferData;
12656   glInvalidateNamedFramebufferSubData : TglInvalidateNamedFramebufferSubData;
12657   glClearNamedFramebufferiv : TglClearNamedFramebufferiv;
12658   glClearNamedFramebufferuiv : TglClearNamedFramebufferuiv;
12659   glClearNamedFramebufferfv : TglClearNamedFramebufferfv;
12660   glClearNamedFramebufferfi : TglClearNamedFramebufferfi;
12661   glBlitNamedFramebuffer : TglBlitNamedFramebuffer;
12662   glCheckNamedFramebufferStatus : TglCheckNamedFramebufferStatus;
12663   glGetNamedFramebufferParameteriv : TglGetNamedFramebufferParameteriv;
12664   glGetNamedFramebufferAttachmentParameteriv : TglGetNamedFramebufferAttachmentParameteriv;
12665   glCreateRenderbuffers : TglCreateRenderbuffers;
12666   glNamedRenderbufferStorage : TglNamedRenderbufferStorage;
12667   glNamedRenderbufferStorageMultisample : TglNamedRenderbufferStorageMultisample;
12668   glGetNamedRenderbufferParameteriv : TglGetNamedRenderbufferParameteriv;
12669   glCreateTextures : TglCreateTextures;
12670   glTextureBuffer : TglTextureBuffer;
12671   glTextureBufferRange : TglTextureBufferRange;
12672   glTextureStorage1D : TglTextureStorage1D;
12673   glTextureStorage2D : TglTextureStorage2D;
12674   glTextureStorage3D : TglTextureStorage3D;
12675   glTextureStorage2DMultisample : TglTextureStorage2DMultisample;
12676   glTextureStorage3DMultisample : TglTextureStorage3DMultisample;
12677   glTextureSubImage1D : TglTextureSubImage1D;
12678   glTextureSubImage2D : TglTextureSubImage2D;
12679   glTextureSubImage3D : TglTextureSubImage3D;
12680   glCompressedTextureSubImage1D : TglCompressedTextureSubImage1D;
12681   glCompressedTextureSubImage2D : TglCompressedTextureSubImage2D;
12682   glCompressedTextureSubImage3D : TglCompressedTextureSubImage3D;
12683   glCopyTextureSubImage1D : TglCopyTextureSubImage1D;
12684   glCopyTextureSubImage2D : TglCopyTextureSubImage2D;
12685   glCopyTextureSubImage3D : TglCopyTextureSubImage3D;
12686   glTextureParameterf : TglTextureParameterf;
12687   glTextureParameterfv : TglTextureParameterfv;
12688   glTextureParameteri : TglTextureParameteri;
12689   glTextureParameterIiv : TglTextureParameterIiv;
12690   glTextureParameterIuiv : TglTextureParameterIuiv;
12691   glTextureParameteriv : TglTextureParameteriv;
12692   glGenerateTextureMipmap : TglGenerateTextureMipmap;
12693   glBindTextureUnit : TglBindTextureUnit;
12694   glGetTextureImage : TglGetTextureImage;
12695   glGetCompressedTextureImage : TglGetCompressedTextureImage;
12696   glGetTextureLevelParameterfv : TglGetTextureLevelParameterfv;
12697   glGetTextureLevelParameteriv : TglGetTextureLevelParameteriv;
12698   glGetTextureParameterfv : TglGetTextureParameterfv;
12699   glGetTextureParameterIiv : TglGetTextureParameterIiv;
12700   glGetTextureParameterIuiv : TglGetTextureParameterIuiv;
12701   glGetTextureParameteriv : TglGetTextureParameteriv;
12702   glCreateVertexArrays : TglCreateVertexArrays;
12703   glDisableVertexArrayAttrib : TglDisableVertexArrayAttrib;
12704   glEnableVertexArrayAttrib : TglEnableVertexArrayAttrib;
12705   glVertexArrayElementBuffer : TglVertexArrayElementBuffer;
12706   glVertexArrayVertexBuffer : TglVertexArrayVertexBuffer;
12707   glVertexArrayVertexBuffers : TglVertexArrayVertexBuffers;
12708   glVertexArrayAttribBinding : TglVertexArrayAttribBinding;
12709   glVertexArrayAttribFormat : TglVertexArrayAttribFormat;
12710   glVertexArrayAttribIFormat : TglVertexArrayAttribIFormat;
12711   glVertexArrayAttribLFormat : TglVertexArrayAttribLFormat;
12712   glVertexArrayBindingDivisor : TglVertexArrayBindingDivisor;
12713   glGetVertexArrayiv : TglGetVertexArrayiv;
12714   glGetVertexArrayIndexediv : TglGetVertexArrayIndexediv;
12715   glGetVertexArrayIndexed64iv : TglGetVertexArrayIndexed64iv;
12716   glCreateSamplers : TglCreateSamplers;
12717   glCreateProgramPipelines : TglCreateProgramPipelines;
12718   glCreateQueries : TglCreateQueries;
12719   glMemoryBarrierByRegion : TglMemoryBarrierByRegion;
12720   glGetTextureSubImage : TglGetTextureSubImage;
12721   glGetCompressedTextureSubImage : TglGetCompressedTextureSubImage;
12722   glGetGraphicsResetStatus : TglGetGraphicsResetStatus;
12723   glGetnCompressedTexImage : TglGetnCompressedTexImage;
12724   glGetnTexImage : TglGetnTexImage;
12725   glGetnUniformdv : TglGetnUniformdv;
12726   glGetnUniformfv : TglGetnUniformfv;
12727   glGetnUniformiv : TglGetnUniformiv;
12728   glGetnUniformuiv : TglGetnUniformuiv;
12729   glReadnPixels : TglReadnPixels;
12730   glGetnMapdv : TglGetnMapdv;
12731   glGetnMapfv : TglGetnMapfv;
12732   glGetnMapiv : TglGetnMapiv;
12733   glGetnPixelMapfv : TglGetnPixelMapfv;
12734   glGetnPixelMapuiv : TglGetnPixelMapuiv;
12735   glGetnPixelMapusv : TglGetnPixelMapusv;
12736   glGetnPolygonStipple : TglGetnPolygonStipple;
12737   glGetnColorTable : TglGetnColorTable;
12738   glGetnConvolutionFilter : TglGetnConvolutionFilter;
12739   glGetnSeparableFilter : TglGetnSeparableFilter;
12740   glGetnHistogram : TglGetnHistogram;
12741   glGetnMinmax : TglGetnMinmax;
12742   glTextureBarrier : TglTextureBarrier;
12743
12744   // GL_ARB_sparse_buffer
12745   glBufferPageCommitmentARB : TglBufferPageCommitmentARB;
12746   glNamedBufferPageCommitmentEXT : TglNamedBufferPageCommitmentEXT;
12747   glNamedBufferPageCommitmentARB : TglNamedBufferPageCommitmentARB;
12748
12749   // GL_KHR_blend_equation_advanced
12750   glBlendBarrierKHR : TglBlendBarrierKHR;
12751
12752   // GL_ARB_cl_event
12753   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12754
12755   // GL_ARB_debug_output
12756   glDebugMessageControlARB: TglDebugMessageControlARB;
12757   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12758   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12759   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12760
12761   // GL_ARB_compute_variable_group_size
12762   glDispatchComputeGroupSizeARB : TglDispatchComputeGroupSizeARB;
12763
12764   // GL_ARB_robustness
12765   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12766   glGetnMapdvARB: TglGetnMapdvARB;
12767   glGetnMapfvARB: TglGetnMapfvARB;
12768   glGetnMapivARB: TglGetnMapivARB;
12769   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12770   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12771   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12772   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12773   glGetnColorTableARB: TglGetnColorTableARB;
12774   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12775   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12776   glGetnHistogramARB: TglGetnHistogramARB;
12777   glGetnMinmaxARB: TglGetnMinmaxARB;
12778   glGetnTexImageARB: TglGetnTexImageARB;
12779   glReadnPixelsARB: TglReadnPixelsARB;
12780   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12781   glGetnUniformfvARB: TglGetnUniformfvARB;
12782   glGetnUniformivARB: TglGetnUniformivARB;
12783   glGetnUniformuivARB: TglGetnUniformuivARB;
12784   glGetnUniformdvARB: TglGetnUniformdvARB;
12785
12786   // GL_ATI_draw_buffers
12787   glDrawBuffersATI: TglDrawBuffersATI;
12788
12789   // GL_ATI_element_array
12790   glElementPointerATI: TglElementPointerATI;
12791   glDrawElementArrayATI: TglDrawElementArrayATI;
12792   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12793
12794   // GL_ATI_envmap_bumpmap
12795   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12796   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12797   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12798   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12799
12800   // GL_ATI_fragment_shader
12801   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12802   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12803   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12804   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12805   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12806   glPassTexCoordATI: TglPassTexCoordATI;
12807   glSampleMapATI: TglSampleMapATI;
12808   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12809   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12810   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12811   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12812   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12813   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12814   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12815
12816   // GL_ATI_map_object_buffer
12817   glMapObjectBufferATI: TglMapObjectBufferATI;
12818   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12819
12820   // GL_ATI_pn_triangles
12821   glPNTrianglesiATI: TglPNTrianglesiATI;
12822   glPNTrianglesfATI: TglPNTrianglesfATI;
12823
12824   // GL_ATI_separate_stencil
12825   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12826   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12827
12828   // GL_ATI_vertex_array_object
12829   glNewObjectBufferATI: TglNewObjectBufferATI;
12830   glIsObjectBufferATI: TglIsObjectBufferATI;
12831   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12832   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12833   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12834   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12835   glArrayObjectATI: TglArrayObjectATI;
12836   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12837   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12838   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12839   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12840   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12841   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12842   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12843   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12844
12845   // GL_ATI_vertex_streams
12846   glVertexStream1sATI: TglVertexStream1sATI;
12847   glVertexStream1svATI: TglVertexStream1svATI;
12848   glVertexStream1iATI: TglVertexStream1iATI;
12849   glVertexStream1ivATI: TglVertexStream1ivATI;
12850   glVertexStream1fATI: TglVertexStream1fATI;
12851   glVertexStream1fvATI: TglVertexStream1fvATI;
12852   glVertexStream1dATI: TglVertexStream1dATI;
12853   glVertexStream1dvATI: TglVertexStream1dvATI;
12854   glVertexStream2sATI: TglVertexStream2sATI;
12855   glVertexStream2svATI: TglVertexStream2svATI;
12856   glVertexStream2iATI: TglVertexStream2iATI;
12857   glVertexStream2ivATI: TglVertexStream2ivATI;
12858   glVertexStream2fATI: TglVertexStream2fATI;
12859   glVertexStream2fvATI: TglVertexStream2fvATI;
12860   glVertexStream2dATI: TglVertexStream2dATI;
12861   glVertexStream2dvATI: TglVertexStream2dvATI;
12862   glVertexStream3sATI: TglVertexStream3sATI;
12863   glVertexStream3svATI: TglVertexStream3svATI;
12864   glVertexStream3iATI: TglVertexStream3iATI;
12865   glVertexStream3ivATI: TglVertexStream3ivATI;
12866   glVertexStream3fATI: TglVertexStream3fATI;
12867   glVertexStream3fvATI: TglVertexStream3fvATI;
12868   glVertexStream3dATI: TglVertexStream3dATI;
12869   glVertexStream3dvATI: TglVertexStream3dvATI;
12870   glVertexStream4sATI: TglVertexStream4sATI;
12871   glVertexStream4svATI: TglVertexStream4svATI;
12872   glVertexStream4iATI: TglVertexStream4iATI;
12873   glVertexStream4ivATI: TglVertexStream4ivATI;
12874   glVertexStream4fATI: TglVertexStream4fATI;
12875   glVertexStream4fvATI: TglVertexStream4fvATI;
12876   glVertexStream4dATI: TglVertexStream4dATI;
12877   glVertexStream4dvATI: TglVertexStream4dvATI;
12878   glNormalStream3bATI: TglNormalStream3bATI;
12879   glNormalStream3bvATI: TglNormalStream3bvATI;
12880   glNormalStream3sATI: TglNormalStream3sATI;
12881   glNormalStream3svATI: TglNormalStream3svATI;
12882   glNormalStream3iATI: TglNormalStream3iATI;
12883   glNormalStream3ivATI: TglNormalStream3ivATI;
12884   glNormalStream3fATI: TglNormalStream3fATI;
12885   glNormalStream3fvATI: TglNormalStream3fvATI;
12886   glNormalStream3dATI: TglNormalStream3dATI;
12887   glNormalStream3dvATI: TglNormalStream3dvATI;
12888   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12889   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12890   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12891
12892   // GL_AMD_performance_monitor
12893   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12894   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12895   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12896   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12897   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12898   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12899   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12900   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12901   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12902   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12903   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12904
12905   // GL_AMD_vertex_shader_tesselator
12906   glTessellationFactorAMD: TglTessellationFactorAMD;
12907   glTessellationModeAMD: TglTessellationModeAMD;
12908
12909   // GL_AMD_draw_buffers_blend
12910   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12911   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12912   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12913   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12914
12915   // GL_AMD_name_gen_delete
12916   glGenNamesAMD: TglGenNamesAMD;
12917   glDeleteNamesAMD: TglDeleteNamesAMD;
12918   glIsNameAMD: TglIsNameAMD;
12919
12920   // GL_AMD_debug_output
12921   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12922   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12923   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12924   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12925
12926   // GL_EXT_blend_color
12927   glBlendColorEXT: TglBlendColorEXT;
12928
12929   // GL_EXT_blend_func_separate
12930   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12931
12932   // GL_EXT_blend_minmax
12933   glBlendEquationEXT: TglBlendEquationEXT;
12934
12935   // GL_EXT_color_subtable
12936   glColorSubTableEXT: TglColorSubTableEXT;
12937   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12938
12939   // GL_EXT_compiled_vertex_array
12940   glLockArraysEXT: TglLockArraysEXT;
12941   glUnlockArraysEXT: TglUnlockArraysEXT;
12942
12943   // GL_EXT_convolution
12944   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12945   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12946   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12947   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12948   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12949   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12950   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12951   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12952   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12953   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12954   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12955   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12956   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12957
12958   // GL_EXT_coordinate_frame
12959   glTangent3bEXT: TglTangent3bEXT;
12960   glTangent3bvEXT: TglTangent3bvEXT;
12961   glTangent3dEXT: TglTangent3dEXT;
12962   glTangent3dvEXT: TglTangent3dvEXT;
12963   glTangent3fEXT: TglTangent3fEXT;
12964   glTangent3fvEXT: TglTangent3fvEXT;
12965   glTangent3iEXT: TglTangent3iEXT;
12966   glTangent3ivEXT: TglTangent3ivEXT;
12967   glTangent3sEXT: TglTangent3sEXT;
12968   glTangent3svEXT: TglTangent3svEXT;
12969   glBinormal3bEXT: TglBinormal3bEXT;
12970   glBinormal3bvEXT: TglBinormal3bvEXT;
12971   glBinormal3dEXT: TglBinormal3dEXT;
12972   glBinormal3dvEXT: TglBinormal3dvEXT;
12973   glBinormal3fEXT: TglBinormal3fEXT;
12974   glBinormal3fvEXT: TglBinormal3fvEXT;
12975   glBinormal3iEXT: TglBinormal3iEXT;
12976   glBinormal3ivEXT: TglBinormal3ivEXT;
12977   glBinormal3sEXT: TglBinormal3sEXT;
12978   glBinormal3svEXT: TglBinormal3svEXT;
12979   glTangentPointerEXT: TglTangentPointerEXT;
12980   glBinormalPointerEXT: TglBinormalPointerEXT;
12981
12982   // GL_EXT_copy_texture
12983   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12984   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12985   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12986   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12987   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12988
12989   // GL_EXT_cull_vertex
12990   glCullParameterdvEXT: TglCullParameterdvEXT;
12991   glCullParameterfvEXT: TglCullParameterfvEXT;
12992
12993   // GL_EXT_draw_range_elements
12994   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12995
12996   // GL_EXT_fog_coord
12997   glFogCoordfEXT: TglFogCoordfEXT;
12998   glFogCoordfvEXT: TglFogCoordfvEXT;
12999   glFogCoorddEXT: TglFogCoorddEXT;
13000   glFogCoorddvEXT: TglFogCoorddvEXT;
13001   glFogCoordPointerEXT: TglFogCoordPointerEXT;
13002
13003   // GL_EXT_framebuffer_object
13004   glIsRenderbufferEXT: TglIsRenderbufferEXT;
13005   glBindRenderbufferEXT: TglBindRenderbufferEXT;
13006   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
13007   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
13008   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
13009   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
13010   glIsFramebufferEXT: TglIsFramebufferEXT;
13011   glBindFramebufferEXT: TglBindFramebufferEXT;
13012   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
13013   glGenFramebuffersEXT: TglGenFramebuffersEXT;
13014   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
13015   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
13016   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
13017   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
13018   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
13019   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
13020   glGenerateMipmapEXT: TglGenerateMipmapEXT;
13021
13022   // GL_EXT_histogram
13023   glGetHistogramEXT: TglGetHistogramEXT;
13024   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
13025   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
13026   glGetMinmaxEXT: TglGetMinmaxEXT;
13027   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
13028   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
13029   glHistogramEXT: TglHistogramEXT;
13030   glMinmaxEXT: TglMinmaxEXT;
13031   glResetHistogramEXT: TglResetHistogramEXT;
13032   glResetMinmaxEXT: TglResetMinmaxEXT;
13033
13034   // GL_EXT_index_func
13035   glIndexFuncEXT: TglIndexFuncEXT;
13036
13037   // GL_EXT_index_material
13038   glIndexMaterialEXT: TglIndexMaterialEXT;
13039
13040   // GL_EXT_light_texture
13041   glApplyTextureEXT: TglApplyTextureEXT;
13042   glTextureLightEXT: TglTextureLightEXT;
13043   glTextureMaterialEXT: TglTextureMaterialEXT;
13044
13045   // GL_EXT_multi_draw_arrays
13046   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13047   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13048
13049   // GL_EXT_multisample
13050   glSampleMaskEXT: TglSampleMaskEXT;
13051   glSamplePatternEXT: TglSamplePatternEXT;
13052
13053   // GL_EXT_paletted_texture
13054   glColorTableEXT: TglColorTableEXT;
13055   glGetColorTableEXT: TglGetColorTableEXT;
13056   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13057   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13058
13059   // GL_EXT_pixel_transform
13060   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13061   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13062   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13063   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13064
13065   // GL_EXT_point_parameters
13066   glPointParameterfEXT: TglPointParameterfEXT;
13067   glPointParameterfvEXT: TglPointParameterfvEXT;
13068
13069   // GL_EXT_polygon_offset
13070   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13071
13072   // GL_EXT_secondary_color
13073   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13074   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13075   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13076   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13077   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13078   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13079   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13080   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13081   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13082   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13083   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13084   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13085   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13086   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13087   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13088   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13089   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13090
13091   // GL_EXT_stencil_two_side
13092   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13093
13094   // GL_EXT_subtexture
13095   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13096   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13097
13098   // GL_EXT_texture3D
13099   glTexImage3DEXT: TglTexImage3DEXT;
13100   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13101
13102   // GL_EXT_texture_object
13103   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13104   glBindTextureEXT: TglBindTextureEXT;
13105   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13106   glGenTexturesEXT: TglGenTexturesEXT;
13107   glIsTextureEXT: TglIsTextureEXT;
13108   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13109
13110   // GL_EXT_texture_perturb_normal
13111   glTextureNormalEXT: TglTextureNormalEXT;
13112
13113   // GL_EXT_vertex_array
13114   glArrayElementEXT: TglArrayElementEXT;
13115   glColorPointerEXT: TglColorPointerEXT;
13116   glDrawArraysEXT: TglDrawArraysEXT;
13117   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13118   glGetPointervEXT: TglGetPointervEXT;
13119   glIndexPointerEXT: TglIndexPointerEXT;
13120   glNormalPointerEXT: TglNormalPointerEXT;
13121   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13122   glVertexPointerEXT: TglVertexPointerEXT;
13123
13124   // GL_EXT_vertex_shader
13125   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13126   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13127   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13128   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13129   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13130   glShaderOp1EXT: TglShaderOp1EXT;
13131   glShaderOp2EXT: TglShaderOp2EXT;
13132   glShaderOp3EXT: TglShaderOp3EXT;
13133   glSwizzleEXT: TglSwizzleEXT;
13134   glWriteMaskEXT: TglWriteMaskEXT;
13135   glInsertComponentEXT: TglInsertComponentEXT;
13136   glExtractComponentEXT: TglExtractComponentEXT;
13137   glGenSymbolsEXT: TglGenSymbolsEXT;
13138   glSetInvariantEXT: TglSetInvariantEXT;
13139   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13140   glVariantbvEXT: TglVariantbvEXT;
13141   glVariantsvEXT: TglVariantsvEXT;
13142   glVariantivEXT: TglVariantivEXT;
13143   glVariantfvEXT: TglVariantfvEXT;
13144   glVariantdvEXT: TglVariantdvEXT;
13145   glVariantubvEXT: TglVariantubvEXT;
13146   glVariantusvEXT: TglVariantusvEXT;
13147   glVariantuivEXT: TglVariantuivEXT;
13148   glVariantPointerEXT: TglVariantPointerEXT;
13149   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13150   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13151   glBindLightParameterEXT: TglBindLightParameterEXT;
13152   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13153   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13154   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13155   glBindParameterEXT: TglBindParameterEXT;
13156   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13157   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13158   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13159   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13160   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13161   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13162   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13163   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13164   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13165   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13166   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13167
13168   // GL_EXT_vertex_weighting
13169   glVertexWeightfEXT: TglVertexWeightfEXT;
13170   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13171   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13172
13173   // GL_EXT_stencil_clear_tag
13174   glStencilClearTagEXT: TglStencilClearTagEXT;
13175
13176   // GL_EXT_framebuffer_blit
13177   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13178
13179   // GL_EXT_framebuffer_multisample
13180   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13181
13182   // GL_EXT_timer_query
13183   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13184   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13185
13186   // GL_EXT_gpu_program_parameters
13187   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13188   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13189
13190   // GL_EXT_bindable_uniform
13191   glUniformBufferEXT: TglUniformBufferEXT;
13192   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13193   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13194
13195   // GL_EXT_draw_buffers2
13196   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13197   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13198   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13199   glEnableIndexedEXT: TglEnableIndexedEXT;
13200   glDisableIndexedEXT: TglDisableIndexedEXT;
13201   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13202
13203   // GL_EXT_draw_instanced
13204   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13205   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13206
13207   // GL_EXT_geometry_shader4
13208   glProgramParameteriEXT: TglProgramParameteriEXT;
13209   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13210 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13211   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13212
13213   // GL_EXT_gpu_shader4
13214   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13215   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13216   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13217   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13218   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13219   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13220   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13221   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13222   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13223   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13224   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13225   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13226   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13227   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13228   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13229   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13230   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13231   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13232   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13233   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13234   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13235   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13236   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13237   glUniform1uiEXT: TglUniform1uiEXT;
13238   glUniform2uiEXT: TglUniform2uiEXT;
13239   glUniform3uiEXT: TglUniform3uiEXT;
13240   glUniform4uiEXT: TglUniform4uiEXT;
13241   glUniform1uivEXT: TglUniform1uivEXT;
13242   glUniform2uivEXT: TglUniform2uivEXT;
13243   glUniform3uivEXT: TglUniform3uivEXT;
13244   glUniform4uivEXT: TglUniform4uivEXT;
13245   glGetUniformuivEXT: TglGetUniformuivEXT;
13246   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13247   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13248
13249   // GL_EXT_texture_array
13250   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13251
13252   // GL_EXT_texture_buffer_object
13253   glTexBufferEXT: TglTexBufferEXT;
13254
13255   // GL_EXT_texture_integer
13256   glClearColorIiEXT: TglClearColorIiEXT;
13257   glClearColorIuiEXT: TglClearColorIuiEXT;
13258   glTexParameterIivEXT: TglTexParameterIivEXT;
13259   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13260   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13261   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13262
13263   // GL_EXT_transform_feedback
13264   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13265   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13266   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13267   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13268   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13269   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13270   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13271
13272   // GL_EXT_direct_state_access
13273   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13274   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13275   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13276   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13277   glMatrixMultfEXT: TglMatrixMultfEXT;
13278   glMatrixMultdEXT: TglMatrixMultdEXT;
13279   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13280   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13281   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13282   glMatrixScalefEXT: TglMatrixScalefEXT;
13283   glMatrixScaledEXT: TglMatrixScaledEXT;
13284   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13285   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13286   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13287   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13288   glMatrixPopEXT: TglMatrixPopEXT;
13289   glMatrixPushEXT: TglMatrixPushEXT;
13290   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13291   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13292   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13293   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13294   glTextureParameterfEXT: TglTextureParameterfEXT;
13295   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13296   glTextureParameteriEXT: TglTextureParameteriEXT;
13297   glTextureParameterivEXT: TglTextureParameterivEXT;
13298   glTextureImage1DEXT: TglTextureImage1DEXT;
13299   glTextureImage2DEXT: TglTextureImage2DEXT;
13300   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13301   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13302   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13303   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13304   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13305   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13306   glGetTextureImageEXT: TglGetTextureImageEXT;
13307   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13308   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13309   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13310   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13311   glTextureImage3DEXT: TglTextureImage3DEXT;
13312   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13313   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13314   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13315   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13316   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13317   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13318   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13319   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13320   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13321   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13322   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13323   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13324   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13325   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13326   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13327   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13328   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13329   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13330   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13331   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13332   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13333   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13334   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13335   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13336   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13337   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13338   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13339   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13340   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13341   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13342   glMultiTexGendEXT: TglMultiTexGendEXT;
13343   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13344   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13345   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13346   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13347   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13348   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13349   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13350   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13351   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13352   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13353   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13354   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13355   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13356   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13357   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13358   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13359   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13360   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13361   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13362   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13363   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13364   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13365   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13366   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13367   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13368   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13369   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13370   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13371   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13372   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13373   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13374   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13375   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13376   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13377   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13378   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13379   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13380   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13381   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13382   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13383   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13384   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13385   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13386   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13387   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13388   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13389   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13390   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13391   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13392   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13393   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13394   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13395   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13396   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13397   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13398   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13399   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13400   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13401   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13402   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13403   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13404   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13405   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13406   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13407   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13408   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13409   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13410   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13411   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13412   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13413   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13414   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13415   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13416   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13417   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13418   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13419   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13420   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13421   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13422   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13423   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13424   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13425   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13426   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13427   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13428   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13429   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13430   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13431   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13432   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13433   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13434   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13435   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13436   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13437   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13438   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13439   glTextureBufferEXT: TglTextureBufferEXT;
13440   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13441   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13442   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13443   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13444   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13445   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13446   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13447   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13448   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13449   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13450   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13451   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13452   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13453   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13454   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13455   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13456   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13457   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13458   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13459   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13460   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13461   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13462   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13463   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13464   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13465   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13466   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13467   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13468   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13469   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13470   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13471   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13472   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13473   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13474   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13475   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13476   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13477   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13478   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13479
13480   // GL_EXT_separate_shader_objects
13481   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13482   glActiveProgramEXT: TglActiveProgramEXT;
13483   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13484
13485   // GL_EXT_shader_image_load_store
13486   glBindImageTextureEXT: TglBindImageTextureEXT;
13487   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13488
13489   // GL_EXT_vertex_attrib_64bit
13490   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13491   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13492   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13493   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13494   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13495   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13496   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13497   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13498   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13499   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13500   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13501
13502   // GL_HP_image_transform
13503   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13504   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13505   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13506   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13507   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13508   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13509
13510   // GL_EXT_depth_bounds_test
13511   glDepthBoundsEXT: TglDepthBoundsEXT;
13512
13513   // GL_EXT_blend_equation_separate
13514   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13515
13516   // GL_IBM_multimode_draw_arrays
13517   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13518   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13519
13520   // GL_IBM_vertex_array_lists
13521   glColorPointerListIBM: TglColorPointerListIBM;
13522   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13523   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13524   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13525   glIndexPointerListIBM: TglIndexPointerListIBM;
13526   glNormalPointerListIBM: TglNormalPointerListIBM;
13527   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13528   glVertexPointerListIBM: TglVertexPointerListIBM;
13529
13530   // GL_INGR_blend_func_separate
13531   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13532
13533   // GL_INTEL_parallel_arrays
13534   glVertexPointervINTEL: TglVertexPointervINTEL;
13535   glNormalPointervINTEL: TglNormalPointervINTEL;
13536   glColorPointervINTEL: TglColorPointervINTEL;
13537   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13538
13539   // GL_MESA_resize_buffers
13540   glResizeBuffersMESA: TglResizeBuffersMESA;
13541
13542   // GL_MESA_window_pos
13543   glWindowPos2dMESA: TglWindowPos2dMESA;
13544   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13545   glWindowPos2fMESA: TglWindowPos2fMESA;
13546   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13547   glWindowPos2iMESA: TglWindowPos2iMESA;
13548   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13549   glWindowPos2sMESA: TglWindowPos2sMESA;
13550   glWindowPos2svMESA: TglWindowPos2svMESA;
13551   glWindowPos3dMESA: TglWindowPos3dMESA;
13552   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13553   glWindowPos3fMESA: TglWindowPos3fMESA;
13554   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13555   glWindowPos3iMESA: TglWindowPos3iMESA;
13556   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13557   glWindowPos3sMESA: TglWindowPos3sMESA;
13558   glWindowPos3svMESA: TglWindowPos3svMESA;
13559   glWindowPos4dMESA: TglWindowPos4dMESA;
13560   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13561   glWindowPos4fMESA: TglWindowPos4fMESA;
13562   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13563   glWindowPos4iMESA: TglWindowPos4iMESA;
13564   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13565   glWindowPos4sMESA: TglWindowPos4sMESA;
13566   glWindowPos4svMESA: TglWindowPos4svMESA;
13567
13568   // GL_NV_evaluators
13569   glMapControlPointsNV: TglMapControlPointsNV;
13570   glMapParameterivNV: TglMapParameterivNV;
13571   glMapParameterfvNV: TglMapParameterfvNV;
13572   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13573   glGetMapParameterivNV: TglGetMapParameterivNV;
13574   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13575   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13576   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13577   glEvalMapsNV: TglEvalMapsNV;
13578
13579   // GL_NV_fence
13580   glDeleteFencesNV: TglDeleteFencesNV;
13581   glGenFencesNV: TglGenFencesNV;
13582   glIsFenceNV: TglIsFenceNV;
13583   glTestFenceNV: TglTestFenceNV;
13584   glGetFenceivNV: TglGetFenceivNV;
13585   glFinishFenceNV: TglFinishFenceNV;
13586   glSetFenceNV: TglSetFenceNV;
13587
13588   // GL_NV_fragment_program
13589   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13590   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13591   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13592   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13593   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13594   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13595
13596   // GL_NV_half_float
13597   glVertex2hNV: TglVertex2hNV;
13598   glVertex2hvNV: TglVertex2hvNV;
13599   glVertex3hNV: TglVertex3hNV;
13600   glVertex3hvNV: TglVertex3hvNV;
13601   glVertex4hNV: TglVertex4hNV;
13602   glVertex4hvNV: TglVertex4hvNV;
13603   glNormal3hNV: TglNormal3hNV;
13604   glNormal3hvNV: TglNormal3hvNV;
13605   glColor3hNV: TglColor3hNV;
13606   glColor3hvNV: TglColor3hvNV;
13607   glColor4hNV: TglColor4hNV;
13608   glColor4hvNV: TglColor4hvNV;
13609   glTexCoord1hNV: TglTexCoord1hNV;
13610   glTexCoord1hvNV: TglTexCoord1hvNV;
13611   glTexCoord2hNV: TglTexCoord2hNV;
13612   glTexCoord2hvNV: TglTexCoord2hvNV;
13613   glTexCoord3hNV: TglTexCoord3hNV;
13614   glTexCoord3hvNV: TglTexCoord3hvNV;
13615   glTexCoord4hNV: TglTexCoord4hNV;
13616   glTexCoord4hvNV: TglTexCoord4hvNV;
13617   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13618   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13619   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13620   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13621   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13622   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13623   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13624   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13625   glFogCoordhNV: TglFogCoordhNV;
13626   glFogCoordhvNV: TglFogCoordhvNV;
13627   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13628   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13629   glVertexWeighthNV: TglVertexWeighthNV;
13630   glVertexWeighthvNV: TglVertexWeighthvNV;
13631   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13632   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13633   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13634   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13635   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13636   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13637   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13638   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13639   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13640   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13641   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13642   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13643
13644   // GL_NV_occlusion_query
13645   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13646   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13647   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13648   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13649   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13650   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13651   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13652
13653   // GL_NV_pixel_data_range
13654   glPixelDataRangeNV: TglPixelDataRangeNV;
13655   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13656
13657   // GL_NV_point_sprite
13658   glPointParameteriNV: TglPointParameteriNV;
13659   glPointParameterivNV: TglPointParameterivNV;
13660
13661   // GL_NV_primitive_restart
13662   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13663   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13664
13665   // GL_NV_register_combiners
13666   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13667   glCombinerParameterfNV: TglCombinerParameterfNV;
13668   glCombinerParameterivNV: TglCombinerParameterivNV;
13669   glCombinerParameteriNV: TglCombinerParameteriNV;
13670   glCombinerInputNV: TglCombinerInputNV;
13671   glCombinerOutputNV: TglCombinerOutputNV;
13672   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13673   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13674   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13675   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13676   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13677   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13678   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13679
13680   // GL_NV_register_combiners2
13681   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13682   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13683
13684   // GL_NV_vertex_array_range
13685   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13686   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13687
13688   // GL_NV_vertex_program
13689   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13690   glBindProgramNV: TglBindProgramNV;
13691   glDeleteProgramsNV: TglDeleteProgramsNV;
13692   glExecuteProgramNV: TglExecuteProgramNV;
13693   glGenProgramsNV: TglGenProgramsNV;
13694   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13695   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13696   glGetProgramivNV: TglGetProgramivNV;
13697   glGetProgramStringNV: TglGetProgramStringNV;
13698   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13699   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13700   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13701   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13702   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13703   glIsProgramNV: TglIsProgramNV;
13704   glLoadProgramNV: TglLoadProgramNV;
13705   glProgramParameter4dNV: TglProgramParameter4dNV;
13706   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13707   glProgramParameter4fNV: TglProgramParameter4fNV;
13708   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13709   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13710   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13711   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13712   glTrackMatrixNV: TglTrackMatrixNV;
13713   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13714   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13715   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13716   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13717   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13718   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13719   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13720   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13721   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13722   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13723   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13724   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13725   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13726   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13727   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13728   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13729   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13730   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13731   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13732   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13733   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13734   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13735   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13736   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13737   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13738   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13739   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13740   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13741   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13742   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13743   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13744   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13745   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13746   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13747   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13748   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13749   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13750   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13751   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13752   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13753
13754   // GL_NV_depth_buffer_float
13755   glDepthRangedNV: TglDepthRangedNV;
13756   glClearDepthdNV: TglClearDepthdNV;
13757   glDepthBoundsdNV: TglDepthBoundsdNV;
13758
13759   // GL_NV_framebuffer_multisample_coverage
13760   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13761
13762   // GL_NV_geometry_program4
13763   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13764
13765   // GL_NV_gpu_program4
13766   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13767   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13768   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13769   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13770   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13771   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13772   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13773   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13774   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13775   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13776   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13777   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13778   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13779   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13780   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13781   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13782
13783   // GL_NV_parameter_buffer_object
13784   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13785   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13786   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13787
13788   // GL_NV_transform_feedback
13789   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13790   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13791   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13792   glBindBufferRangeNV: TglBindBufferRangeNV;
13793   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13794   glBindBufferBaseNV: TglBindBufferBaseNV;
13795   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13796   glActiveVaryingNV: TglActiveVaryingNV;
13797   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13798   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13799   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13800   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13801
13802   // GL_NV_conditional_render
13803   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13804   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13805
13806   // GL_NV_present_video
13807   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13808   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13809   glGetVideoivNV: TglGetVideoivNV;
13810   glGetVideouivNV: TglGetVideouivNV;
13811   glGetVideoi64vNV: TglGetVideoi64vNV;
13812   glGetVideoui64vNV: TglGetVideoui64vNV;
13813 //  glVideoParameterivNV: TglVideoParameterivNV;
13814
13815   // GL_NV_explicit_multisample
13816   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13817   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13818   glTexRenderbufferNV: TglTexRenderbufferNV;
13819
13820   // GL_NV_transform_feedback2
13821   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13822   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13823   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13824   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13825   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13826   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13827   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13828
13829   // GL_NV_video_capture
13830   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13831   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13832   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13833   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13834   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13835   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13836   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13837   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13838   glVideoCaptureNV: TglVideoCaptureNV;
13839   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13840   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13841   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13842
13843   // GL_NV_copy_image
13844   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13845
13846   // GL_NV_shader_buffer_load
13847   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13848   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13849   glIsBufferResidentNV: TglIsBufferResidentNV;
13850   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13851   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13852   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13853   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13854   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13855   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13856   glUniformui64NV: TglUniformui64NV;
13857   glUniformui64vNV: TglUniformui64vNV;
13858   glGetUniformui64vNV: TglGetUniformui64vNV;
13859   glProgramUniformui64NV: TglProgramUniformui64NV;
13860   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13861
13862   // GL_NV_vertex_buffer_unified_memory
13863   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13864   glVertexFormatNV: TglVertexFormatNV;
13865   glNormalFormatNV: TglNormalFormatNV;
13866   glColorFormatNV: TglColorFormatNV;
13867   glIndexFormatNV: TglIndexFormatNV;
13868   glTexCoordFormatNV: TglTexCoordFormatNV;
13869   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13870   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13871   glFogCoordFormatNV: TglFogCoordFormatNV;
13872   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13873   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13874   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13875
13876   // GL_NV_gpu_program5
13877   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13878   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13879
13880   // GL_NV_gpu_shader5
13881   glUniform1i64NV: TglUniform1i64NV;
13882   glUniform2i64NV: TglUniform2i64NV;
13883   glUniform3i64NV: TglUniform3i64NV;
13884   glUniform4i64NV: TglUniform4i64NV;
13885   glUniform1i64vNV: TglUniform1i64vNV;
13886   glUniform2i64vNV: TglUniform2i64vNV;
13887   glUniform3i64vNV: TglUniform3i64vNV;
13888   glUniform4i64vNV: TglUniform4i64vNV;
13889   glUniform1ui64NV: TglUniform1ui64NV;
13890   glUniform2ui64NV: TglUniform2ui64NV;
13891   glUniform3ui64NV: TglUniform3ui64NV;
13892   glUniform4ui64NV: TglUniform4ui64NV;
13893   glUniform1ui64vNV: TglUniform1ui64vNV;
13894   glUniform2ui64vNV: TglUniform2ui64vNV;
13895   glUniform3ui64vNV: TglUniform3ui64vNV;
13896   glUniform4ui64vNV: TglUniform4ui64vNV;
13897   glGetUniformi64vNV: TglGetUniformi64vNV;
13898   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13899   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13900   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13901   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13902   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13903   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13904   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13905   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13906   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13907   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13908   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13909   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13910   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13911   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13912   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13913   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13914
13915   // GL_NV_vertex_attrib_integer_64bit
13916   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13917   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13918   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13919   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13920   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13921   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13922   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13923   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13924   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13925   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13926   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13927   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13928   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13929   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13930   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13931   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13932   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13933   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13934   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13935
13936   // GL_NV_vdpau_interop
13937   glVDPAUInitNV: TglVDPAUInitNV;
13938   glVDPAUFiniNV: TglVDPAUFiniNV;
13939   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13940   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13941   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13942   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13943   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13944   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13945   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13946   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13947
13948   // GL_NV_texture_barrier
13949   glTextureBarrierNV: TglTextureBarrierNV;
13950
13951   // (4.3) GL_NV_path_rendering
13952   glGenPathsNV : TglGenPathsNV;
13953   glDeletePathsNV : TglDeletePathsNV;
13954   glIsPathNV : TglIsPathNV;
13955   glPathCommandsNV : TglPathCommandsNV;
13956   glPathCoordsNV : TglPathCoordsNV;
13957   glPathSubCommandsNV : TglPathSubCommandsNV;
13958   glPathSubCoordsNV : TglPathSubCoordsNV;
13959   glPathStringNV : TglPathStringNV;
13960   glPathGlyphsNV : TglPathGlyphsNV;
13961   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13962   glWeightPathsNV : TglWeightPathsNV;
13963   glCopyPathNV : TglCopyPathNV;
13964   glInterpolatePathsNV : TglInterpolatePathsNV;
13965   glTransformPathNV : TglTransformPathNV;
13966   glPathParameterivNV : TglPathParameterivNV;
13967   glPathParameteriNV : TglPathParameteriNV;
13968   glPathParameterfvNV : TglPathParameterfvNV;
13969   glPathParameterfNV : TglPathParameterfNV;
13970   glPathDashArrayNV : TglPathDashArrayNV;
13971   glPathStencilFuncNV : TglPathStencilFuncNV;
13972   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13973   glStencilFillPathNV : TglStencilFillPathNV;
13974   glStencilStrokePathNV : TglStencilStrokePathNV;
13975   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13976   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13977   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13978   glPathColorGenNV : TglPathColorGenNV;
13979   glPathTexGenNV : TglPathTexGenNV;
13980   glPathFogGenNV : TglPathFogGenNV;
13981   glCoverFillPathNV : TglCoverFillPathNV;
13982   glCoverStrokePathNV : TglCoverStrokePathNV;
13983   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13984   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13985   glGetPathParameterivNV : TglGetPathParameterivNV;
13986   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13987   glGetPathCommandsNV : TglGetPathCommandsNV;
13988   glGetPathCoordsNV : TglGetPathCoordsNV;
13989   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13990   glGetPathMetricsNV : TglGetPathMetricsNV;
13991   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13992   glGetPathSpacingNV : TglGetPathSpacingNV;
13993   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13994   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13995   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13996   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13997   glIsPointInFillPathNV : TglIsPointInFillPathNV;
13998   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
13999   glGetPathLengthNV : TglGetPathLengthNV;
14000   glPointAlongPathNV : TglPointAlongPathNV;
14001
14002   // GL_AMD_pinned_memory
14003
14004   // GL_AMD_stencil_operation_extended
14005   glStencilOpValueAMD : TglStencilOpValueAMD;
14006
14007   // GL_AMD_vertex_shader_viewport_index
14008
14009   // GL_AMD_vertex_shader_layer
14010
14011   // GL_NV_bindless_texture
14012   glGetTextureHandleNV : TglGetTextureHandleNV;
14013   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
14014   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
14015   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
14016   glGetImageHandleNV : TglGetImageHandleNV;
14017   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
14018   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
14019   glUniformHandleui64NV : TglUniformHandleui64NV;
14020   glUniformHandleui64vNV : TglUniformHandleui64vNV;
14021   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
14022   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
14023   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
14024   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
14025
14026   // GL_ARB_bindless_texture
14027   glGetTextureHandleARB : TglGetTextureHandleARB;
14028   glGetTextureSamplerHandleARB : TglGetTextureSamplerHandleARB;
14029   glMakeTextureHandleResidentARB : TglMakeTextureHandleResidentARB;
14030   glMakeTextureHandleNonResidentARB : TglMakeTextureHandleNonResidentARB;
14031   glGetImageHandleARB : TglGetImageHandleARB;
14032   glMakeImageHandleResidentARB : TglMakeImageHandleResidentARB;
14033   glMakeImageHandleNonResidentARB : TglMakeImageHandleNonResidentARB;
14034   glUniformHandleui64ARB : TglUniformHandleui64ARB;
14035   glUniformHandleui64vARB : TglUniformHandleui64vARB;
14036   glProgramUniformHandleui64ARB : TglProgramUniformHandleui64ARB;
14037   glProgramUniformHandleui64vARB : TglProgramUniformHandleui64vARB;
14038   glIsTextureHandleResidentARB : TglIsTextureHandleResidentARB;
14039   glIsImageHandleResidentARB : TglIsImageHandleResidentARB;
14040   glVertexAttribL1ui64ARB : TglVertexAttribL1ui64ARB;
14041   glVertexAttribL1ui64vARB : TglVertexAttribL1ui64vARB;
14042   glGetVertexAttribLui64vARB : TglGetVertexAttribLui64vARB;
14043
14044   // GL_PGI_misc_hints
14045   glHintPGI: TglHintPGI;
14046
14047   // GL_SGIS_detail_texture
14048   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
14049   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
14050
14051   // GL_SGIS_fog_function
14052   glFogFuncSGIS: TglFogFuncSGIS;
14053   glGetFogFuncSGIS: TglGetFogFuncSGIS;
14054
14055   // GL_SGIS_multisample
14056   glSampleMaskSGIS: TglSampleMaskSGIS;
14057   glSamplePatternSGIS: TglSamplePatternSGIS;
14058
14059   // GL_SGIS_pixel_texture
14060   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14061   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14062   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14063   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14064   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14065   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14066
14067   // GL_SGIS_point_parameters
14068   glPointParameterfSGIS: TglPointParameterfSGIS;
14069   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14070
14071   // GL_SGIS_sharpen_texture
14072   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14073   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14074
14075   // GL_SGIS_texture4D
14076   glTexImage4DSGIS: TglTexImage4DSGIS;
14077   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14078
14079   // GL_SGIS_texture_color_mask
14080   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14081
14082   // GL_SGIS_texture_filter4
14083   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14084   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14085
14086   // GL_SGIX_async
14087   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14088   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14089   glPollAsyncSGIX: TglPollAsyncSGIX;
14090   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14091   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14092   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14093
14094   // GL_SGIX_flush_raster
14095   glFlushRasterSGIX: TglFlushRasterSGIX;
14096
14097   // GL_SGIX_fragment_lighting
14098   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14099   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14100   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14101   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14102   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14103   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14104   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14105   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14106   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14107   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14108   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14109   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14110   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14111   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14112   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14113   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14114   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14115   glLightEnviSGIX: TglLightEnviSGIX;
14116
14117   // GL_SGIX_framezoom
14118   glFrameZoomSGIX: TglFrameZoomSGIX;
14119
14120   // GL_SGIX_igloo_interface
14121   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14122
14123   // GL_SGIX_instruments
14124   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14125   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14126   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14127   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14128   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14129   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14130
14131   // GL_SGIX_list_priority
14132   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14133   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14134   glListParameterfSGIX: TglListParameterfSGIX;
14135   glListParameterfvSGIX: TglListParameterfvSGIX;
14136   glListParameteriSGIX: TglListParameteriSGIX;
14137   glListParameterivSGIX: TglListParameterivSGIX;
14138
14139   // GL_SGIX_pixel_texture
14140   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14141
14142   // GL_SGIX_polynomial_ffd
14143   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14144   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14145   glDeformSGIX: TglDeformSGIX;
14146   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14147
14148   // GL_SGIX_reference_plane
14149   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14150
14151   // GL_SGIX_sprite
14152   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14153   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14154   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14155   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14156
14157   // GL_SGIX_tag_sample_buffer
14158   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14159
14160   // GL_SGI_color_table
14161   glColorTableSGI: TglColorTableSGI;
14162   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14163   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14164   glCopyColorTableSGI: TglCopyColorTableSGI;
14165   glGetColorTableSGI: TglGetColorTableSGI;
14166   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14167   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14168
14169   // GL_SUNX_constant_data
14170   glFinishTextureSUNX: TglFinishTextureSUNX;
14171
14172   // GL_SUN_global_alpha
14173   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14174   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14175   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14176   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14177   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14178   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14179   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14180   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14181
14182   // GL_SUN_mesh_array
14183   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14184
14185   // GL_SUN_triangle_list
14186   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14187   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14188   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14189   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14190   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14191   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14192   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14193
14194   // GL_SUN_vertex
14195   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14196   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14197   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14198   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14199   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14200   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14201   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14202   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14203   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14204   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14205   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14206   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14207   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14208   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14209   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14210   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14211   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14212   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14213   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14214   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14215   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14216   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14217   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14218   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14219   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14220   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14221   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14222   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14223   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14224   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14225   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14226   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14227   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14228   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14229   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14230   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14231   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14232   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14233   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14234   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14235
14236 {$IFDEF DGL_WIN}
14237   wglGetProcAddress: TwglGetProcAddress;
14238   wglCopyContext: TwglCopyContext;
14239   wglCreateContext: TwglCreateContext;
14240   wglCreateLayerContext: TwglCreateLayerContext;
14241   wglDeleteContext: TwglDeleteContext;
14242   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14243   wglGetCurrentContext: TwglGetCurrentContext;
14244   wglGetCurrentDC: TwglGetCurrentDC;
14245   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14246   wglMakeCurrent: TwglMakeCurrent;
14247   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14248   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14249   wglShareLists: TwglShareLists;
14250   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14251   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14252   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14253   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14254   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14255   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14256   wglUseFontBitmaps: TwglUseFontBitmaps;
14257   wglUseFontOutlines: TwglUseFontOutlines;
14258
14259    // WGL_ARB_buffer_region
14260   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14261   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14262   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14263   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14264
14265   // WGL_ARB_extensions_string
14266   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14267
14268   // WGL_ARB_make_current_read
14269   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14270   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14271
14272   // WGL_ARB_pbuffer
14273   wglCreatePbufferARB: TwglCreatePbufferARB;
14274   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14275   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14276   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14277   wglQueryPbufferARB: TwglQueryPbufferARB;
14278
14279   // WGL_ARB_pixel_format
14280   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14281   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14282   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14283   // WGL_ARB_color_buffer_float
14284   wglClampColorARB: TwglClampColorARB;
14285
14286   // WGL_ARB_render_texture
14287   wglBindTexImageARB: TwglBindTexImageARB;
14288   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14289   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14290
14291   // WGL_ARB_create_context
14292   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14293
14294   // WGL_AMD_gpu_association
14295   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14296   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14297   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14298   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14299   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14300   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14301   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14302   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14303   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14304
14305   // WGL_EXT_display_color_table
14306   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14307   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14308   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14309   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14310
14311   // WGL_EXT_extensions_string
14312   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14313
14314   // WGL_EXT_make_current_read
14315   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14316   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14317
14318   // WGL_EXT_pbuffer
14319   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14320   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14321   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14322   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14323   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14324
14325   // WGL_EXT_pixel_format
14326   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14327   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14328   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14329
14330   // WGL_EXT_swap_control
14331   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14332   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14333
14334   // WGL_I3D_digital_video_control
14335   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14336   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14337
14338   // WGL_I3D_gamma
14339   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14340   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14341   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14342   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14343
14344   // WGL_I3D_genlock
14345   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14346   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14347   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14348   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14349   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14350   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14351   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14352   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14353   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14354   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14355   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14356   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14357
14358   // WGL_I3D_image_buffer
14359   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14360   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14361   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14362   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14363
14364   // WGL_I3D_swap_frame_lock
14365   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14366   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14367   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14368   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14369
14370   // WGL_I3D_swap_frame_usage
14371   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14372   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14373   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14374   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14375
14376   // WGL_NV_vertex_array_range
14377   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14378   wglFreeMemoryNV: TwglFreeMemoryNV;
14379
14380   // WGL_NV_present_video
14381   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14382   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14383   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14384
14385   // WGL_NV_video_output
14386   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14387   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14388   wglBindVideoImageNV: TwglBindVideoImageNV;
14389   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14390   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14391   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14392
14393   // WGL_NV_swap_group
14394   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14395   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14396   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14397   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14398   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14399   wglResetFrameCountNV: TwglResetFrameCountNV;
14400
14401   // WGL_NV_gpu_affinity
14402   wglEnumGpusNV: TwglEnumGpusNV;
14403   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14404   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14405   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14406   wglDeleteDCNV: TwglDeleteDCNV;
14407
14408   // WGL_NV_video_capture
14409   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14410   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14411   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14412   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14413   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14414
14415   // WGL_NV_copy_image
14416   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14417
14418   // WGL_NV_DX_interop
14419   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14420   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14421   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14422   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14423   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14424   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14425   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14426   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14427
14428   // WGL_OML_sync_control
14429   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14430   wglGetMscRateOML: TwglGetMscRateOML;
14431   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14432   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14433   wglWaitForMscOML: TwglWaitForMscOML;
14434   wglWaitForSbcOML: TwglWaitForSbcOML;
14435
14436   // WGL_3DL_stereo_control
14437   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14438
14439   // WIN_draw_range_elements
14440   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14441
14442   // WIN_swap_hint
14443   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14444 {$ENDIF}
14445
14446 {$IFDEF DGL_LINUX}
14447   glXChooseVisual: TglXChooseVisual;
14448   glXCopyContext: TglXCopyContext;
14449   glXCreateContext: TglXCreateContext;
14450   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14451   glXDestroyContext: TglXDestroyContext;
14452   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14453   glXGetConfig: TglXGetConfig;
14454   glXGetCurrentContext: TglXGetCurrentContext;
14455   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14456   glXIsDirect: TglXIsDirect;
14457   glXMakeCurrent: TglXMakeCurrent;
14458   glXQueryExtension: TglXQueryExtension;
14459   glXQueryVersion: TglXQueryVersion;
14460   glXSwapBuffers: TglXSwapBuffers;
14461   glXUseXFont: TglXUseXFont;
14462   glXWaitGL: TglXWaitGL;
14463   glXWaitX: TglXWaitX;
14464
14465   glXGetClientString: TglXGetClientString;
14466   glXQueryServerString: TglXQueryServerString;
14467   glXQueryExtensionsString: TglXQueryExtensionsString;
14468
14469   // GLX_VERSION_1_3
14470   glXGetFBConfigs: TglXGetFBConfigs;
14471   glXChooseFBConfig: TglXChooseFBConfig;
14472   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14473   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14474   glXCreateWindow: TglXCreateWindow;
14475   glXDestroyWindow: TglXDestroyWindow;
14476   glXCreatePixmap: TglXCreatePixmap;
14477
14478   glXDestroyPixmap: TglXDestroyPixmap;
14479   glXCreatePbuffer: TglXCreatePbuffer;
14480   glXDestroyPbuffer: TglXDestroyPbuffer;
14481   glXQueryDrawable: TglXQueryDrawable;
14482   glXCreateNewContext: TglXCreateNewContext;
14483   glXMakeContextCurrent: TglXMakeContextCurrent;
14484   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14485   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14486
14487   glXQueryContext: TglXQueryContext;
14488   glXSelectEvent: TglXSelectEvent;
14489   glXGetSelectedEvent: TglXGetSelectedEvent;
14490
14491   // GLX_VERSION_1_4
14492   glXGetProcAddress: TglXGetProcAddress;
14493
14494   // GLX_ARB_get_proc_address
14495   glXGetProcAddressARB: TglXGetProcAddressARB;
14496
14497   // GLX_ARB_create_context
14498   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14499
14500   // GLX_EXT_import_context
14501   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14502   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14503   glXGetContextIDEXT: TglXGetContextIDEXT;
14504   glXImportContextEXT: TglXImportContextEXT;
14505   glXFreeContextEXT: TglXFreeContextEXT;
14506
14507   // GLX_EXT_texture_from_pixmap
14508   glXBindTexImageEXT: TglXBindTexImageEXT;
14509   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14510
14511   glXSwapIntervalEXT : TglXSwapIntervalEXT;
14512 {$ENDIF}
14513
14514   // GL utility functions and procedures
14515   gluErrorString: TgluErrorString;
14516   gluGetString: TgluGetString;
14517   gluOrtho2D: TgluOrtho2D;
14518   gluPerspective: TgluPerspective;
14519   gluPickMatrix: TgluPickMatrix;
14520   gluLookAt: TgluLookAt;
14521   gluProject: TgluProject;
14522   gluUnProject: TgluUnProject;
14523   gluScaleImage: TgluScaleImage;
14524   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14525   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14526   gluNewQuadric: TgluNewQuadric;
14527   gluDeleteQuadric: TgluDeleteQuadric;
14528   gluQuadricNormals: TgluQuadricNormals;
14529   gluQuadricTexture: TgluQuadricTexture;
14530   gluQuadricOrientation: TgluQuadricOrientation;
14531   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14532   gluCylinder: TgluCylinder;
14533   gluDisk: TgluDisk;
14534   gluPartialDisk: TgluPartialDisk;
14535   gluSphere: TgluSphere;
14536   gluQuadricCallback: TgluQuadricCallback;
14537   gluNewTess: TgluNewTess;
14538   gluDeleteTess: TgluDeleteTess;
14539   gluTessBeginPolygon: TgluTessBeginPolygon;
14540   gluTessBeginContour: TgluTessBeginContour;
14541   gluTessVertex: TgluTessVertex;
14542   gluTessEndContour: TgluTessEndContour;
14543   gluTessEndPolygon: TgluTessEndPolygon;
14544   gluTessProperty: TgluTessProperty;
14545   gluTessNormal: TgluTessNormal;
14546   gluTessCallback: TgluTessCallback;
14547   gluGetTessProperty: TgluGetTessProperty;
14548   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14549   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14550   gluBeginSurface: TgluBeginSurface;
14551   gluBeginCurve: TgluBeginCurve;
14552   gluEndCurve: TgluEndCurve;
14553   gluEndSurface: TgluEndSurface;
14554   gluBeginTrim: TgluBeginTrim;
14555   gluEndTrim: TgluEndTrim;
14556   gluPwlCurve: TgluPwlCurve;
14557   gluNurbsCurve: TgluNurbsCurve;
14558   gluNurbsSurface: TgluNurbsSurface;
14559   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14560   gluNurbsProperty: TgluNurbsProperty;
14561   gluGetNurbsProperty: TgluGetNurbsProperty;
14562   gluNurbsCallback: TgluNurbsCallback;
14563   gluBeginPolygon: TgluBeginPolygon;
14564   gluNextContour: TgluNextContour;
14565   gluEndPolygon: TgluEndPolygon;
14566
14567
14568 type
14569   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14570
14571 var
14572   GL_LibHandle: Pointer = nil;
14573   GLU_LibHandle: Pointer = nil;
14574
14575   LastPixelFormat: Integer;
14576   ExtensionsRead: Boolean;
14577   ImplementationRead: Boolean;
14578
14579
14580 const
14581 {$IFDEF DGL_WIN}
14582   OPENGL_LIBNAME = 'OpenGL32.dll';
14583   GLU_LIBNAME = 'GLU32.dll';
14584 {$ELSE}
14585   {$IFDEF darwin}
14586     OPENGL_LIBNAME = 'libGL.dylib';
14587     GLU_LIBNAME = 'libGLU.dylib';
14588   {$ELSE}
14589     OPENGL_LIBNAME = 'libGL.so.1';
14590     GLU_LIBNAME = 'libGLU.so.1';
14591   {$ENDIF}
14592 {$ENDIF}
14593
14594 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14595
14596 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14597 function dglCheckExtension(Extension: AnsiString): Boolean;
14598
14599 procedure ReadExtensions;
14600 procedure ReadImplementationProperties;
14601
14602 // =============================================================================
14603 // Helper-Functions
14604 // =============================================================================
14605 {$IFDEF DGL_WIN}
14606   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14607   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14608   procedure DestroyRenderingContext(RC: HGLRC);
14609
14610   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14611   procedure DeactivateRenderingContext;
14612 {$ENDIF}
14613
14614
14615 procedure ReadOpenGLCore;
14616 procedure Read_GL_3DFX_tbuffer;
14617 procedure Read_GL_APPLE_element_array;
14618 procedure Read_GL_APPLE_fence;
14619 procedure Read_GL_APPLE_vertex_array_object;
14620 procedure Read_GL_APPLE_vertex_array_range;
14621 procedure Read_GL_APPLE_texture_range;
14622 procedure Read_GL_APPLE_vertex_program_evaluators;
14623 procedure Read_GL_APPLE_object_purgeable;
14624 procedure Read_GL_ARB_matrix_palette;
14625 procedure Read_GL_ARB_multitexture;
14626 procedure Read_GL_ARB_point_parameters;
14627 procedure Read_GL_ARB_texture_compression;
14628 procedure Read_GL_ARB_transpose_matrix;
14629 procedure Read_GL_ARB_vertex_blend;
14630 procedure Read_GL_ARB_vertex_buffer_object;
14631 procedure Read_GL_ARB_vertex_program;
14632 procedure Read_GL_ARB_window_pos;
14633 procedure Read_GL_ARB_color_buffer_float;
14634 procedure Read_GL_ARB_Shader_Objects;
14635 procedure Read_GL_ARB_occlusion_query;
14636 procedure Read_GL_ARB_draw_instanced;
14637 procedure Read_GL_ARB_framebuffer_object;
14638 procedure Read_GL_ARB_geometry_shader4;
14639 procedure Read_GL_ARB_instanced_arrays;
14640 procedure Read_GL_ARB_map_buffer_range;
14641 procedure Read_GL_ARB_texture_buffer_object;
14642 procedure Read_GL_ARB_vertex_array_object;
14643 procedure Read_GL_ARB_uniform_buffer_object;
14644 procedure Read_GL_ARB_copy_buffer;
14645 procedure Read_GL_ARB_draw_elements_base_vertex;
14646 procedure Read_GL_ARB_provoking_vertex;
14647 procedure Read_GL_ARB_sync;
14648 procedure Read_GL_ARB_texture_multisample;
14649 procedure Read_GL_ARB_draw_buffers_blend;
14650 procedure Read_GL_ARB_sample_shading;
14651 procedure Read_GL_ARB_shading_language_include;
14652 procedure Read_GL_ARB_blend_func_extended;
14653 procedure Read_GL_ARB_sampler_objects;
14654 procedure Read_GL_ARB_timer_query;
14655 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14656 procedure Read_GL_ARB_draw_indirect;
14657 procedure Read_GL_ARB_gpu_shader_fp64;
14658 procedure Read_GL_ARB_shader_subroutine;
14659 procedure Read_GL_ARB_tessellation_shader;
14660 procedure Read_GL_ARB_transform_feedback2;
14661 procedure Read_GL_ARB_transform_feedback3;
14662 procedure Read_GL_ARB_ES2_compatibility;
14663 procedure Read_GL_ARB_get_program_binary;
14664 procedure Read_GL_ARB_separate_shader_objects;
14665 procedure Read_GL_ARB_vertex_attrib_64bit;
14666 procedure Read_GL_ARB_viewport_array;
14667 // GL 4.2
14668 procedure Read_GL_ARB_base_instance;
14669 procedure Read_GL_ARB_transform_feedback_instanced;
14670 procedure Read_GL_ARB_internalformat_query;
14671 procedure Read_GL_ARB_shader_atomic_counters;
14672 procedure Read_GL_ARB_shader_image_load_store;
14673 procedure Read_GL_ARB_texture_storage;
14674 // GL 4.3
14675 procedure Read_GL_KHR_debug;
14676 procedure Read_GL_ARB_clear_buffer_object;
14677 procedure Read_GL_ARB_compute_shader;
14678 procedure Read_GL_ARB_copy_image;
14679 procedure Read_GL_ARB_framebuffer_no_attachments;
14680 procedure Read_GL_ARB_internalformat_query2;
14681 procedure Read_GL_ARB_invalidate_subdata;
14682 procedure Read_GL_ARB_multi_draw_indirect;
14683 procedure Read_GL_ARB_program_interface_query;
14684 procedure Read_GL_ARB_shader_storage_buffer_object;
14685 procedure Read_GL_ARB_texture_buffer_range;
14686 procedure Read_GL_ARB_texture_storage_multisample;
14687 procedure Read_GL_ARB_texture_view;
14688 procedure Read_GL_ARB_vertex_attrib_binding;
14689
14690
14691 procedure Read_GL_4_4;
14692 procedure Read_GL_4_5;
14693
14694 //
14695 procedure Read_GL_ARB_cl_event;
14696 procedure Read_GL_ARB_compute_variable_group_size;
14697 procedure Read_GL_ARB_debug_output;
14698 procedure Read_GL_ARB_robustness;
14699 procedure Read_GL_ATI_draw_buffers;
14700 procedure Read_GL_ATI_element_array;
14701 procedure Read_GL_ATI_envmap_bumpmap;
14702 procedure Read_GL_ATI_fragment_shader;
14703 procedure Read_GL_ATI_map_object_buffer;
14704 procedure Read_GL_ATI_pn_triangles;
14705 procedure Read_GL_ATI_separate_stencil;
14706 procedure Read_GL_ATI_vertex_array_object;
14707 procedure Read_GL_ATI_vertex_attrib_array_object;
14708 procedure Read_GL_ATI_vertex_streams;
14709 procedure Read_GL_AMD_performance_monitor;
14710 procedure Read_GL_AMD_vertex_shader_tesselator;
14711 procedure Read_GL_AMD_draw_buffers_blend;
14712 procedure Read_GL_AMD_name_gen_delete;
14713 procedure Read_GL_AMD_debug_output;
14714 procedure Read_GL_EXT_blend_color;
14715 procedure Read_GL_EXT_blend_func_separate;
14716 procedure Read_GL_EXT_blend_minmax;
14717 procedure Read_GL_EXT_color_subtable;
14718 procedure Read_GL_EXT_compiled_vertex_array;
14719 procedure Read_GL_EXT_convolution;
14720 procedure Read_GL_EXT_coordinate_frame;
14721 procedure Read_GL_EXT_copy_texture;
14722 procedure Read_GL_EXT_cull_vertex;
14723 procedure Read_GL_EXT_draw_range_elements;
14724 procedure Read_GL_EXT_fog_coord;
14725 procedure Read_GL_EXT_framebuffer_object;
14726 procedure Read_GL_EXT_histogram;
14727 procedure Read_GL_EXT_index_func;
14728 procedure Read_GL_EXT_index_material;
14729 procedure Read_GL_EXT_multi_draw_arrays;
14730 procedure Read_GL_EXT_multisample;
14731 procedure Read_GL_EXT_paletted_texture;
14732 procedure Read_GL_EXT_pixel_transform;
14733 procedure Read_GL_EXT_point_parameters;
14734 procedure Read_GL_EXT_polygon_offset;
14735 procedure Read_GL_EXT_secondary_color;
14736 procedure Read_GL_EXT_stencil_two_side;
14737 procedure Read_GL_EXT_subtexture;
14738 procedure Read_GL_EXT_texture3D;
14739 procedure Read_GL_EXT_texture_object;
14740 procedure Read_GL_EXT_texture_perturb_normal;
14741 procedure Read_GL_EXT_vertex_array;
14742 procedure Read_GL_EXT_vertex_shader;
14743 procedure Read_GL_EXT_vertex_weighting;
14744 procedure Read_GL_EXT_depth_bounds_test;
14745 procedure Read_GL_EXT_blend_equation_separate;
14746 procedure Read_GL_EXT_stencil_clear_tag;
14747 procedure Read_GL_EXT_framebuffer_blit;
14748 procedure Read_GL_EXT_framebuffer_multisample;
14749 procedure Read_GL_EXT_timer_query;
14750 procedure Read_GL_EXT_gpu_program_parameters;
14751 procedure Read_GL_EXT_bindable_uniform;
14752 procedure Read_GL_EXT_draw_buffers2;
14753 procedure Read_GL_EXT_draw_instanced;
14754 procedure Read_GL_EXT_geometry_shader4;
14755 procedure Read_GL_EXT_gpu_shader4;
14756 procedure Read_GL_EXT_texture_array;
14757 procedure Read_GL_EXT_texture_buffer_object;
14758 procedure Read_GL_EXT_texture_integer;
14759 procedure Read_GL_EXT_transform_feedback;
14760 procedure Read_GL_EXT_direct_state_access;
14761 procedure Read_GL_EXT_separate_shader_objects;
14762 procedure Read_GL_EXT_shader_image_load_store;
14763 procedure Read_GL_EXT_vertex_attrib_64bit;
14764 procedure Read_GL_HP_image_transform;
14765 procedure Read_GL_IBM_multimode_draw_arrays;
14766 procedure Read_GL_IBM_vertex_array_lists;
14767 procedure Read_GL_INGR_blend_func_separate;
14768 procedure Read_GL_INTEL_parallel_arrays;
14769 procedure Read_GL_MESA_resize_buffers;
14770 procedure Read_GL_MESA_window_pos;
14771 procedure Read_GL_NV_evaluators;
14772 procedure Read_GL_NV_fence;
14773 procedure Read_GL_NV_fragment_program;
14774 procedure Read_GL_NV_half_float;
14775 procedure Read_GL_NV_occlusion_query;
14776 procedure Read_GL_NV_pixel_data_range;
14777 procedure Read_GL_NV_point_sprite;
14778 procedure Read_GL_NV_primitive_restart;
14779 procedure Read_GL_NV_register_combiners;
14780 procedure Read_GL_NV_register_combiners2;
14781 procedure Read_GL_NV_vertex_array_range;
14782 procedure Read_GL_NV_vertex_program;
14783 procedure Read_GL_NV_depth_buffer_float;
14784 procedure Read_GL_NV_framebuffer_multisample_coverage;
14785 procedure Read_GL_NV_geometry_program4;
14786 procedure Read_GL_NV_gpu_program4;
14787 procedure Read_GL_NV_parameter_buffer_object;
14788 procedure Read_GL_NV_transform_feedback;
14789 procedure Read_GL_NV_conditional_render;
14790 procedure Read_GL_NV_present_video;
14791 procedure Read_GL_NV_explicit_multisample;
14792 procedure Read_GL_NV_transform_feedback2;
14793 procedure Read_GL_NV_video_capture;
14794 procedure Read_GL_NV_copy_image;
14795 procedure Read_GL_NV_shader_buffer_load;
14796 procedure Read_GL_NV_vertex_buffer_unified_memory;
14797 procedure Read_GL_NV_gpu_program5;
14798 procedure Read_GL_NV_gpu_shader5;
14799 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14800 procedure Read_GL_NV_vdpau_interop;
14801 procedure Read_GL_NV_texture_barrier;
14802 procedure Read_GL_PGI_misc_hints;
14803 procedure Read_GL_SGIS_detail_texture;
14804 procedure Read_GL_SGIS_fog_function;
14805 procedure Read_GL_SGIS_multisample;
14806 procedure Read_GL_SGIS_pixel_texture;
14807 procedure Read_GL_SGIS_point_parameters;
14808 procedure Read_GL_SGIS_sharpen_texture;
14809 procedure Read_GL_SGIS_texture4D;
14810 procedure Read_GL_SGIS_texture_color_mask;
14811 procedure Read_GL_SGIS_texture_filter4;
14812 procedure Read_GL_SGIX_async;
14813 procedure Read_GL_SGIX_flush_raster;
14814 procedure Read_GL_SGIX_fragment_lighting;
14815 procedure Read_GL_SGIX_framezoom;
14816 procedure Read_GL_SGIX_igloo_interface;
14817 procedure Read_GL_SGIX_instruments;
14818 procedure Read_GL_SGIX_list_priority;
14819 procedure Read_GL_SGIX_pixel_texture;
14820 procedure Read_GL_SGIX_polynomial_ffd;
14821 procedure Read_GL_SGIX_reference_plane;
14822 procedure Read_GL_SGIX_sprite;
14823 procedure Read_GL_SGIX_tag_sample_buffer;
14824 procedure Read_GL_SGI_color_table;
14825 procedure Read_GL_SUNX_constant_data;
14826 procedure Read_GL_SUN_global_alpha;
14827 procedure Read_GL_SUN_mesh_array;
14828 procedure Read_GL_SUN_triangle_list;
14829 procedure Read_GL_SUN_vertex;
14830
14831 {$IFDEF DGL_WIN}
14832 procedure Read_WGL_ARB_buffer_region;
14833 procedure Read_WGL_ARB_extensions_string;
14834 procedure Read_WGL_ARB_make_current_read;
14835 procedure Read_WGL_ARB_pbuffer;
14836 procedure Read_WGL_ARB_pixel_format;
14837 procedure Read_WGL_ARB_pixel_format_float;
14838 procedure Read_WGL_ARB_render_texture;
14839 procedure Read_WGL_ARB_create_context;
14840 procedure Read_WGL_AMD_gpu_association;
14841 procedure Read_WGL_EXT_display_color_table;
14842 procedure Read_WGL_EXT_extensions_string;
14843 procedure Read_WGL_EXT_make_current_read;
14844 procedure Read_WGL_EXT_pbuffer;
14845 procedure Read_WGL_EXT_pixel_format;
14846 procedure Read_WGL_EXT_swap_control;
14847 procedure Read_WGL_I3D_digital_video_control;
14848 procedure Read_WGL_I3D_gamma;
14849 procedure Read_WGL_I3D_genlock;
14850 procedure Read_WGL_I3D_image_buffer;
14851 procedure Read_WGL_I3D_swap_frame_lock;
14852 procedure Read_WGL_I3D_swap_frame_usage;
14853 procedure Read_WGL_NV_vertex_array_range;
14854 procedure Read_WGL_NV_present_video;
14855 procedure Read_WGL_NV_video_output;
14856 procedure Read_WGL_NV_swap_group;
14857 procedure Read_WGL_NV_gpu_affinity;
14858 procedure Read_WGL_NV_video_capture;
14859 procedure Read_WGL_NV_copy_image;
14860 procedure Read_WGL_OML_sync_control;
14861 procedure Read_WGL_3DL_stereo_control;
14862
14863 procedure Read_WIN_draw_range_elements;
14864 procedure Read_WIN_swap_hint;
14865 {$ENDIF}
14866
14867
14868 implementation
14869
14870
14871 {$IFDEF DGL_LINUX}
14872 const
14873   RTLD_LAZY = $001;
14874   RTLD_NOW = $002;
14875   RTLD_BINDING_MASK = $003;
14876
14877   // Seems to work on Debian / Fedora
14878   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14879
14880 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14881 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14882
14883 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14884 {$ENDIF}
14885
14886 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14887 const
14888   RTLD_DEFAULT = Pointer(-2);
14889 {$ENDIF}{$ENDIF}
14890
14891 function dglLoadLibrary(Name: PChar): Pointer;
14892 begin
14893   {$IFDEF DGL_WIN}
14894   Result := Pointer(LoadLibrary(Name));
14895   {$ENDIF}
14896
14897   {$IFDEF DGL_LINUX}
14898   Result := dlopen(Name, RTLD_LAZY);
14899   {$ENDIF}
14900
14901   {$IFDEF DGL_MAC}
14902   {$IFDEF OPENGL_FRAMEWORK}
14903   Result := RTLD_DEFAULT;
14904   {$ELSE}
14905   Result := Pointer(LoadLibrary(Name));
14906   {$ENDIF}
14907   {$ENDIF}
14908 end;
14909
14910
14911 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14912 begin
14913   if LibHandle = nil then
14914     Result := False
14915   else
14916     {$IFDEF DGL_WIN}
14917     Result := FreeLibrary(HMODULE(LibHandle));
14918     {$ENDIF}
14919
14920     {$IFDEF DGL_LINUX}
14921     Result := dlclose(LibHandle) = 0;
14922     {$ENDIF}
14923
14924     {$IFDEF DGL_MAC}
14925     {$IFDEF OPENGL_FRAMEWORK}
14926         Result := true;
14927         {$ELSE}
14928     Result := FreeLibrary(HMODULE(LibHandle));
14929     {$ENDIF}
14930         {$ENDIF}
14931 end;
14932
14933
14934 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14935 begin
14936   if LibHandle = nil then
14937     LibHandle := GL_LibHandle;
14938
14939
14940   {$IFDEF DGL_WIN}
14941     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14942
14943     if result <> nil then
14944       exit;
14945
14946     if Addr(wglGetProcAddress) <> nil then
14947       Result := wglGetProcAddress(ProcName);
14948   {$ENDIF}
14949
14950   {$IFDEF DGL_LINUX}
14951     if not ForceDLSym then begin
14952       if Addr(glXGetProcAddress) <> nil then
14953         Result := glXGetProcAddress(ProcName);
14954
14955       if result <> nil then
14956         exit;
14957
14958       if Addr(glXGetProcAddressARB) <> nil then
14959         Result := glXGetProcAddressARB(ProcName);
14960
14961       if result <> nil then
14962         exit;
14963     end;
14964
14965     Result := dlsym(LibHandle, ProcName);
14966   {$ENDIF}
14967
14968   {$IFDEF DGL_MAC}
14969     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14970   {$ENDIF}
14971 end;
14972
14973
14974 function Int_GetExtensionString: AnsiString;
14975 var
14976         ExtensionCount : GLuint;
14977   i : Integer;
14978 begin
14979   if GL_VERSION_3_0
14980     then
14981       begin
14982         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14983         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14984
14985         result := '';
14986
14987         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14988           then
14989             begin
14990               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14991
14992               For I := 0 to extensionCount - 1 do
14993                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14994             end;
14995       end
14996     else
14997       begin
14998         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
14999
15000         if Assigned(@glGetString)
15001           then result := glGetString(GL_EXTENSIONS)
15002           else result := '';
15003       end;
15004
15005   if (GL_LibHandle <> nil) then begin
15006     {$IFDEF DGL_WIN}
15007       // wglGetExtensionsStringEXT
15008       if not Assigned(@wglGetExtensionsStringEXT) then
15009         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
15010
15011       if Assigned(@wglGetExtensionsStringEXT) then
15012         Result := Result + #32 + wglGetExtensionsStringEXT;
15013
15014       // wglGetExtensionsStringARB
15015       if not Assigned(@wglGetExtensionsStringARB) then
15016         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
15017
15018       if Assigned(@wglGetExtensionsStringARB) then
15019         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
15020     {$ENDIF}
15021   end;
15022
15023   Result := #32 + Result + #32;
15024 end;
15025
15026
15027 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
15028 begin
15029   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
15030 end;
15031
15032
15033 function dglCheckExtension(Extension: AnsiString): Boolean;
15034 var
15035   Extensions: AnsiString;
15036 begin
15037   Extensions := Int_GetExtensionString;
15038   Result := Int_CheckExtension(Extensions, Extension);
15039 end;
15040
15041
15042
15043 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
15044 begin
15045   Result := False;
15046
15047   // free opened libraries
15048   if GL_LibHandle <> nil then
15049     dglFreeLibrary(GL_LibHandle);
15050
15051   if GLU_LibHandle <> nil then
15052     dglFreeLibrary(GLU_LibHandle);
15053
15054   // load library
15055   GL_LibHandle := dglLoadLibrary(PChar(LibName));
15056   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
15057
15058   // load GL functions
15059   if (GL_LibHandle <> nil) then begin
15060     {$IFDEF DGL_WIN}
15061       wglCopyContext := dglGetProcAddress('wglCopyContext');
15062       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15063       wglCreateContext := dglGetProcAddress('wglCreateContext');
15064       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15065       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15066       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15067       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15068       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15069       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15070       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15071       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15072       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15073       wglShareLists := dglGetProcAddress('wglShareLists');
15074       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15075       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15076       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15077       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15078       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15079       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15080       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15081       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15082     {$ENDIF}
15083
15084     {$IFDEF DGL_LINUX}
15085       // GLX_VERSION_1_4 (needs to be first)
15086       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15087
15088       // GLX_ARB_get_proc_address  (also needs to be first)
15089       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15090
15091       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15092       glXCopyContext := dglGetProcAddress('glXCopyContext');
15093       glXCreateContext := dglGetProcAddress('glXCreateContext');
15094       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15095       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15096       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15097       glXGetConfig := dglGetProcAddress('glXGetConfig');
15098       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15099       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15100       glXIsDirect := dglGetProcAddress('glXIsDirect');
15101       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15102       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15103       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15104       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15105       glXUseXFont := dglGetProcAddress('glXUseXFont');
15106       glXWaitGL := dglGetProcAddress('glXWaitGL');
15107       glXWaitX := dglGetProcAddress('glXWaitX');
15108
15109       glXGetClientString := dglGetProcAddress('glXGetClientString');
15110       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15111       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15112
15113       // GLX_VERSION_1_3
15114       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15115       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15116       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15117       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15118       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15119       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15120       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15121
15122       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15123       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15124       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15125       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15126       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15127       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15128       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15129       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15130
15131       glXQueryContext := dglGetProcAddress('glXQueryContext');
15132       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15133       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15134
15135       // GLX_ARB_create_context
15136       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15137
15138       // GLX_EXT_import_context
15139       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15140       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15141       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15142       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15143       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15144
15145       // GLX_EXT_texture_from_pixmap
15146       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15147       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15148
15149       glXSwapIntervalEXT := dglGetProcAddress('glXSwapIntervalEXT');
15150     {$ENDIF}
15151
15152     Result := True;
15153   end;
15154
15155   // load GLU functions
15156   if GLU_LibHandle <> nil then begin
15157     // GLU ========================================================================
15158     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15159     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15160     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15161     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15162     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15163     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15164     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15165     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15166     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15167     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15168     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15169     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15170     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15171     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15172     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15173     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15174     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15175     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15176     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15177     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15178     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15179     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15180     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15181     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15182     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15183     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15184     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15185     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15186     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15187     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15188     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15189     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15190     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15191     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15192     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15193     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15194     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15195     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15196     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15197     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15198     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15199     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15200     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15201     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15202     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15203     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15204     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15205     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15206     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15207     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15208     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15209   end;
15210 end;
15211
15212 procedure ReadOpenGLCore;
15213 begin
15214   // GL_VERSION_1_0
15215   glCullFace := dglGetProcAddress('glCullFace');
15216   glFrontFace := dglGetProcAddress('glFrontFace');
15217   glHint := dglGetProcAddress('glHint');
15218   glLineWidth := dglGetProcAddress('glLineWidth');
15219   glPointSize := dglGetProcAddress('glPointSize');
15220   glPolygonMode := dglGetProcAddress('glPolygonMode');
15221   glScissor := dglGetProcAddress('glScissor');
15222   glTexParameterf := dglGetProcAddress('glTexParameterf');
15223   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15224   glTexParameteri := dglGetProcAddress('glTexParameteri');
15225   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15226   glTexImage1D := dglGetProcAddress('glTexImage1D');
15227   glTexImage2D := dglGetProcAddress('glTexImage2D');
15228   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15229   glClear := dglGetProcAddress('glClear');
15230   glClearColor := dglGetProcAddress('glClearColor');
15231   glClearStencil := dglGetProcAddress('glClearStencil');
15232   glClearDepth := dglGetProcAddress('glClearDepth');
15233   glStencilMask := dglGetProcAddress('glStencilMask');
15234   glColorMask := dglGetProcAddress('glColorMask');
15235   glDepthMask := dglGetProcAddress('glDepthMask');
15236   glDisable := dglGetProcAddress('glDisable');
15237   glEnable := dglGetProcAddress('glEnable');
15238   glFinish := dglGetProcAddress('glFinish');
15239   glFlush := dglGetProcAddress('glFlush');
15240   glBlendFunc := dglGetProcAddress('glBlendFunc');
15241   glLogicOp := dglGetProcAddress('glLogicOp');
15242   glStencilFunc := dglGetProcAddress('glStencilFunc');
15243   glStencilOp := dglGetProcAddress('glStencilOp');
15244   glDepthFunc := dglGetProcAddress('glDepthFunc');
15245   glPixelStoref := dglGetProcAddress('glPixelStoref');
15246   glPixelStorei := dglGetProcAddress('glPixelStorei');
15247   glReadBuffer := dglGetProcAddress('glReadBuffer');
15248   glReadPixels := dglGetProcAddress('glReadPixels');
15249   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15250   glGetDoublev := dglGetProcAddress('glGetDoublev');
15251   glGetError := dglGetProcAddress('glGetError');
15252   glGetFloatv := dglGetProcAddress('glGetFloatv');
15253   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15254   glGetString := dglGetProcAddress('glGetString');
15255   glGetTexImage := dglGetProcAddress('glGetTexImage');
15256   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15257   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15258   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15259   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15260   glIsEnabled := dglGetProcAddress('glIsEnabled');
15261   glDepthRange := dglGetProcAddress('glDepthRange');
15262   glViewport := dglGetProcAddress('glViewport');
15263
15264   // GL_VERSION_1_1
15265   glDrawArrays := dglGetProcAddress('glDrawArrays');
15266   glDrawElements := dglGetProcAddress('glDrawElements');
15267   glGetPointerv := dglGetProcAddress('glGetPointerv');
15268   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15269   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15270   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15271   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15272   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15273   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15274   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15275   glBindTexture := dglGetProcAddress('glBindTexture');
15276   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15277   glGenTextures := dglGetProcAddress('glGenTextures');
15278
15279 {$ifdef DGL_DEPRECATED}
15280   glAccum := dglGetProcAddress('glAccum');
15281   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15282   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15283   glArrayElement := dglGetProcAddress('glArrayElement');
15284   glBegin := dglGetProcAddress('glBegin');
15285   glBitmap := dglGetProcAddress('glBitmap');
15286   glCallList := dglGetProcAddress('glCallList');
15287   glCallLists := dglGetProcAddress('glCallLists');
15288   glClearAccum := dglGetProcAddress('glClearAccum');
15289   glClearIndex := dglGetProcAddress('glClearIndex');
15290   glClipPlane := dglGetProcAddress('glClipPlane');
15291   glColor3b := dglGetProcAddress('glColor3b');
15292   glColor3bv := dglGetProcAddress('glColor3bv');
15293   glColor3d := dglGetProcAddress('glColor3d');
15294   glColor3dv := dglGetProcAddress('glColor3dv');
15295   glColor3f := dglGetProcAddress('glColor3f');
15296   glColor3fv := dglGetProcAddress('glColor3fv');
15297   glColor3i := dglGetProcAddress('glColor3i');
15298   glColor3iv := dglGetProcAddress('glColor3iv');
15299   glColor3s := dglGetProcAddress('glColor3s');
15300   glColor3sv := dglGetProcAddress('glColor3sv');
15301   glColor3ub := dglGetProcAddress('glColor3ub');
15302   glColor3ubv := dglGetProcAddress('glColor3ubv');
15303   glColor3ui := dglGetProcAddress('glColor3ui');
15304   glColor3uiv := dglGetProcAddress('glColor3uiv');
15305   glColor3us := dglGetProcAddress('glColor3us');
15306   glColor3usv := dglGetProcAddress('glColor3usv');
15307   glColor4b := dglGetProcAddress('glColor4b');
15308   glColor4bv := dglGetProcAddress('glColor4bv');
15309   glColor4d := dglGetProcAddress('glColor4d');
15310   glColor4dv := dglGetProcAddress('glColor4dv');
15311   glColor4f := dglGetProcAddress('glColor4f');
15312   glColor4fv := dglGetProcAddress('glColor4fv');
15313   glColor4i := dglGetProcAddress('glColor4i');
15314   glColor4iv := dglGetProcAddress('glColor4iv');
15315   glColor4s := dglGetProcAddress('glColor4s');
15316   glColor4sv := dglGetProcAddress('glColor4sv');
15317   glColor4ub := dglGetProcAddress('glColor4ub');
15318   glColor4ubv := dglGetProcAddress('glColor4ubv');
15319   glColor4ui := dglGetProcAddress('glColor4ui');
15320   glColor4uiv := dglGetProcAddress('glColor4uiv');
15321   glColor4us := dglGetProcAddress('glColor4us');
15322   glColor4usv := dglGetProcAddress('glColor4usv');
15323   glColorMaterial := dglGetProcAddress('glColorMaterial');
15324   glColorPointer := dglGetProcAddress('glColorPointer');
15325   glCopyPixels := dglGetProcAddress('glCopyPixels');
15326   glDeleteLists := dglGetProcAddress('glDeleteLists');
15327   glDisableClientState := dglGetProcAddress('glDisableClientState');
15328   glDrawPixels := dglGetProcAddress('glDrawPixels');
15329   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15330   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15331   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15332   glEnableClientState := dglGetProcAddress('glEnableClientState');
15333   glEnd := dglGetProcAddress('glEnd');
15334   glEndList := dglGetProcAddress('glEndList');
15335   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15336   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15337   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15338   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15339   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15340   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15341   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15342   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15343   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15344   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15345   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15346   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15347   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15348   glFogf := dglGetProcAddress('glFogf');
15349   glFogfv := dglGetProcAddress('glFogfv');
15350   glFogi := dglGetProcAddress('glFogi');
15351   glFogiv := dglGetProcAddress('glFogiv');
15352   glFrustum := dglGetProcAddress('glFrustum');
15353   glGenLists := dglGetProcAddress('glGenLists');
15354   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15355   glGetLightfv := dglGetProcAddress('glGetLightfv');
15356   glGetLightiv := dglGetProcAddress('glGetLightiv');
15357   glGetMapdv := dglGetProcAddress('glGetMapdv');
15358   glGetMapfv := dglGetProcAddress('glGetMapfv');
15359   glGetMapiv := dglGetProcAddress('glGetMapiv');
15360   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15361   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15362   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15363   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15364   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15365   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15366   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15367   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15368   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15369   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15370   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15371   glIndexMask := dglGetProcAddress('glIndexMask');
15372   glIndexPointer := dglGetProcAddress('glIndexPointer');
15373   glIndexd := dglGetProcAddress('glIndexd');
15374   glIndexdv := dglGetProcAddress('glIndexdv');
15375   glIndexf := dglGetProcAddress('glIndexf');
15376   glIndexfv := dglGetProcAddress('glIndexfv');
15377   glIndexi := dglGetProcAddress('glIndexi');
15378   glIndexiv := dglGetProcAddress('glIndexiv');
15379   glIndexs := dglGetProcAddress('glIndexs');
15380   glIndexsv := dglGetProcAddress('glIndexsv');
15381   glIndexub := dglGetProcAddress('glIndexub');
15382   glIndexubv := dglGetProcAddress('glIndexubv');
15383   glInitNames := dglGetProcAddress('glInitNames');
15384   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15385   glIsList := dglGetProcAddress('glIsList');
15386   glIsTexture := dglGetProcAddress('glIsTexture');
15387   glLightModelf := dglGetProcAddress('glLightModelf');
15388   glLightModelfv := dglGetProcAddress('glLightModelfv');
15389   glLightModeli := dglGetProcAddress('glLightModeli');
15390   glLightModeliv := dglGetProcAddress('glLightModeliv');
15391   glLightf := dglGetProcAddress('glLightf');
15392   glLightfv := dglGetProcAddress('glLightfv');
15393   glLighti := dglGetProcAddress('glLighti');
15394   glLightiv := dglGetProcAddress('glLightiv');
15395   glLineStipple := dglGetProcAddress('glLineStipple');
15396   glListBase := dglGetProcAddress('glListBase');
15397   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15398   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15399   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15400   glLoadName := dglGetProcAddress('glLoadName');
15401   glMap1d := dglGetProcAddress('glMap1d');
15402   glMap1f := dglGetProcAddress('glMap1f');
15403   glMap2d := dglGetProcAddress('glMap2d');
15404   glMap2f := dglGetProcAddress('glMap2f');
15405   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15406   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15407   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15408   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15409   glMaterialf := dglGetProcAddress('glMaterialf');
15410   glMaterialfv := dglGetProcAddress('glMaterialfv');
15411   glMateriali := dglGetProcAddress('glMateriali');
15412   glMaterialiv := dglGetProcAddress('glMaterialiv');
15413   glMatrixMode := dglGetProcAddress('glMatrixMode');
15414   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15415   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15416   glNewList := dglGetProcAddress('glNewList');
15417   glNormal3b := dglGetProcAddress('glNormal3b');
15418   glNormal3bv := dglGetProcAddress('glNormal3bv');
15419   glNormal3d := dglGetProcAddress('glNormal3d');
15420   glNormal3dv := dglGetProcAddress('glNormal3dv');
15421   glNormal3f := dglGetProcAddress('glNormal3f');
15422   glNormal3fv := dglGetProcAddress('glNormal3fv');
15423   glNormal3i := dglGetProcAddress('glNormal3i');
15424   glNormal3iv := dglGetProcAddress('glNormal3iv');
15425   glNormal3s := dglGetProcAddress('glNormal3s');
15426   glNormal3sv := dglGetProcAddress('glNormal3sv');
15427   glNormalPointer := dglGetProcAddress('glNormalPointer');
15428   glOrtho := dglGetProcAddress('glOrtho');
15429   glPassThrough := dglGetProcAddress('glPassThrough');
15430   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15431   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15432   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15433   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15434   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15435   glPixelZoom := dglGetProcAddress('glPixelZoom');
15436   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15437   glPopAttrib := dglGetProcAddress('glPopAttrib');
15438   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15439   glPopMatrix := dglGetProcAddress('glPopMatrix');
15440   glPopName := dglGetProcAddress('glPopName');
15441   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15442   glPushAttrib := dglGetProcAddress('glPushAttrib');
15443   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15444   glPushMatrix := dglGetProcAddress('glPushMatrix');
15445   glPushName := dglGetProcAddress('glPushName');
15446   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15447   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15448   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15449   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15450   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15451   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15452   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15453   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15454   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15455   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15456   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15457   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15458   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15459   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15460   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15461   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15462   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15463   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15464   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15465   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15466   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15467   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15468   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15469   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15470   glRectd := dglGetProcAddress('glRectd');
15471   glRectdv := dglGetProcAddress('glRectdv');
15472   glRectf := dglGetProcAddress('glRectf');
15473   glRectfv := dglGetProcAddress('glRectfv');
15474   glRecti := dglGetProcAddress('glRecti');
15475   glRectiv := dglGetProcAddress('glRectiv');
15476   glRects := dglGetProcAddress('glRects');
15477   glRectsv := dglGetProcAddress('glRectsv');
15478   glRenderMode := dglGetProcAddress('glRenderMode');
15479   glRotated := dglGetProcAddress('glRotated');
15480   glRotatef := dglGetProcAddress('glRotatef');
15481   glScaled := dglGetProcAddress('glScaled');
15482   glScalef := dglGetProcAddress('glScalef');
15483   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15484   glShadeModel := dglGetProcAddress('glShadeModel');
15485   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15486   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15487   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15488   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15489   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15490   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15491   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15492   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15493   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15494   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15495   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15496   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15497   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15498   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15499   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15500   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15501   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15502   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15503   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15504   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15505   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15506   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15507   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15508   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15509   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15510   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15511   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15512   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15513   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15514   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15515   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15516   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15517   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15518   glTexEnvf := dglGetProcAddress('glTexEnvf');
15519   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15520   glTexEnvi := dglGetProcAddress('glTexEnvi');
15521   glTexEnviv := dglGetProcAddress('glTexEnviv');
15522   glTexGend := dglGetProcAddress('glTexGend');
15523   glTexGendv := dglGetProcAddress('glTexGendv');
15524   glTexGenf := dglGetProcAddress('glTexGenf');
15525   glTexGenfv := dglGetProcAddress('glTexGenfv');
15526   glTexGeni := dglGetProcAddress('glTexGeni');
15527   glTexGeniv := dglGetProcAddress('glTexGeniv');
15528   glTranslated := dglGetProcAddress('glTranslated');
15529   glTranslatef := dglGetProcAddress('glTranslatef');
15530   glVertex2d := dglGetProcAddress('glVertex2d');
15531   glVertex2dv := dglGetProcAddress('glVertex2dv');
15532   glVertex2f := dglGetProcAddress('glVertex2f');
15533   glVertex2fv := dglGetProcAddress('glVertex2fv');
15534   glVertex2i := dglGetProcAddress('glVertex2i');
15535   glVertex2iv := dglGetProcAddress('glVertex2iv');
15536   glVertex2s := dglGetProcAddress('glVertex2s');
15537   glVertex2sv := dglGetProcAddress('glVertex2sv');
15538   glVertex3d := dglGetProcAddress('glVertex3d');
15539   glVertex3dv := dglGetProcAddress('glVertex3dv');
15540   glVertex3f := dglGetProcAddress('glVertex3f');
15541   glVertex3fv := dglGetProcAddress('glVertex3fv');
15542   glVertex3i := dglGetProcAddress('glVertex3i');
15543   glVertex3iv := dglGetProcAddress('glVertex3iv');
15544   glVertex3s := dglGetProcAddress('glVertex3s');
15545   glVertex3sv := dglGetProcAddress('glVertex3sv');
15546   glVertex4d := dglGetProcAddress('glVertex4d');
15547   glVertex4dv := dglGetProcAddress('glVertex4dv');
15548   glVertex4f := dglGetProcAddress('glVertex4f');
15549   glVertex4fv := dglGetProcAddress('glVertex4fv');
15550   glVertex4i := dglGetProcAddress('glVertex4i');
15551   glVertex4iv := dglGetProcAddress('glVertex4iv');
15552   glVertex4s := dglGetProcAddress('glVertex4s');
15553   glVertex4sv := dglGetProcAddress('glVertex4sv');
15554   glVertexPointer := dglGetProcAddress('glVertexPointer');
15555 {$endif}
15556
15557   // GL_VERSION_1_2
15558   glBlendColor := dglGetProcAddress('glBlendColor');
15559   glBlendEquation := dglGetProcAddress('glBlendEquation');
15560   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15561   glTexImage3D := dglGetProcAddress('glTexImage3D');
15562   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15563   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15564 {$ifdef DGL_DEPRECATED}
15565   glColorTable := dglGetProcAddress('glColorTable');
15566   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15567   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15568   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15569   glGetColorTable := dglGetProcAddress('glGetColorTable');
15570   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15571   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15572   glColorSubTable := dglGetProcAddress('glColorSubTable');
15573   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15574   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15575   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15576   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15577   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15578   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15579   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15580   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15581   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15582   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15583   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15584   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15585   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15586   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15587   glGetHistogram := dglGetProcAddress('glGetHistogram');
15588   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15589   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15590   glGetMinmax := dglGetProcAddress('glGetMinmax');
15591   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15592   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15593   glHistogram := dglGetProcAddress('glHistogram');
15594   glMinmax := dglGetProcAddress('glMinmax');
15595   glResetHistogram := dglGetProcAddress('glResetHistogram');
15596   glResetMinmax := dglGetProcAddress('glResetMinmax');
15597 {$endif}
15598
15599   // GL_VERSION_1_3
15600   glActiveTexture := dglGetProcAddress('glActiveTexture');
15601   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15602   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15603   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15604   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15605   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15606   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15607   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15608   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15609 {$ifdef DGL_DEPRECATED}
15610   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15611   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15612   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15613   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15614   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15615   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15616   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15617   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15618   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15619   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15620   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15621   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15622   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15623   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15624   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15625   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15626   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15627   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15628   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15629   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15630   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15631   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15632   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15633   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15634   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15635   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15636   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15637   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15638   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15639   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15640   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15641   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15642   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15643   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15644   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15645   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15646   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15647 {$endif}
15648
15649   // GL_VERSION_1_4
15650   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15651   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15652   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15653   glPointParameterf := dglGetProcAddress('glPointParameterf');
15654   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15655   glPointParameteri := dglGetProcAddress('glPointParameteri');
15656   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15657 {$ifdef DGL_DEPRECATED}
15658   glFogCoordf := dglGetProcAddress('glFogCoordf');
15659   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15660   glFogCoordd := dglGetProcAddress('glFogCoordd');
15661   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15662   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15663   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15664   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15665   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15666   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15667   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15668   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15669   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15670   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15671   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15672   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15673   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15674   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15675   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15676   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15677   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15678   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15679   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15680   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15681   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15682   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15683   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15684   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15685   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15686   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15687   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15688   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15689   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15690   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15691   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15692   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15693   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15694   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15695   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15696 {$endif}
15697
15698   // GL_VERSION_1_5
15699   glGenQueries := dglGetProcAddress('glGenQueries');
15700   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15701   glIsQuery := dglGetProcAddress('glIsQuery');
15702   glBeginQuery := dglGetProcAddress('glBeginQuery');
15703   glEndQuery := dglGetProcAddress('glEndQuery');
15704   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15705   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15706   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15707   glBindBuffer := dglGetProcAddress('glBindBuffer');
15708   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15709   glGenBuffers := dglGetProcAddress('glGenBuffers');
15710   glIsBuffer := dglGetProcAddress('glIsBuffer');
15711   glBufferData := dglGetProcAddress('glBufferData');
15712   glBufferSubData := dglGetProcAddress('glBufferSubData');
15713   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15714   glMapBuffer := dglGetProcAddress('glMapBuffer');
15715   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15716   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15717   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15718
15719   // GL_VERSION_2_0
15720   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15721   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15722   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15723   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15724   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15725   glAttachShader := dglGetProcAddress('glAttachShader');
15726   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15727   glCompileShader := dglGetProcAddress('glCompileShader');
15728   glCreateProgram := dglGetProcAddress('glCreateProgram');
15729   glCreateShader := dglGetProcAddress('glCreateShader');
15730   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15731   glDeleteShader := dglGetProcAddress('glDeleteShader');
15732   glDetachShader := dglGetProcAddress('glDetachShader');
15733   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15734   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15735   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15736   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15737   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15738   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15739   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15740   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15741   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15742   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15743   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15744   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15745   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15746   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15747   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15748   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15749   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15750   glIsProgram := dglGetProcAddress('glIsProgram');
15751   glIsShader := dglGetProcAddress('glIsShader');
15752   glLinkProgram := dglGetProcAddress('glLinkProgram');
15753   glShaderSource := dglGetProcAddress('glShaderSource');
15754   glUseProgram := dglGetProcAddress('glUseProgram');
15755   glUniform1f := dglGetProcAddress('glUniform1f');
15756   glUniform2f := dglGetProcAddress('glUniform2f');
15757   glUniform3f := dglGetProcAddress('glUniform3f');
15758   glUniform4f := dglGetProcAddress('glUniform4f');
15759   glUniform1i := dglGetProcAddress('glUniform1i');
15760   glUniform2i := dglGetProcAddress('glUniform2i');
15761   glUniform3i := dglGetProcAddress('glUniform3i');
15762   glUniform4i := dglGetProcAddress('glUniform4i');
15763   glUniform1fv := dglGetProcAddress('glUniform1fv');
15764   glUniform2fv := dglGetProcAddress('glUniform2fv');
15765   glUniform3fv := dglGetProcAddress('glUniform3fv');
15766   glUniform4fv := dglGetProcAddress('glUniform4fv');
15767   glUniform1iv := dglGetProcAddress('glUniform1iv');
15768   glUniform2iv := dglGetProcAddress('glUniform2iv');
15769   glUniform3iv := dglGetProcAddress('glUniform3iv');
15770   glUniform4iv := dglGetProcAddress('glUniform4iv');
15771   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15772   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15773   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15774   glValidateProgram := dglGetProcAddress('glValidateProgram');
15775   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15776   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15777   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15778   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15779   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15780   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15781   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15782   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15783   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15784   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15785   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15786   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15787   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15788   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15789   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15790   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15791   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15792   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15793   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15794   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15795   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15796   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15797   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15798   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15799   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15800   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15801   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15802   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15803   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15804   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15805   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15806   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15807   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15808   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15809   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15810   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15811   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15812
15813   // GL_VERSION_2_1
15814   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15815   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15816   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15817   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15818   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15819   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15820
15821   // GL_VERSION_3_0
15822   { OpenGL 3.0 also reuses entry points from these extensions: }
15823   Read_GL_ARB_framebuffer_object;
15824   Read_GL_ARB_map_buffer_range;
15825   Read_GL_ARB_vertex_array_object;
15826
15827   glColorMaski := dglGetProcAddress('glColorMaski');
15828   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15829   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15830   glEnablei := dglGetProcAddress('glEnablei');
15831   glDisablei := dglGetProcAddress('glDisablei');
15832   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15833   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15834   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15835   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15836   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15837   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15838   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15839   glClampColor := dglGetProcAddress('glClampColor');
15840   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15841   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15842   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15843   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15844   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15845   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15846   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15847   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15848   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15849   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15850   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15851   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15852   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15853   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15854   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15855   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15856   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15857   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15858   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15859   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15860   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15861   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15862   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15863   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15864   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15865   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15866   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15867   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15868   glUniform1ui := dglGetProcAddress('glUniform1ui');
15869   glUniform2ui := dglGetProcAddress('glUniform2ui');
15870   glUniform3ui := dglGetProcAddress('glUniform3ui');
15871   glUniform4ui := dglGetProcAddress('glUniform4ui');
15872   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15873   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15874   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15875   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15876   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15877   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15878   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15879   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15880   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15881   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15882   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15883   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15884   glGetStringi := dglGetProcAddress('glGetStringi');
15885
15886   // GL_VERSION_2_1
15887   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15888   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15889   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15890
15891   // GL_VERSION_3_1
15892   { OpenGL 3.1 also reuses entry points from these extensions: }
15893   Read_GL_ARB_copy_buffer;
15894   Read_GL_ARB_uniform_buffer_object;
15895
15896   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15897   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15898   glTexBuffer := dglGetProcAddress('glTexBuffer');
15899   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15900
15901   // GL_VERSION_3_2
15902   { OpenGL 3.2 also reuses entry points from these extensions: }
15903   Read_GL_ARB_draw_elements_base_vertex;
15904   Read_GL_ARB_provoking_vertex;
15905   Read_GL_ARB_sync;
15906   Read_GL_ARB_texture_multisample;
15907
15908   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15909   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15910   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15911 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15912
15913   // GL_VERSION_3_3
15914   { OpenGL 3.3 also reuses entry points from these extensions: }
15915   Read_GL_ARB_blend_func_extended;
15916   Read_GL_ARB_sampler_objects;
15917   { ARB_explicit_attrib_location, but it has none }
15918   { ARB_occlusion_query2 (no entry points) }
15919   { ARB_shader_bit_encoding (no entry points) }
15920   { ARB_texture_rgb10_a2ui (no entry points) }
15921   { ARB_texture_swizzle (no entry points) }
15922   Read_GL_ARB_timer_query;
15923   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15924
15925   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15926
15927   // GL_VERSION_4_0
15928   { OpenGL 4.0 also reuses entry points from these extensions: }
15929   { ARB_texture_query_lod (no entry points) }
15930   Read_GL_ARB_draw_indirect;
15931   { ARB_gpu_shader5 (no entry points) }
15932   Read_GL_ARB_gpu_shader_fp64;
15933   Read_GL_ARB_shader_subroutine;
15934   Read_GL_ARB_tessellation_shader;
15935   { ARB_texture_buffer_object_rgb32 (no entry points) }
15936   { ARB_texture_cube_map_array (no entry points) }
15937   { ARB_texture_gather (no entry points) }
15938   Read_GL_ARB_transform_feedback2;
15939   Read_GL_ARB_transform_feedback3;
15940
15941   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15942   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15943   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15944   glBlendFunci := dglGetProcAddress('glBlendFunci');
15945   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15946
15947   // GL_VERSION_4_1
15948   { OpenGL 4.1 also reuses entry points from these extensions: }
15949   Read_GL_ARB_ES2_compatibility;
15950   Read_GL_ARB_get_program_binary;
15951   Read_GL_ARB_separate_shader_objects;
15952   { ARB_shader_precision (no entry points) }
15953   Read_GL_ARB_vertex_attrib_64bit;
15954   Read_GL_ARB_viewport_array;
15955
15956   // GL_VERSION_4_2
15957   { OpenGL 4.2 reuses entry points from these extensions: }
15958   Read_GL_ARB_base_instance;
15959   //Read_GL_ARB_shading_language_420pack (no entry points)
15960   Read_GL_ARB_transform_feedback_instanced;
15961   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15962   //Read_GL_ARB_conservative_depth;
15963   Read_GL_ARB_internalformat_query;
15964   //Read_GL_ARB_map_buffer_alignment;
15965   Read_GL_ARB_shader_atomic_counters;
15966   Read_GL_ARB_shader_image_load_store;
15967   //Read_GL_ARB_shading_language_packing;
15968   Read_GL_ARB_texture_storage;
15969
15970   // GL_VERSION_4_3
15971   // OpenGL 4.3 reuses entry points from these extensions:
15972   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15973   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15974   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15975   // Read_GL_ARB_ES3_compatibility (no entry points)
15976   Read_GL_ARB_clear_buffer_object;
15977   Read_GL_ARB_compute_shader;
15978   Read_GL_ARB_copy_image;
15979   Read_GL_KHR_debug;
15980   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15981   Read_GL_ARB_framebuffer_no_attachments;
15982   Read_GL_ARB_internalformat_query2;
15983   Read_GL_ARB_invalidate_subdata;
15984   Read_GL_ARB_multi_draw_indirect;
15985   Read_GL_ARB_program_interface_query;
15986   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15987   Read_GL_ARB_shader_storage_buffer_object;
15988   // Read_GL_ARB_stencil_texturing  (no entry points)
15989   Read_GL_ARB_texture_buffer_range;
15990   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15991   Read_GL_ARB_texture_storage_multisample;
15992   Read_GL_ARB_texture_view;
15993   Read_GL_ARB_vertex_attrib_binding;
15994
15995   //  Note (Due to Khronos' change in header convetions, no more single read_ functions) starting with GL 4.4
15996   Read_GL_4_4;
15997   Read_GL_4_5;
15998 end;
15999
16000 procedure Read_GL_3DFX_tbuffer;
16001 begin
16002   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
16003 end;
16004
16005 procedure Read_GL_APPLE_element_array;
16006 begin
16007   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
16008   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
16009   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
16010   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
16011   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
16012 end;
16013
16014 procedure Read_GL_APPLE_fence;
16015 begin
16016   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
16017   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
16018   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
16019   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
16020   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
16021   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
16022   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
16023   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
16024 end;
16025
16026 procedure Read_GL_APPLE_vertex_array_object;
16027 begin
16028   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
16029   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
16030   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
16031   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
16032 end;
16033
16034 procedure Read_GL_APPLE_vertex_array_range;
16035 begin
16036   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
16037   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
16038   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
16039 end;
16040
16041 procedure Read_GL_APPLE_texture_range;
16042 begin
16043   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
16044   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
16045 end;
16046
16047 procedure Read_GL_APPLE_vertex_program_evaluators;
16048 begin
16049   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
16050   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
16051   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
16052   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
16053   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
16054   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
16055   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
16056 end;
16057
16058 procedure Read_GL_APPLE_object_purgeable;
16059 begin
16060   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16061   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16062   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16063 end;
16064
16065 procedure Read_GL_ARB_matrix_palette;
16066 begin
16067   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16068   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16069   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16070   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16071   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16072 end;
16073
16074 procedure Read_GL_ARB_multisample;
16075 begin
16076   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16077 end;
16078
16079 procedure Read_GL_ARB_multitexture;
16080 begin
16081   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16082   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16083   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16084   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16085   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16086   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16087   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16088   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16089   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16090   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16091   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16092   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16093   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16094   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16095   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16096   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16097   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16098   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16099   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16100   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16101   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16102   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16103   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16104   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16105   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16106   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16107   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16108   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16109   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16110   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16111   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16112   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16113   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16114   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16115 end;
16116
16117 procedure Read_GL_ARB_point_parameters;
16118 begin
16119   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16120   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16121 end;
16122
16123 procedure Read_GL_ARB_texture_compression;
16124 begin
16125   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16126   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16127   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16128   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16129   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16130   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16131   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16132 end;
16133
16134 procedure Read_GL_ARB_transpose_matrix;
16135 begin
16136   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16137   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16138   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16139   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16140 end;
16141
16142 procedure Read_GL_ARB_vertex_blend;
16143 begin
16144   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16145   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16146   glWeightivARB := dglGetProcAddress('glWeightivARB');
16147   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16148   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16149   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16150   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16151   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16152   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16153   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16154 end;
16155
16156 procedure Read_GL_ARB_vertex_buffer_object;
16157 begin
16158   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16159   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16160   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16161   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16162   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16163   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16164   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16165   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16166   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16167   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16168   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16169 end;
16170
16171 procedure Read_GL_ARB_vertex_program;
16172 begin
16173   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16174   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16175   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16176   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16177   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16178   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16179   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16180   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16181   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16182   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16183   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16184   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16185   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16186   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16187   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16188   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16189   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16190   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16191   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16192   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16193   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16194   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16195   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16196   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16197   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16198   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16199   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16200   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16201   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16202   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16203   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16204   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16205   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16206   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16207   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16208   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16209   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16210   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16211   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16212   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16213   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16214   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16215   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16216   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16217   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16218   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16219   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16220   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16221   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16222   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16223   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16224   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16225   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16226   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16227   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16228   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16229   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16230   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16231   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16232   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16233   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16234   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16235 end;
16236
16237 procedure Read_GL_ARB_window_pos;
16238 begin
16239   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16240   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16241   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16242   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16243   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16244   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16245   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16246   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16247   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16248   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16249   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16250   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16251   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16252   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16253   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16254   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16255 end;
16256
16257 procedure Read_GL_ARB_draw_buffers;
16258 begin
16259   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16260 end;
16261
16262 procedure Read_GL_ARB_color_buffer_float;
16263 begin
16264   glClampColorARB := dglGetProcAddress('glClampColorARB');
16265 end;
16266
16267 procedure Read_GL_ARB_Shader_Objects;
16268 begin
16269   // GL_ARB_Shader_Objects
16270   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16271   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16272   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16273   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16274   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16275   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16276   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16277   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16278   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16279   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16280   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16281   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16282   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16283   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16284   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16285   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16286   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16287   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16288   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16289   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16290   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16291   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16292   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16293   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16294   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16295   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16296   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16297   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16298   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16299   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16300   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16301   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16302   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16303   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16304   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16305   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16306   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16307   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16308   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16309
16310   // GL_ARB_vertex_shader
16311   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16312   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16313   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16314   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16315 end;
16316
16317 procedure Read_GL_ARB_occlusion_query;
16318 begin
16319   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16320   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16321   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16322   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16323   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16324   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16325   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16326   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16327 end;
16328
16329 procedure Read_GL_ARB_draw_instanced;
16330 begin
16331   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16332   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16333 end;
16334
16335 procedure Read_GL_ARB_framebuffer_object;
16336 begin
16337   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16338   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16339   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16340   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16341   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16342   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16343   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16344   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16345   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16346   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16347   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16348   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16349   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16350   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16351   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16352   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16353   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16354   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16355   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16356   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16357 end;
16358
16359 procedure Read_GL_ARB_geometry_shader4;
16360 begin
16361   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16362   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16363   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16364   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16365 end;
16366
16367 procedure Read_GL_ARB_instanced_arrays;
16368 begin
16369   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16370 end;
16371
16372 procedure Read_GL_ARB_map_buffer_range;
16373 begin
16374   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16375   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16376 end;
16377
16378 procedure Read_GL_ARB_texture_buffer_object;
16379 begin
16380   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16381 end;
16382
16383 procedure Read_GL_ARB_vertex_array_object;
16384 begin
16385   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16386   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16387   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16388   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16389 end;
16390
16391 procedure Read_GL_ARB_uniform_buffer_object;
16392 begin
16393   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16394   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16395   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16396   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16397   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16398   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16399   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16400 end;
16401
16402 procedure Read_GL_ARB_copy_buffer;
16403 begin
16404   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16405 end;
16406
16407 procedure Read_GL_ARB_draw_elements_base_vertex;
16408 begin
16409   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16410   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16411   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16412   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16413 end;
16414
16415 procedure Read_GL_ARB_provoking_vertex;
16416 begin
16417   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16418 end;
16419
16420 procedure Read_GL_ARB_sync;
16421 begin
16422   glFenceSync := dglGetProcAddress('glFenceSync');
16423   glIsSync := dglGetProcAddress('glIsSync');
16424   glDeleteSync := dglGetProcAddress('glDeleteSync');
16425   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16426   glWaitSync := dglGetProcAddress('glWaitSync');
16427   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16428   glGetSynciv := dglGetProcAddress('glGetSynciv');
16429 end;
16430
16431 procedure Read_GL_ARB_texture_multisample;
16432 begin
16433   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16434   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16435   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16436   glSampleMaski := dglGetProcAddress('glSampleMaski');
16437 end;
16438
16439 procedure Read_GL_ARB_draw_buffers_blend;
16440 begin
16441   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16442   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16443   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16444   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16445 end;
16446
16447 procedure Read_GL_ARB_sample_shading;
16448 begin
16449   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16450 end;
16451
16452 procedure Read_GL_ARB_shading_language_include;
16453 begin
16454   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16455   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16456   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16457   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16458   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16459   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16460 end;
16461
16462 procedure Read_GL_ARB_sparse_texture;
16463 begin
16464   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
16465 end;
16466
16467 procedure Read_GL_ARB_sparse_buffer;
16468 begin
16469   glBufferPageCommitmentARB := dglGetProcAddress('glBufferPageCommitmentARB');
16470   glNamedBufferPageCommitmentEXT := dglGetProcAddress('glNamedBufferPageCommitmentEXT');
16471   glNamedBufferPageCommitmentARB := dglGetProcAddress('glNamedBufferPageCommitmentARB');
16472 end;
16473
16474 procedure Read_GL_KHR_blend_equation_advanced;
16475 begin
16476   glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
16477 end;
16478
16479
16480 procedure Read_GL_ARB_blend_func_extended;
16481 begin
16482   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16483   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16484 end;
16485
16486 procedure Read_GL_ARB_sampler_objects;
16487 begin
16488   glGenSamplers := dglGetProcAddress('glGenSamplers');
16489   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16490   glIsSampler := dglGetProcAddress('glIsSampler');
16491   glBindSampler := dglGetProcAddress('glBindSampler');
16492   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16493   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16494   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16495   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16496   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16497   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16498   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16499   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16500   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16501   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16502 end;
16503
16504 procedure Read_GL_ARB_timer_query;
16505 begin
16506   glQueryCounter := dglGetProcAddress('glQueryCounter');
16507   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16508   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16509 end;
16510
16511 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16512 begin
16513   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16514   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16515   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16516   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16517   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16518   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16519   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16520   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16521   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16522   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16523   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16524   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16525   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16526   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16527   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16528   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16529   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16530   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16531   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16532   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16533   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16534   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16535   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16536   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16537   glColorP3ui := dglGetProcAddress('glColorP3ui');
16538   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16539   glColorP4ui := dglGetProcAddress('glColorP4ui');
16540   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16541   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16542   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16543   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16544   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16545   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16546   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16547   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16548   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16549   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16550   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16551 end;
16552
16553 procedure Read_GL_ARB_draw_indirect;
16554 begin
16555   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16556   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16557 end;
16558
16559 procedure Read_GL_ARB_gpu_shader_fp64;
16560 begin
16561   glUniform1d := dglGetProcAddress('glUniform1d');
16562   glUniform2d := dglGetProcAddress('glUniform2d');
16563   glUniform3d := dglGetProcAddress('glUniform3d');
16564   glUniform4d := dglGetProcAddress('glUniform4d');
16565   glUniform1dv := dglGetProcAddress('glUniform1dv');
16566   glUniform2dv := dglGetProcAddress('glUniform2dv');
16567   glUniform3dv := dglGetProcAddress('glUniform3dv');
16568   glUniform4dv := dglGetProcAddress('glUniform4dv');
16569   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16570   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16571   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16572   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16573   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16574   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16575   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16576   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16577   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16578   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16579 end;
16580
16581 procedure Read_GL_ARB_shader_subroutine;
16582 begin
16583   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16584   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16585   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16586   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16587   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16588   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16589   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16590   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16591 end;
16592
16593 procedure Read_GL_ARB_tessellation_shader;
16594 begin
16595   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16596   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16597 end;
16598
16599 procedure Read_GL_ARB_transform_feedback2;
16600 begin
16601   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16602   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16603   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16604   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16605   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16606   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16607   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16608 end;
16609
16610 procedure Read_GL_ARB_transform_feedback3;
16611 begin
16612   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16613   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16614   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16615   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16616 end;
16617
16618 procedure Read_GL_ARB_ES2_compatibility;
16619 begin
16620   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16621   glShaderBinary := dglGetProcAddress('glShaderBinary');
16622   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16623   glDepthRangef := dglGetProcAddress('glDepthRangef');
16624   glClearDepthf := dglGetProcAddress('glClearDepthf');
16625 end;
16626
16627 procedure Read_GL_ARB_get_program_binary;
16628 begin
16629   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16630   glProgramBinary := dglGetProcAddress('glProgramBinary');
16631   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16632 end;
16633
16634 procedure Read_GL_ARB_separate_shader_objects;
16635 begin
16636   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16637   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16638   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16639   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16640   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16641   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16642   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16643   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16644   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16645   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16646   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16647   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16648   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16649   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16650   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16651   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16652   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16653   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16654   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16655   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16656   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16657   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16658   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16659   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16660   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16661   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16662   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16663   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16664   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16665   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16666   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16667   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16668   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16669   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16670   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16671   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16672   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16673   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16674   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16675   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16676   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16677   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16678   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16679   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16680   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16681   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16682   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16683   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16684   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16685   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16686   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16687   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16688   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16689   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16690   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16691   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16692   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16693   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16694   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16695   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16696 end;
16697
16698 procedure Read_GL_ARB_vertex_attrib_64bit;
16699 begin
16700   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16701   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16702   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16703   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16704   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16705   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16706   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16707   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16708   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16709   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16710 end;
16711
16712 procedure Read_GL_ARB_viewport_array;
16713 begin
16714   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16715   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16716   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16717   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16718   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16719   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16720   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16721   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16722   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16723   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16724 end;
16725
16726 // GL 4.2
16727
16728 procedure Read_GL_ARB_base_instance;
16729 begin
16730 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16731 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16732 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16733 end;
16734
16735 procedure Read_GL_ARB_transform_feedback_instanced;
16736 begin
16737 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16738 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16739 end;
16740
16741 procedure Read_GL_ARB_internalformat_query;
16742 begin
16743 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16744 end;
16745
16746 procedure Read_GL_ARB_shader_atomic_counters;
16747 begin
16748 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16749 end;
16750
16751 procedure Read_GL_ARB_shader_image_load_store;
16752 begin
16753 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16754 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16755 end;
16756
16757 procedure Read_GL_ARB_texture_storage;
16758 begin
16759 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16760 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16761 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16762 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16763 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16764 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16765 end;
16766
16767
16768 // GL 4.3
16769 procedure Read_GL_KHR_debug;
16770 begin
16771   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16772   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16773   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16774   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16775   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16776   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16777   glObjectLabel := dglGetProcAddress('glObjectLabel');
16778   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16779   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16780   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16781 end;
16782
16783 procedure Read_GL_ARB_clear_buffer_object;
16784 begin
16785   glClearBufferData := dglGetProcAddress('glClearBufferData');
16786   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16787   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16788   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16789 end;
16790
16791 procedure Read_GL_ARB_compute_shader;
16792 begin
16793   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16794   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16795 end;
16796
16797 procedure Read_GL_ARB_copy_image;
16798 begin
16799   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16800 end;
16801
16802 procedure Read_GL_ARB_framebuffer_no_attachments;
16803 begin
16804   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16805   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16806   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16807   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16808 end;
16809
16810 procedure Read_GL_ARB_internalformat_query2;
16811 begin
16812   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16813 end;
16814
16815 procedure Read_GL_ARB_invalidate_subdata;
16816 begin
16817   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16818   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16819   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16820   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16821   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16822   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16823 end;
16824
16825 procedure Read_GL_ARB_multi_draw_indirect;
16826 begin
16827   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16828   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16829 end;
16830
16831 procedure Read_GL_ARB_program_interface_query;
16832 begin
16833   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16834   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16835   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16836   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16837   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16838   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16839 end;
16840
16841 procedure Read_GL_ARB_shader_storage_buffer_object;
16842 begin
16843   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16844 end;
16845
16846 procedure Read_GL_ARB_texture_buffer_range;
16847 begin
16848   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16849   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16850 end;
16851
16852 procedure Read_GL_ARB_texture_storage_multisample;
16853 begin
16854   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16855   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16856   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16857   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16858 end;
16859
16860 procedure Read_GL_ARB_texture_view;
16861 begin
16862   glTextureView := dglGetProcAddress('glTextureView');
16863 end;
16864
16865 procedure Read_GL_ARB_vertex_attrib_binding;
16866 begin
16867   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16868   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16869   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16870   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16871   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16872   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16873   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16874   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16875   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16876   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16877   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16878   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16879 end;
16880
16881 procedure Read_GL_4_4;
16882 begin
16883   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16884   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16885   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16886   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16887   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16888   glBindTextures      := dglGetProcAddress('glBindTextures');
16889   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16890   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16891   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16892 end;
16893
16894 procedure Read_GL_4_5;
16895 begin
16896   glClipControl:= dglGetProcAddress('glClipControl');
16897   glCreateTransformFeedbacks:= dglGetProcAddress('glCreateTransformFeedbacks');
16898   glTransformFeedbackBufferBase:= dglGetProcAddress('glTransformFeedbackBufferBase');
16899   glTransformFeedbackBufferRange:= dglGetProcAddress('glTransformFeedbackBufferRange');
16900   glGetTransformFeedbackiv:= dglGetProcAddress('glGetTransformFeedbackiv');
16901   glGetTransformFeedbacki_v:= dglGetProcAddress('glGetTransformFeedbacki_v');
16902   glGetTransformFeedbacki64_v:= dglGetProcAddress('glGetTransformFeedbacki64_v');
16903   glCreateBuffers:= dglGetProcAddress('glCreateBuffers');
16904   glNamedBufferStorage:= dglGetProcAddress('glNamedBufferStorage');
16905   glNamedBufferData:= dglGetProcAddress('glNamedBufferData');
16906   glNamedBufferSubData:= dglGetProcAddress('glNamedBufferSubData');
16907   glCopyNamedBufferSubData:= dglGetProcAddress('glCopyNamedBufferSubData');
16908   glClearNamedBufferData:= dglGetProcAddress('glClearNamedBufferData');
16909   glClearNamedBufferSubData:= dglGetProcAddress('glClearNamedBufferSubData');
16910   glMapNamedBuffer:= dglGetProcAddress('glMapNamedBuffer');
16911   glMapNamedBufferRange:= dglGetProcAddress('glMapNamedBufferRange');
16912   glUnmapNamedBuffer:= dglGetProcAddress('glUnmapNamedBuffer');
16913   glFlushMappedNamedBufferRange:= dglGetProcAddress('glFlushMappedNamedBufferRange');
16914   glGetNamedBufferParameteriv:= dglGetProcAddress('glGetNamedBufferParameteriv');
16915   glGetNamedBufferParameteri64v:= dglGetProcAddress('glGetNamedBufferParameteri64v');
16916   glGetNamedBufferPointerv:= dglGetProcAddress('glGetNamedBufferPointerv');
16917   glGetNamedBufferSubData:= dglGetProcAddress('glGetNamedBufferSubData');
16918   glCreateFramebuffers:= dglGetProcAddress('glCreateFramebuffers');
16919   glNamedFramebufferRenderbuffer:= dglGetProcAddress('glNamedFramebufferRenderbuffer');
16920   glNamedFramebufferParameteri:= dglGetProcAddress('glNamedFramebufferParameteri');
16921   glNamedFramebufferTexture:= dglGetProcAddress('glNamedFramebufferTexture');
16922   glNamedFramebufferTextureLayer:= dglGetProcAddress('glNamedFramebufferTextureLayer');
16923   glNamedFramebufferDrawBuffer:= dglGetProcAddress('glNamedFramebufferDrawBuffer');
16924   glNamedFramebufferDrawBuffers:= dglGetProcAddress('glNamedFramebufferDrawBuffers');
16925   glNamedFramebufferReadBuffer:= dglGetProcAddress('glNamedFramebufferReadBuffer');
16926   glInvalidateNamedFramebufferData:= dglGetProcAddress('glInvalidateNamedFramebufferData');
16927   glInvalidateNamedFramebufferSubData:= dglGetProcAddress('glInvalidateNamedFramebufferSubData');
16928   glClearNamedFramebufferiv:= dglGetProcAddress('glClearNamedFramebufferiv');
16929   glClearNamedFramebufferuiv:= dglGetProcAddress('glClearNamedFramebufferuiv');
16930   glClearNamedFramebufferfv:= dglGetProcAddress('glClearNamedFramebufferfv');
16931   glClearNamedFramebufferfi:= dglGetProcAddress('glClearNamedFramebufferfi');
16932   glBlitNamedFramebuffer:= dglGetProcAddress('glBlitNamedFramebuffer');
16933   glCheckNamedFramebufferStatus:= dglGetProcAddress('glCheckNamedFramebufferStatus');
16934   glGetNamedFramebufferParameteriv:= dglGetProcAddress('glGetNamedFramebufferParameteriv');
16935   glGetNamedFramebufferAttachmentParameteriv:= dglGetProcAddress('glGetNamedFramebufferAttachmentParameteriv');
16936   glCreateRenderbuffers:= dglGetProcAddress('glCreateRenderbuffers');
16937   glNamedRenderbufferStorage:= dglGetProcAddress('glNamedRenderbufferStorage');
16938   glNamedRenderbufferStorageMultisample:= dglGetProcAddress('glNamedRenderbufferStorageMultisample');
16939   glGetNamedRenderbufferParameteriv:= dglGetProcAddress('glGetNamedRenderbufferParameteriv');
16940   glCreateTextures:= dglGetProcAddress('glCreateTextures');
16941   glTextureBuffer:= dglGetProcAddress('glTextureBuffer');
16942   glTextureBufferRange:= dglGetProcAddress('glTextureBufferRange');
16943   glTextureStorage1D:= dglGetProcAddress('glTextureStorage1D');
16944   glTextureStorage2D:= dglGetProcAddress('glTextureStorage2D');
16945   glTextureStorage3D:= dglGetProcAddress('glTextureStorage3D');
16946   glTextureStorage2DMultisample:= dglGetProcAddress('glTextureStorage2DMultisample');
16947   glTextureStorage3DMultisample:= dglGetProcAddress('glTextureStorage3DMultisample');
16948   glTextureSubImage1D:= dglGetProcAddress('glTextureSubImage1D');
16949   glTextureSubImage2D:= dglGetProcAddress('glTextureSubImage2D');
16950   glTextureSubImage3D:= dglGetProcAddress('glTextureSubImage3D');
16951   glCompressedTextureSubImage1D:= dglGetProcAddress('glCompressedTextureSubImage1D');
16952   glCompressedTextureSubImage2D:= dglGetProcAddress('glCompressedTextureSubImage2D');
16953   glCompressedTextureSubImage3D:= dglGetProcAddress('glCompressedTextureSubImage3D');
16954   glCopyTextureSubImage1D:= dglGetProcAddress('glCopyTextureSubImage1D');
16955   glCopyTextureSubImage2D:= dglGetProcAddress('glCopyTextureSubImage2D');
16956   glCopyTextureSubImage3D:= dglGetProcAddress('glCopyTextureSubImage3D');
16957   glTextureParameterf:= dglGetProcAddress('glTextureParameterf');
16958   glTextureParameterfv:= dglGetProcAddress('glTextureParameterfv');
16959   glTextureParameteri:= dglGetProcAddress('glTextureParameteri');
16960   glTextureParameterIiv:= dglGetProcAddress('glTextureParameterIiv');
16961   glTextureParameterIuiv:= dglGetProcAddress('glTextureParameterIuiv');
16962   glTextureParameteriv:= dglGetProcAddress('glTextureParameteriv');
16963   glGenerateTextureMipmap:= dglGetProcAddress('glGenerateTextureMipmap');
16964   glBindTextureUnit:= dglGetProcAddress('glBindTextureUnit');
16965   glGetTextureImage:= dglGetProcAddress('glGetTextureImage');
16966   glGetCompressedTextureImage:= dglGetProcAddress('glGetCompressedTextureImage');
16967   glGetTextureLevelParameterfv:= dglGetProcAddress('glGetTextureLevelParameterfv');
16968   glGetTextureLevelParameteriv:= dglGetProcAddress('glGetTextureLevelParameteriv');
16969   glGetTextureParameterfv:= dglGetProcAddress('glGetTextureParameterfv');
16970   glGetTextureParameterIiv:= dglGetProcAddress('glGetTextureParameterIiv');
16971   glGetTextureParameterIuiv:= dglGetProcAddress('glGetTextureParameterIuiv');
16972   glGetTextureParameteriv:= dglGetProcAddress('glGetTextureParameteriv');
16973   glCreateVertexArrays:= dglGetProcAddress('glCreateVertexArrays');
16974   glDisableVertexArrayAttrib:= dglGetProcAddress('glDisableVertexArrayAttrib');
16975   glEnableVertexArrayAttrib:= dglGetProcAddress('glEnableVertexArrayAttrib');
16976   glVertexArrayElementBuffer:= dglGetProcAddress('glVertexArrayElementBuffer');
16977   glVertexArrayVertexBuffer:= dglGetProcAddress('glVertexArrayVertexBuffer');
16978   glVertexArrayVertexBuffers:= dglGetProcAddress('glVertexArrayVertexBuffers');
16979   glVertexArrayAttribBinding:= dglGetProcAddress('glVertexArrayAttribBinding');
16980   glVertexArrayAttribFormat:= dglGetProcAddress('glVertexArrayAttribFormat');
16981   glVertexArrayAttribIFormat:= dglGetProcAddress('glVertexArrayAttribIFormat');
16982   glVertexArrayAttribLFormat:= dglGetProcAddress('glVertexArrayAttribLFormat');
16983   glVertexArrayBindingDivisor:= dglGetProcAddress('glVertexArrayBindingDivisor');
16984   glGetVertexArrayiv:= dglGetProcAddress('glGetVertexArrayiv');
16985   glGetVertexArrayIndexediv:= dglGetProcAddress('glGetVertexArrayIndexediv');
16986   glGetVertexArrayIndexed64iv:= dglGetProcAddress('glGetVertexArrayIndexed64iv');
16987   glCreateSamplers:= dglGetProcAddress('glCreateSamplers');
16988   glCreateProgramPipelines:= dglGetProcAddress('glCreateProgramPipelines');
16989   glCreateQueries:= dglGetProcAddress('glCreateQueries');
16990   glMemoryBarrierByRegion:= dglGetProcAddress('glMemoryBarrierByRegion');
16991   glGetTextureSubImage:= dglGetProcAddress('glGetTextureSubImage');
16992   glGetCompressedTextureSubImage:= dglGetProcAddress('glGetCompressedTextureSubImage');
16993   glGetGraphicsResetStatus:= dglGetProcAddress('glGetGraphicsResetStatus');
16994   glGetnCompressedTexImage:= dglGetProcAddress('glGetnCompressedTexImage');
16995   glGetnTexImage:= dglGetProcAddress('glGetnTexImage');
16996   glGetnUniformdv:= dglGetProcAddress('glGetnUniformdv');
16997   glGetnUniformfv:= dglGetProcAddress('glGetnUniformfv');
16998   glGetnUniformiv:= dglGetProcAddress('glGetnUniformiv');
16999   glGetnUniformuiv:= dglGetProcAddress('glGetnUniformuiv');
17000   glReadnPixels:= dglGetProcAddress('glReadnPixels');
17001   glGetnMapdv:= dglGetProcAddress('glGetnMapdv');
17002   glGetnMapfv:= dglGetProcAddress('glGetnMapfv');
17003   glGetnMapiv:= dglGetProcAddress('glGetnMapiv');
17004   glGetnPixelMapfv:= dglGetProcAddress('glGetnPixelMapfv');
17005   glGetnPixelMapuiv:= dglGetProcAddress('glGetnPixelMapuiv');
17006   glGetnPixelMapusv:= dglGetProcAddress('glGetnPixelMapusv');
17007   glGetnPolygonStipple:= dglGetProcAddress('glGetnPolygonStipple');
17008   glGetnColorTable:= dglGetProcAddress('glGetnColorTable');
17009   glGetnConvolutionFilter:= dglGetProcAddress('glGetnConvolutionFilter');
17010   glGetnSeparableFilter:= dglGetProcAddress('glGetnSeparableFilter');
17011   glGetnHistogram:= dglGetProcAddress('glGetnHistogram');
17012   glGetnMinmax:= dglGetProcAddress('glGetnMinmax');
17013   glTextureBarrier:= dglGetProcAddress('glTextureBarrier');
17014 end;
17015
17016 procedure Read_GL_NV_path_rendering;
17017 begin
17018   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
17019   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
17020   glIsPathNV := dglGetProcAddress('glIsPathNV');
17021   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
17022   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
17023   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
17024   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
17025   glPathStringNV := dglGetProcAddress('glPathStringNV');
17026   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
17027   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
17028   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
17029   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
17030   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
17031   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
17032   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
17033   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
17034   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
17035   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
17036   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
17037   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
17038   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
17039   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
17040   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
17041   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
17042   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
17043   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
17044   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
17045   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
17046   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
17047   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
17048   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
17049   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
17050   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
17051   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
17052   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
17053   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
17054   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
17055   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
17056   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
17057   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
17058   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
17059   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
17060   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
17061   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
17062   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
17063   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
17064   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
17065   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
17066   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
17067 end;
17068
17069 procedure Read_GL_AMD_stencil_operation_extended;
17070 begin
17071         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
17072 end;
17073
17074 procedure Read_GL_NV_bindless_texture;
17075 begin
17076   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
17077   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
17078   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
17079   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
17080   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
17081   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
17082   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
17083   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
17084   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
17085   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
17086   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
17087   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
17088   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
17089 end;
17090
17091 procedure Read_GL_ARB_bindless_texture;
17092 begin
17093   glGetTextureHandleARB := dglGetProcAddress('TglGetTextureHandleARB');
17094   glGetTextureSamplerHandleARB := dglGetProcAddress('TglGetTextureSamplerHandleARB');
17095   glMakeTextureHandleResidentARB := dglGetProcAddress('TglMakeTextureHandleResidentARB');
17096   glMakeTextureHandleNonResidentARB := dglGetProcAddress('TglMakeTextureHandleNonResidentARB');
17097   glGetImageHandleARB := dglGetProcAddress('TglGetImageHandleARB');
17098   glMakeImageHandleResidentARB := dglGetProcAddress('TglMakeImageHandleResidentARB');
17099   glMakeImageHandleNonResidentARB := dglGetProcAddress('TglMakeImageHandleNonResidentARB');
17100   glUniformHandleui64ARB := dglGetProcAddress('TglUniformHandleui64ARB');
17101   glUniformHandleui64vARB := dglGetProcAddress('TglUniformHandleui64vARB');
17102   glProgramUniformHandleui64ARB := dglGetProcAddress('TglProgramUniformHandleui64ARB');
17103   glProgramUniformHandleui64vARB := dglGetProcAddress('TglProgramUniformHandleui64vARB');
17104   glIsTextureHandleResidentARB := dglGetProcAddress('TglIsTextureHandleResidentARB');
17105   glIsImageHandleResidentARB := dglGetProcAddress('TglIsImageHandleResidentARB');
17106   glVertexAttribL1ui64ARB := dglGetProcAddress('TglVertexAttribL1ui64ARB');
17107   glVertexAttribL1ui64vARB := dglGetProcAddress('TglVertexAttribL1ui64vARB');
17108   glGetVertexAttribLui64vARB := dglGetProcAddress('TglGetVertexAttribLui64vARB');
17109 end;
17110
17111 procedure Read_GL_ARB_cl_event;
17112 begin
17113   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
17114 end;
17115
17116 procedure Read_GL_ARB_compute_variable_group_size;
17117 begin
17118   glDispatchComputeGroupSizeARB := dglGetProcAddress('glDispatchComputeGroupSizeARB');
17119 end;
17120
17121 procedure Read_GL_ARB_debug_output;
17122 begin
17123   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
17124   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
17125   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
17126   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
17127 end;
17128
17129 procedure Read_GL_ARB_robustness;
17130 begin
17131   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
17132   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
17133   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
17134   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
17135   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
17136   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
17137   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
17138   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
17139   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
17140   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
17141   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
17142   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
17143   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
17144   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
17145   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
17146   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
17147   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
17148   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
17149   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
17150   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
17151 end;
17152
17153 procedure Read_GL_ATI_draw_buffers;
17154 begin
17155   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
17156 end;
17157
17158 procedure Read_GL_ATI_element_array;
17159 begin
17160   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
17161   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
17162   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
17163 end;
17164
17165 procedure Read_GL_ATI_envmap_bumpmap;
17166 begin
17167   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
17168   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
17169   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
17170   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
17171 end;
17172
17173 procedure Read_GL_ATI_fragment_shader;
17174 begin
17175   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
17176   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
17177   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
17178   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
17179   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
17180   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
17181   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
17182   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
17183   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
17184   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
17185   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
17186   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
17187   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
17188   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
17189 end;
17190
17191 procedure Read_GL_ATI_map_object_buffer;
17192 begin
17193   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
17194   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
17195 end;
17196
17197 procedure Read_GL_ATI_pn_triangles;
17198 begin
17199   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
17200   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
17201 end;
17202
17203 procedure Read_GL_ATI_separate_stencil;
17204 begin
17205   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
17206   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
17207 end;
17208
17209 procedure Read_GL_ATI_vertex_array_object;
17210 begin
17211   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
17212   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
17213   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
17214   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
17215   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
17216   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
17217   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
17218   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
17219   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
17220   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17221   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17222   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17223
17224 end;
17225
17226 procedure Read_GL_ATI_vertex_attrib_array_object;
17227 begin
17228   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17229   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17230   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17231 end;
17232
17233 procedure Read_GL_ATI_vertex_streams;
17234 begin
17235   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17236   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17237   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17238   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17239   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17240   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17241   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17242   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17243   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17244   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17245   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17246   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17247   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17248   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17249   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17250   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17251   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17252   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17253   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17254   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17255   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17256   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17257   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17258   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17259   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17260   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17261   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17262   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17263   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17264   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17265   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17266   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17267   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17268   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17269   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17270   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17271   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17272   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17273   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17274   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17275   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17276   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17277   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17278   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17279   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17280 end;
17281
17282 procedure Read_GL_AMD_performance_monitor;
17283 begin
17284   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17285   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17286   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17287   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17288   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17289   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17290   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17291   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17292   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17293   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17294   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17295 end;
17296
17297 procedure Read_GL_AMD_vertex_shader_tesselator;
17298 begin
17299   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17300   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17301 end;
17302
17303 procedure Read_GL_AMD_draw_buffers_blend;
17304 begin
17305   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17306   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17307   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17308   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17309 end;
17310
17311 procedure Read_GL_AMD_name_gen_delete;
17312 begin
17313   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17314   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17315   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17316 end;
17317
17318 procedure Read_GL_AMD_debug_output;
17319 begin
17320   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17321   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17322   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17323   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17324 end;
17325
17326 procedure Read_GL_EXT_blend_color;
17327 begin
17328   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17329 end;
17330
17331 procedure Read_GL_EXT_blend_func_separate;
17332 begin
17333   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17334 end;
17335
17336 procedure Read_GL_EXT_blend_minmax;
17337 begin
17338   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17339 end;
17340
17341 procedure Read_GL_EXT_color_subtable;
17342 begin
17343   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17344   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17345 end;
17346
17347 procedure Read_GL_EXT_compiled_vertex_array;
17348 begin
17349   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17350   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17351 end;
17352
17353 procedure Read_GL_EXT_convolution;
17354 begin
17355   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17356   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17357   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17358   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17359   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17360   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17361   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17362   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17363   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17364   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17365   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17366   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17367   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17368 end;
17369
17370 procedure Read_GL_EXT_coordinate_frame;
17371 begin
17372   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17373   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17374   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17375   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17376   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17377   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17378   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17379   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17380   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17381   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17382   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17383   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17384   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17385   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17386   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17387   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17388   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17389   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17390   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17391   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17392   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17393   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17394 end;
17395
17396 procedure Read_GL_EXT_copy_texture;
17397 begin
17398   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17399   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17400   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17401   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17402   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17403 end;
17404
17405 procedure Read_GL_EXT_cull_vertex;
17406 begin
17407   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17408   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17409 end;
17410
17411 procedure Read_GL_EXT_draw_range_elements;
17412 begin
17413   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17414 end;
17415
17416 procedure Read_GL_EXT_fog_coord;
17417 begin
17418   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17419   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17420   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17421   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17422   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17423 end;
17424
17425 procedure Read_GL_EXT_framebuffer_object;
17426 begin
17427   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17428   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17429   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17430   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17431   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17432   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17433   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17434   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17435   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17436   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17437   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17438   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17439   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17440   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17441   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17442   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17443   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17444 end;
17445
17446 procedure Read_GL_EXT_histogram;
17447 begin
17448   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17449   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17450   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17451   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17452   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17453   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17454   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17455   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17456   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17457   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17458 end;
17459
17460 procedure Read_GL_EXT_index_func;
17461 begin
17462   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17463 end;
17464
17465 procedure Read_GL_EXT_index_material;
17466 begin
17467   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17468 end;
17469
17470 procedure Read_GL_EXT_light_texture;
17471 begin
17472   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17473   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17474   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17475 end;
17476
17477 procedure Read_GL_EXT_multi_draw_arrays;
17478 begin
17479   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17480   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17481 end;
17482
17483 procedure Read_GL_EXT_multisample;
17484 begin
17485   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17486   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17487 end;
17488
17489 procedure Read_GL_EXT_paletted_texture;
17490 begin
17491   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17492   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17493   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17494   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17495 end;
17496
17497 procedure Read_GL_EXT_pixel_transform;
17498 begin
17499   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17500   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17501   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17502   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17503 end;
17504
17505 procedure Read_GL_EXT_point_parameters;
17506 begin
17507   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17508   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17509 end;
17510
17511 procedure Read_GL_EXT_polygon_offset;
17512 begin
17513   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17514 end;
17515
17516 procedure Read_GL_EXT_secondary_color;
17517 begin
17518   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17519   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17520   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17521   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17522   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17523   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17524   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17525   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17526   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17527   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17528   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17529   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17530   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17531   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17532   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17533   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17534   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17535 end;
17536
17537 procedure Read_GL_EXT_stencil_two_side;
17538 begin
17539   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17540 end;
17541
17542 procedure Read_GL_EXT_subtexture;
17543 begin
17544   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17545   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17546 end;
17547
17548 procedure Read_GL_EXT_texture3D;
17549 begin
17550   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17551   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17552 end;
17553
17554 procedure Read_GL_EXT_texture_object;
17555 begin
17556   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17557   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17558   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17559   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17560   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17561   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17562 end;
17563
17564 procedure Read_GL_EXT_texture_perturb_normal;
17565 begin
17566   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17567 end;
17568
17569 procedure Read_GL_EXT_vertex_array;
17570 begin
17571   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17572   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17573   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17574   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17575   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17576   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17577   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17578   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17579   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17580 end;
17581
17582 procedure Read_GL_EXT_vertex_shader;
17583 begin
17584   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17585   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17586   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17587   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17588   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17589   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17590   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17591   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17592   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17593   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17594   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17595   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17596   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17597   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17598   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17599   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17600   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17601   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17602   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17603   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17604   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17605   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17606   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17607   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17608   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17609   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17610   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17611   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17612   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17613   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17614   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17615   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17616   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17617   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17618   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17619   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17620   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17621   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17622   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17623   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17624   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17625   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17626 end;
17627
17628 procedure Read_GL_EXT_vertex_weighting;
17629 begin
17630   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17631   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17632   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17633 end;
17634
17635 procedure Read_GL_EXT_depth_bounds_test;
17636 begin
17637   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17638   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17639 end;
17640
17641 procedure Read_GL_EXT_blend_equation_separate;
17642 begin
17643   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17644 end;
17645
17646 procedure Read_GL_EXT_stencil_clear_tag;
17647 begin
17648   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17649 end;
17650
17651 procedure Read_GL_EXT_framebuffer_blit;
17652 begin
17653   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17654 end;
17655
17656 procedure Read_GL_EXT_framebuffer_multisample;
17657 begin
17658   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17659 end;
17660
17661 procedure Read_GL_EXT_timer_query;
17662 begin
17663   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17664   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17665 end;
17666
17667 procedure Read_GL_EXT_gpu_program_parameters;
17668 begin
17669   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17670   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17671 end;
17672
17673 procedure Read_GL_EXT_bindable_uniform;
17674 begin
17675   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17676   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17677   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17678 end;
17679
17680 procedure Read_GL_EXT_draw_buffers2;
17681 begin
17682   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17683   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17684   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17685   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17686   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17687   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17688 end;
17689
17690 procedure Read_GL_EXT_draw_instanced;
17691 begin
17692   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17693   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17694 end;
17695
17696 procedure Read_GL_EXT_geometry_shader4;
17697 begin
17698   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17699   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17700 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17701   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17702 end;
17703
17704 procedure Read_GL_EXT_gpu_shader4;
17705 begin
17706   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17707   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17708   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17709   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17710   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17711   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17712   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17713   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17714   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17715   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17716   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17717   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17718   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17719   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17720   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17721   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17722   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17723   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17724   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17725   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17726   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17727   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17728   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17729   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17730   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17731   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17732   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17733   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17734   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17735   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17736   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17737   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17738   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17739   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17740 end;
17741
17742 procedure Read_GL_EXT_texture_array;
17743 begin
17744   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17745 end;
17746
17747 procedure Read_GL_EXT_texture_buffer_object;
17748 begin
17749   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17750 end;
17751
17752 procedure Read_GL_EXT_texture_integer;
17753 begin
17754   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17755   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17756   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17757   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17758   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17759   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17760 end;
17761
17762 procedure Read_GL_EXT_transform_feedback;
17763 begin
17764   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17765   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17766   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17767   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17768   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17769   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17770   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17771 end;
17772
17773 procedure Read_GL_EXT_direct_state_access;
17774 begin
17775   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17776   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17777   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17778   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17779   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17780   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17781   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17782   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17783   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17784   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17785   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17786   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17787   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17788   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17789   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17790   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17791   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17792   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17793   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17794   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17795   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17796   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17797   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17798   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17799   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17800   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17801   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17802   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17803   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17804   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17805   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17806   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17807   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17808   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17809   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17810   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17811   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17812   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17813   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17814   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17815   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17816   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17817   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17818   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17819   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17820   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17821   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17822   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17823   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17824   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17825   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17826   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17827   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17828   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17829   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17830   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17831   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17832   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17833   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17834   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17835   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17836   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17837   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17838   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17839   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17840   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17841   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17842   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17843   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17844   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17845   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17846   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17847   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17848   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17849   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17850   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17851   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17852   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17853   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17854   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17855   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17856   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17857   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17858   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17859   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17860   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17861   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17862   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17863   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17864   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17865   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17866   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17867   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17868   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17869   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17870   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17871   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17872   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17873   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17874   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17875   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17876   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17877   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17878   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17879   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17880   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17881   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17882   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17883   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17884   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17885   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17886   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17887   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17888   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17889   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17890   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17891   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17892   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17893   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17894   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17895   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17896   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17897   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17898   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17899   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17900   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17901   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17902   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17903   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17904   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17905   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17906   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17907   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17908   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17909   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17910   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17911   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17912   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17913   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17914   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17915   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17916   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17917   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17918   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17919   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17920   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17921   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17922   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17923   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17924   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17925   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17926   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17927   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17928   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17929   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17930   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17931   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17932   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17933   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17934   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17935   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17936   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17937   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17938   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17939   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17940   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17941   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17942   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17943   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17944   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17945   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17946   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17947   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17948   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17949   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17950   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17951   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17952   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17953   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17954   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17955   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17956   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17957   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17958   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17959   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17960   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17961   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17962   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17963   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17964   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17965   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17966   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17967   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17968   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17969   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17970   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17971   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17972   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17973   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17974   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17975   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17976   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17977   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17978   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17979   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17980   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17981 end;
17982
17983 procedure Read_GL_EXT_separate_shader_objects;
17984 begin
17985   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17986   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17987   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17988 end;
17989
17990 procedure Read_GL_EXT_shader_image_load_store;
17991 begin
17992   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17993   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17994 end;
17995
17996 procedure Read_GL_EXT_vertex_attrib_64bit;
17997 begin
17998   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
17999   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
18000   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
18001   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
18002   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
18003   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
18004   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
18005   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
18006   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
18007   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
18008   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
18009 end;
18010
18011 procedure Read_GL_HP_image_transform;
18012 begin
18013   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
18014   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
18015   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
18016   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
18017   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
18018   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
18019 end;
18020
18021 procedure Read_GL_IBM_multimode_draw_arrays;
18022 begin
18023   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
18024   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
18025 end;
18026
18027 procedure Read_GL_IBM_vertex_array_lists;
18028 begin
18029   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
18030   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
18031   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
18032   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
18033   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
18034   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
18035   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
18036   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
18037 end;
18038
18039 procedure Read_GL_INGR_blend_func_separate;
18040 begin
18041   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
18042 end;
18043
18044 procedure Read_GL_INTEL_parallel_arrays;
18045 begin
18046   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
18047   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
18048   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
18049   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
18050 end;
18051
18052 procedure Read_GL_MESA_resize_buffers;
18053 begin
18054   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
18055 end;
18056
18057 procedure Read_GL_MESA_window_pos;
18058 begin
18059   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
18060   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
18061   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
18062   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
18063   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
18064   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
18065   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
18066   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
18067   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
18068   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
18069   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
18070   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
18071   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
18072   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
18073   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
18074   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
18075   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
18076   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
18077   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
18078   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
18079   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
18080   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
18081   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
18082   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
18083 end;
18084
18085 procedure Read_GL_NV_evaluators;
18086 begin
18087   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
18088   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
18089   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
18090   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
18091   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
18092   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
18093   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
18094   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
18095   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
18096 end;
18097
18098 procedure Read_GL_NV_fence;
18099 begin
18100   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
18101   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
18102   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
18103   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
18104   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
18105   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
18106   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
18107 end;
18108
18109 procedure Read_GL_NV_fragment_program;
18110 begin
18111   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
18112   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
18113   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
18114   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
18115   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
18116   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
18117 end;
18118
18119 procedure Read_GL_NV_half_float;
18120 begin
18121   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
18122   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
18123   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
18124   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
18125   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
18126   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
18127   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
18128   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
18129   glColor3hNV := dglGetProcAddress('glColor3hNV');
18130   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
18131   glColor4hNV := dglGetProcAddress('glColor4hNV');
18132   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
18133   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
18134   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
18135   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
18136   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
18137   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
18138   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
18139   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
18140   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
18141   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
18142   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
18143   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
18144   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
18145   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
18146   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
18147   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
18148   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
18149   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
18150   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
18151   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
18152   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
18153   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
18154   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
18155   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
18156   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
18157   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
18158   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
18159   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
18160   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
18161   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
18162   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
18163   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
18164   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
18165   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
18166   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
18167 end;
18168
18169 procedure Read_GL_NV_occlusion_query;
18170 begin
18171   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
18172   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
18173   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
18174   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
18175   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
18176   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
18177   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
18178 end;
18179
18180 procedure Read_GL_NV_pixel_data_range;
18181 begin
18182   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
18183   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
18184 end;
18185
18186 procedure Read_GL_NV_point_sprite;
18187 begin
18188   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
18189   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
18190 end;
18191
18192 procedure Read_GL_NV_primitive_restart;
18193 begin
18194   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
18195   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
18196 end;
18197
18198 procedure Read_GL_NV_register_combiners;
18199 begin
18200   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
18201   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
18202   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
18203   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
18204   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
18205   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
18206   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
18207   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
18208   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
18209   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
18210   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
18211   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
18212   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
18213 end;
18214
18215 procedure Read_GL_NV_register_combiners2;
18216 begin
18217   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
18218   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
18219 end;
18220
18221 procedure Read_GL_NV_vertex_array_range;
18222 begin
18223   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18224   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18225 end;
18226
18227 procedure Read_GL_NV_vertex_program;
18228 begin
18229   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18230   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18231   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18232   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18233   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18234   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18235   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18236   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18237   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18238   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18239   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18240   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18241   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18242   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18243   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18244   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18245   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18246   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18247   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18248   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18249   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18250   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18251   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18252   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18253   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18254   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18255   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18256   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18257   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18258   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18259   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18260   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18261   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18262   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18263   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18264   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18265   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18266   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18267   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18268   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18269   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18270   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18271   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18272   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18273   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18274   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18275   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18276   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18277   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18278   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18279   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18280   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18281   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18282   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18283   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18284   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18285   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18286   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18287   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18288   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18289   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18290   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18291   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18292   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18293 end;
18294
18295 procedure Read_GL_NV_depth_buffer_float;
18296 begin
18297   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18298   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18299   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18300 end;
18301
18302 procedure Read_GL_NV_framebuffer_multisample_coverage;
18303 begin
18304   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18305 end;
18306
18307 procedure Read_GL_NV_geometry_program4;
18308 begin
18309   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18310 end;
18311
18312 procedure Read_GL_NV_gpu_program4;
18313 begin
18314   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18315   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18316   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18317   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18318   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18319   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18320   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18321   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18322   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18323   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18324   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18325   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18326   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18327   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18328   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18329   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18330 end;
18331
18332 procedure Read_GL_NV_parameter_buffer_object;
18333 begin
18334   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18335   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18336   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18337 end;
18338
18339 procedure Read_GL_NV_transform_feedback;
18340 begin
18341   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18342   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18343   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18344   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18345   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18346   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18347   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18348   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18349   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18350   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18351   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18352   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18353 end;
18354
18355 procedure Read_GL_NV_conditional_render;
18356 begin
18357   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18358   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18359 end;
18360
18361 procedure Read_GL_NV_present_video;
18362 begin
18363   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18364   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18365   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18366   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18367   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18368   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18369 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18370 end;
18371
18372 procedure Read_GL_NV_explicit_multisample;
18373 begin
18374   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18375   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18376   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18377 end;
18378
18379 procedure Read_GL_NV_transform_feedback2;
18380 begin
18381   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18382   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18383   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18384   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18385   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18386   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18387   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18388 end;
18389
18390 procedure Read_GL_NV_video_capture;
18391 begin
18392   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18393   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18394   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18395   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18396   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18397   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18398   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18399   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18400   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18401   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18402   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18403   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18404 end;
18405
18406 procedure Read_GL_NV_copy_image;
18407 begin
18408   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18409 end;
18410
18411 procedure Read_GL_NV_shader_buffer_load;
18412 begin
18413   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18414   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18415   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18416   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18417   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18418   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18419   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18420   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18421   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18422   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18423   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18424   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18425   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18426   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18427 end;
18428
18429 procedure Read_GL_NV_vertex_buffer_unified_memory;
18430 begin
18431   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18432   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18433   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18434   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18435   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18436   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18437   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18438   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18439   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18440   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18441   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18442   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18443 end;
18444
18445 procedure Read_GL_NV_gpu_program5;
18446 begin
18447   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18448   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18449 end;
18450
18451 procedure Read_GL_NV_gpu_shader5;
18452 begin
18453   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18454   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18455   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18456   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18457   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18458   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18459   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18460   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18461   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18462   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18463   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18464   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18465   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18466   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18467   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18468   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18469   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18470   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18471   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18472   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18473   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18474   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18475   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18476   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18477   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18478   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18479   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18480   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18481   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18482   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18483   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18484   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18485   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18486 end;
18487
18488 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18489 begin
18490   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18491   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18492   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18493   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18494   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18495   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18496   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18497   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18498   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18499   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18500   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18501   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18502   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18503   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18504   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18505   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18506   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18507   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18508   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18509 end;
18510
18511 procedure Read_GL_NV_vdpau_interop;
18512 begin
18513   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18514   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18515   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18516   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18517   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18518   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18519   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18520   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18521   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18522   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18523 end;
18524
18525 procedure Read_GL_NV_texture_barrier;
18526 begin
18527   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18528 end;
18529
18530 procedure Read_GL_PGI_misc_hints;
18531 begin
18532   glHintPGI := dglGetProcAddress('glHintPGI');
18533 end;
18534
18535 procedure Read_GL_SGIS_detail_texture;
18536 begin
18537   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18538   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18539 end;
18540
18541 procedure Read_GL_SGIS_fog_function;
18542 begin
18543   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18544   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18545 end;
18546
18547 procedure Read_GL_SGIS_multisample;
18548 begin
18549   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18550   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18551 end;
18552
18553 procedure Read_GL_SGIS_pixel_texture;
18554 begin
18555   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18556   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18557   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18558   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18559   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18560   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18561 end;
18562
18563 procedure Read_GL_SGIS_point_parameters;
18564 begin
18565   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18566   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18567 end;
18568
18569 procedure Read_GL_SGIS_sharpen_texture;
18570 begin
18571   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18572   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18573 end;
18574
18575 procedure Read_GL_SGIS_texture4D;
18576 begin
18577   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18578   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18579 end;
18580
18581 procedure Read_GL_SGIS_texture_color_mask;
18582 begin
18583   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18584 end;
18585
18586 procedure Read_GL_SGIS_texture_filter4;
18587 begin
18588   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18589   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18590 end;
18591
18592 procedure Read_GL_SGIX_async;
18593 begin
18594   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18595   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18596   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18597   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18598   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18599   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18600 end;
18601
18602 procedure Read_GL_SGIX_flush_raster;
18603 begin
18604   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18605 end;
18606
18607 procedure Read_GL_SGIX_fragment_lighting;
18608 begin
18609   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18610   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18611   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18612   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18613   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18614   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18615   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18616   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18617   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18618   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18619   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18620   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18621   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18622   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18623   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18624   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18625   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18626   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18627 end;
18628
18629 procedure Read_GL_SGIX_framezoom;
18630 begin
18631   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18632 end;
18633
18634 procedure Read_GL_SGIX_igloo_interface;
18635 begin
18636   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18637 end;
18638
18639 procedure Read_GL_SGIX_instruments;
18640 begin
18641   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18642   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18643   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18644   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18645   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18646   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18647 end;
18648
18649 procedure Read_GL_SGIX_list_priority;
18650 begin
18651   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18652   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18653   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18654   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18655   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18656   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18657 end;
18658
18659 procedure Read_GL_SGIX_pixel_texture;
18660 begin
18661   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18662 end;
18663
18664 procedure Read_GL_SGIX_polynomial_ffd;
18665 begin
18666   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18667   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18668   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18669   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18670 end;
18671
18672 procedure Read_GL_SGIX_reference_plane;
18673 begin
18674   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18675 end;
18676
18677 procedure Read_GL_SGIX_sprite;
18678 begin
18679   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18680   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18681   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18682   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18683 end;
18684
18685 procedure Read_GL_SGIX_tag_sample_buffer;
18686 begin
18687   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18688 end;
18689
18690 procedure Read_GL_SGI_color_table;
18691 begin
18692   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18693   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18694   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18695   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18696   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18697   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18698   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18699 end;
18700
18701 procedure Read_GL_SUNX_constant_data;
18702 begin
18703   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18704 end;
18705
18706 procedure Read_GL_SUN_global_alpha;
18707 begin
18708   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18709   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18710   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18711   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18712   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18713   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18714   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18715   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18716 end;
18717
18718 procedure Read_GL_SUN_mesh_array;
18719 begin
18720   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18721 end;
18722
18723 procedure Read_GL_SUN_triangle_list;
18724 begin
18725   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18726   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18727   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18728   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18729   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18730   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18731   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18732 end;
18733
18734 procedure Read_GL_SUN_vertex;
18735 begin
18736   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18737   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18738   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18739   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18740   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18741   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18742   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18743   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18744   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18745   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18746   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18747   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18748   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18749   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18750   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18751   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18752   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18753   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18754   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18755   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18756   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18757   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18758   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18759   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18760   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18761   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18762   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18763   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18764   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18765   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18766   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18767   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18768   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18769   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18770   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18771   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18772   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18773   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18774   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18775   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18776 end;
18777
18778 {$IFDEF DGL_WIN}
18779 procedure Read_WGL_ARB_buffer_region;
18780 begin
18781   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18782   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18783   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18784   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18785 end;
18786
18787 procedure Read_WGL_ARB_extensions_string;
18788 begin
18789   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18790 end;
18791
18792 procedure Read_WGL_ARB_make_current_read;
18793 begin
18794   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18795   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18796 end;
18797
18798 procedure Read_WGL_ARB_pbuffer;
18799 begin
18800   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18801   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18802   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18803   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18804   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18805 end;
18806
18807 procedure Read_WGL_ARB_pixel_format;
18808 begin
18809   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18810   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18811   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18812 end;
18813
18814 procedure Read_WGL_ARB_pixel_format_float;
18815 begin
18816   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18817 end;
18818
18819 procedure Read_WGL_ARB_render_texture;
18820 begin
18821   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18822   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18823   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18824 end;
18825
18826 procedure Read_WGL_ARB_create_context;
18827 begin
18828   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18829 end;
18830
18831 procedure Read_WGL_AMD_gpu_association;
18832 begin
18833   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18834   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18835   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18836   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18837   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18838   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18839   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18840   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18841   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18842 end;
18843
18844 procedure Read_WGL_EXT_display_color_table;
18845 begin
18846   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18847   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18848   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18849   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18850 end;
18851
18852 procedure Read_WGL_EXT_extensions_string;
18853 begin
18854   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18855 end;
18856
18857 procedure Read_WGL_EXT_make_current_read;
18858 begin
18859   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18860   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18861 end;
18862
18863 procedure Read_WGL_EXT_pbuffer;
18864 begin
18865   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18866   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18867   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18868   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18869   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18870 end;
18871
18872 procedure Read_WGL_EXT_pixel_format;
18873 begin
18874   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18875   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18876   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18877 end;
18878
18879 procedure Read_WGL_EXT_swap_control;
18880 begin
18881   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18882   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18883 end;
18884
18885 procedure Read_WGL_I3D_digital_video_control;
18886 begin
18887   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18888   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18889 end;
18890
18891 procedure Read_WGL_I3D_gamma;
18892 begin
18893   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18894   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18895   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18896   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18897 end;
18898
18899 procedure Read_WGL_I3D_genlock;
18900 begin
18901   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18902   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18903   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18904   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18905   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18906   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18907   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18908   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18909   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18910   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18911   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18912   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18913 end;
18914
18915 procedure Read_WGL_I3D_image_buffer;
18916 begin
18917   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18918   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18919   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18920   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18921 end;
18922
18923 procedure Read_WGL_I3D_swap_frame_lock;
18924 begin
18925   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18926   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18927   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18928   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18929 end;
18930
18931 procedure Read_WGL_I3D_swap_frame_usage;
18932 begin
18933   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18934   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18935   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18936   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18937 end;
18938
18939 procedure Read_WGL_NV_vertex_array_range;
18940 begin
18941   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18942   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18943 end;
18944
18945 procedure Read_WGL_NV_present_video;
18946 begin
18947   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18948   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18949   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18950 end;
18951
18952 procedure Read_WGL_NV_video_output;
18953 begin
18954   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18955   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18956   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18957   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18958   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18959   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18960 end;
18961
18962 procedure Read_WGL_NV_swap_group;
18963 begin
18964   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18965   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18966   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18967   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18968   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18969   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18970 end;
18971
18972 procedure Read_WGL_NV_gpu_affinity;
18973 begin
18974   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18975   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18976   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18977   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18978   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18979 end;
18980
18981 procedure Read_WGL_NV_video_capture;
18982 begin
18983   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18984   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18985   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18986   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18987   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18988 end;
18989
18990 procedure Read_WGL_NV_copy_image;
18991 begin
18992   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18993 end;
18994
18995 procedure Read_WGL_NV_DX_interop;
18996 begin
18997   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
18998   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
18999   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
19000   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
19001   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
19002   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
19003   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
19004   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
19005 end;
19006
19007
19008 procedure Read_WGL_OML_sync_control;
19009 begin
19010   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
19011   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
19012   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
19013   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
19014   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
19015   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
19016 end;
19017
19018 procedure Read_WGL_3DL_stereo_control;
19019 begin
19020   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
19021 end;
19022
19023 procedure Read_WIN_draw_range_elements;
19024 begin
19025   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
19026 end;
19027
19028 procedure Read_WIN_swap_hint;
19029 begin
19030   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
19031 end;
19032 {$ENDIF}
19033
19034
19035 procedure ReadExtensions;
19036 begin
19037   ReadOpenGLCore;
19038
19039   Read_GL_3DFX_tbuffer;
19040   Read_GL_APPLE_element_array;
19041   Read_GL_APPLE_fence;
19042   Read_GL_APPLE_vertex_array_object;
19043   Read_GL_APPLE_vertex_array_range;
19044   Read_GL_APPLE_texture_range;
19045   Read_GL_APPLE_vertex_program_evaluators;
19046   Read_GL_APPLE_object_purgeable;
19047   Read_GL_ARB_matrix_palette;
19048   Read_GL_ARB_multitexture;
19049   Read_GL_ARB_point_parameters;
19050   Read_GL_ARB_texture_compression;
19051   Read_GL_ARB_transpose_matrix;
19052   Read_GL_ARB_vertex_blend;
19053   Read_GL_ARB_vertex_buffer_object;
19054   Read_GL_ARB_vertex_program;
19055   Read_GL_ARB_window_pos;
19056   Read_GL_ARB_color_buffer_float;
19057   Read_GL_ARB_Shader_Objects;
19058   Read_GL_ARB_occlusion_query;
19059   Read_GL_ARB_draw_instanced;
19060   Read_GL_ARB_framebuffer_object;
19061   Read_GL_ARB_geometry_shader4;
19062   Read_GL_ARB_instanced_arrays;
19063   Read_GL_ARB_map_buffer_range;
19064   Read_GL_ARB_texture_buffer_object;
19065   Read_GL_ARB_vertex_array_object;
19066   Read_GL_ARB_uniform_buffer_object;
19067   Read_GL_ARB_copy_buffer;
19068   Read_GL_ARB_draw_elements_base_vertex;
19069   Read_GL_ARB_provoking_vertex;
19070   Read_GL_ARB_sync;
19071   Read_GL_ARB_texture_multisample;
19072   Read_GL_ARB_draw_buffers_blend;
19073   Read_GL_ARB_sample_shading;
19074   Read_GL_ARB_shading_language_include;
19075   Read_GL_ARB_sparse_texture;
19076   Read_GL_ARB_sparse_buffer;
19077   Read_GL_ARB_blend_func_extended;
19078   Read_GL_ARB_sampler_objects;
19079   Read_GL_ARB_timer_query;
19080   Read_GL_ARB_vertex_type_2_10_10_10_rev;
19081   Read_GL_ARB_draw_indirect;
19082   Read_GL_ARB_gpu_shader_fp64;
19083   Read_GL_ARB_shader_subroutine;
19084   Read_GL_ARB_tessellation_shader;
19085   Read_GL_ARB_transform_feedback2;
19086   Read_GL_ARB_transform_feedback3;
19087   Read_GL_ARB_ES2_compatibility;
19088   Read_GL_ARB_get_program_binary;
19089   Read_GL_ARB_separate_shader_objects;
19090   Read_GL_ARB_vertex_attrib_64bit;
19091   Read_GL_ARB_viewport_array;
19092   Read_GL_ARB_cl_event;
19093   Read_GL_ARB_compute_variable_group_size;
19094   Read_GL_ARB_debug_output;
19095   Read_GL_ARB_robustness;
19096   //
19097   Read_GL_ATI_draw_buffers;
19098   Read_GL_ATI_element_array;
19099   Read_GL_ATI_envmap_bumpmap;
19100   Read_GL_ATI_fragment_shader;
19101   Read_GL_ATI_map_object_buffer;
19102   Read_GL_ATI_pn_triangles;
19103   Read_GL_ATI_separate_stencil;
19104   Read_GL_ATI_vertex_array_object;
19105   Read_GL_ATI_vertex_attrib_array_object;
19106   Read_GL_ATI_vertex_streams;
19107   Read_GL_AMD_performance_monitor;
19108   Read_GL_AMD_vertex_shader_tesselator;
19109   Read_GL_AMD_draw_buffers_blend;
19110   Read_GL_AMD_name_gen_delete;
19111   Read_GL_AMD_debug_output;
19112   Read_GL_AMD_stencil_operation_extended;
19113   Read_GL_EXT_blend_color;
19114   Read_GL_EXT_blend_func_separate;
19115   Read_GL_EXT_blend_minmax;
19116   Read_GL_EXT_color_subtable;
19117   Read_GL_EXT_compiled_vertex_array;
19118   Read_GL_EXT_convolution;
19119   Read_GL_EXT_coordinate_frame;
19120   Read_GL_EXT_copy_texture;
19121   Read_GL_EXT_cull_vertex;
19122   Read_GL_EXT_draw_range_elements;
19123   Read_GL_EXT_fog_coord;
19124   Read_GL_EXT_framebuffer_object;
19125   Read_GL_EXT_histogram;
19126   Read_GL_EXT_index_func;
19127   Read_GL_EXT_index_material;
19128   Read_GL_EXT_multi_draw_arrays;
19129   Read_GL_EXT_multisample;
19130   Read_GL_EXT_paletted_texture;
19131   Read_GL_EXT_pixel_transform;
19132   Read_GL_EXT_point_parameters;
19133   Read_GL_EXT_polygon_offset;
19134   Read_GL_EXT_secondary_color;
19135   Read_GL_EXT_stencil_two_side;
19136   Read_GL_EXT_subtexture;
19137   Read_GL_EXT_texture3D;
19138   Read_GL_EXT_texture_object;
19139   Read_GL_EXT_texture_perturb_normal;
19140   Read_GL_EXT_vertex_array;
19141   Read_GL_EXT_vertex_shader;
19142   Read_GL_EXT_vertex_weighting;
19143   Read_GL_EXT_depth_bounds_test;
19144   Read_GL_EXT_blend_equation_separate;
19145   Read_GL_EXT_stencil_clear_tag;
19146   Read_GL_EXT_framebuffer_blit;
19147   Read_GL_EXT_framebuffer_multisample;
19148   Read_GL_EXT_timer_query;
19149   Read_GL_EXT_gpu_program_parameters;
19150   Read_GL_EXT_bindable_uniform;
19151   Read_GL_EXT_draw_buffers2;
19152   Read_GL_EXT_draw_instanced;
19153   Read_GL_EXT_geometry_shader4;
19154   Read_GL_EXT_gpu_shader4;
19155   Read_GL_EXT_texture_array;
19156   Read_GL_EXT_texture_buffer_object;
19157   Read_GL_EXT_texture_integer;
19158   Read_GL_EXT_transform_feedback;
19159   Read_GL_EXT_direct_state_access;
19160   Read_GL_EXT_separate_shader_objects;
19161   Read_GL_EXT_shader_image_load_store;
19162   Read_GL_EXT_vertex_attrib_64bit;
19163   Read_GL_HP_image_transform;
19164   Read_GL_IBM_multimode_draw_arrays;
19165   Read_GL_IBM_vertex_array_lists;
19166   Read_GL_INGR_blend_func_separate;
19167   Read_GL_INTEL_parallel_arrays;
19168   Read_GL_KHR_blend_equation_advanced;
19169   Read_GL_MESA_resize_buffers;
19170   Read_GL_MESA_window_pos;
19171   Read_GL_NV_evaluators;
19172   Read_GL_NV_fence;
19173   Read_GL_NV_fragment_program;
19174   Read_GL_NV_half_float;
19175   Read_GL_NV_occlusion_query;
19176   Read_GL_NV_pixel_data_range;
19177   Read_GL_NV_point_sprite;
19178   Read_GL_NV_primitive_restart;
19179   Read_GL_NV_register_combiners;
19180   Read_GL_NV_register_combiners2;
19181   Read_GL_NV_vertex_array_range;
19182   Read_GL_NV_vertex_program;
19183   Read_GL_NV_depth_buffer_float;
19184   Read_GL_NV_framebuffer_multisample_coverage;
19185   Read_GL_NV_geometry_program4;
19186   Read_GL_NV_gpu_program4;
19187   Read_GL_NV_parameter_buffer_object;
19188   Read_GL_NV_transform_feedback;
19189   Read_GL_NV_conditional_render;
19190   Read_GL_NV_present_video;
19191   Read_GL_NV_explicit_multisample;
19192   Read_GL_NV_transform_feedback2;
19193   Read_GL_NV_video_capture;
19194   Read_GL_NV_copy_image;
19195   Read_GL_NV_shader_buffer_load;
19196   Read_GL_NV_vertex_buffer_unified_memory;
19197   Read_GL_NV_gpu_program5;
19198   Read_GL_NV_gpu_shader5;
19199   Read_GL_NV_vertex_attrib_integer_64bit;
19200   Read_GL_NV_vdpau_interop;
19201   Read_GL_NV_texture_barrier;
19202   Read_GL_NV_path_rendering;
19203   Read_GL_NV_bindless_texture;
19204   Read_GL_PGI_misc_hints;
19205   Read_GL_SGIS_detail_texture;
19206   Read_GL_SGIS_fog_function;
19207   Read_GL_SGIS_multisample;
19208   Read_GL_SGIS_pixel_texture;
19209   Read_GL_SGIS_point_parameters;
19210   Read_GL_SGIS_sharpen_texture;
19211   Read_GL_SGIS_texture4D;
19212   Read_GL_SGIS_texture_color_mask;
19213   Read_GL_SGIS_texture_filter4;
19214   Read_GL_SGIX_async;
19215   Read_GL_SGIX_flush_raster;
19216   Read_GL_SGIX_fragment_lighting;
19217   Read_GL_SGIX_framezoom;
19218   Read_GL_SGIX_igloo_interface;
19219   Read_GL_SGIX_instruments;
19220   Read_GL_SGIX_list_priority;
19221   Read_GL_SGIX_pixel_texture;
19222   Read_GL_SGIX_polynomial_ffd;
19223   Read_GL_SGIX_reference_plane;
19224   Read_GL_SGIX_sprite;
19225   Read_GL_SGIX_tag_sample_buffer;
19226   Read_GL_SGI_color_table;
19227   Read_GL_SUNX_constant_data;
19228   Read_GL_SUN_global_alpha;
19229   Read_GL_SUN_mesh_array;
19230   Read_GL_SUN_triangle_list;
19231   Read_GL_SUN_vertex;
19232
19233 {$IFDEF DGL_WIN}
19234   Read_WGL_ARB_buffer_region;
19235   Read_WGL_ARB_extensions_string;
19236   Read_WGL_ARB_make_current_read;
19237   Read_WGL_ARB_pbuffer;
19238   Read_WGL_ARB_pixel_format;
19239   Read_WGL_ARB_pixel_format_float;
19240   Read_WGL_ARB_render_texture;
19241   Read_WGL_ARB_create_context;
19242   Read_WGL_AMD_gpu_association;
19243   Read_WGL_EXT_display_color_table;
19244   Read_WGL_EXT_extensions_string;
19245   Read_WGL_EXT_make_current_read;
19246   Read_WGL_EXT_pbuffer;
19247   Read_WGL_EXT_pixel_format;
19248   Read_WGL_EXT_swap_control;
19249   Read_WGL_I3D_digital_video_control;
19250   Read_WGL_I3D_gamma;
19251   Read_WGL_I3D_genlock;
19252   Read_WGL_I3D_image_buffer;
19253   Read_WGL_I3D_swap_frame_lock;
19254   Read_WGL_I3D_swap_frame_usage;
19255   Read_WGL_NV_vertex_array_range;
19256   Read_WGL_NV_present_video;
19257   Read_WGL_NV_video_output;
19258   Read_WGL_NV_swap_group;
19259   Read_WGL_NV_gpu_affinity;
19260   Read_WGL_NV_video_capture;
19261   Read_WGL_NV_copy_image;
19262   Read_WGL_NV_DX_interop;
19263   Read_WGL_OML_sync_control;
19264   Read_WGL_3DL_stereo_control;
19265
19266   Read_WIN_draw_range_elements;
19267   Read_WIN_swap_hint;
19268 {$ENDIF}
19269
19270   ExtensionsRead := True;
19271 end;
19272
19273 // =============================================================================
19274 //  ReadCoreVersion
19275 // =============================================================================
19276
19277 procedure ReadCoreVersion;
19278 var
19279   AnsiBuffer: AnsiString;
19280   Buffer: String;
19281   MajorVersion, MinorVersion: Integer;
19282
19283   procedure TrimAndSplitVersionString(Buffer: String; var Max, Min: Integer);
19284     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19285     // at least however "Major.Minor".
19286   var
19287     Separator: Integer;
19288   begin
19289     try
19290       // There must be at least one dot to separate major and minor version number.
19291       Separator := Pos('.', Buffer);
19292       // At least one number must be before and one after the dot.
19293       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19294       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19295       begin
19296         // OK, it's a valid version string. Now remove unnecessary parts.
19297         Dec(Separator);
19298         // Find last non-numeric character before version number.
19299         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19300           Dec(Separator);
19301         // Delete leading characters which do not belong to the version string.
19302         Delete(Buffer, 1, Separator);
19303         Separator := Pos('.', Buffer) + 1;
19304         // Find first non-numeric character after version number
19305         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19306           Inc(Separator);
19307         // delete trailing characters not belonging to the version string
19308         Delete(Buffer, Separator, 255);
19309         // Now translate the numbers.
19310         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19311         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19312         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19313       end
19314       else
19315         Abort;
19316     except
19317       Min := 0;
19318       Max := 0;
19319     end;
19320   end;
19321
19322
19323 begin
19324   // determine version of implementation
19325   // GL
19326   if not Assigned(@glGetString) then
19327     glGetString := dglGetProcAddress('glGetString');
19328
19329   AnsiBuffer := glGetString(GL_VERSION);
19330   Buffer := String(AnsiBuffer);
19331
19332   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19333
19334   GL_VERSION_1_0 := True;
19335   GL_VERSION_1_1 := False;
19336   GL_VERSION_1_2 := False;
19337   GL_VERSION_1_3 := False;
19338   GL_VERSION_1_4 := False;
19339   GL_VERSION_1_5 := False;
19340   GL_VERSION_2_0 := False;
19341   GL_VERSION_2_1 := False;
19342   GL_VERSION_3_0 := False;
19343   GL_VERSION_3_1 := False;
19344   GL_VERSION_3_2 := False;
19345   GL_VERSION_3_3 := False;
19346   GL_VERSION_4_0 := False;
19347   GL_VERSION_4_1 := False;
19348   GL_VERSION_4_2 := False;
19349   GL_VERSION_4_3 := False;
19350   GL_VERSION_4_4 := False;
19351   GL_VERSION_4_5 := False;
19352
19353   if MajorVersion = 1 then
19354   begin
19355     if MinorVersion >= 1 then
19356       GL_VERSION_1_1 := True;
19357     if MinorVersion >= 2 then
19358       GL_VERSION_1_2 := True;
19359     if MinorVersion >= 3 then
19360       GL_VERSION_1_3 := True;
19361     if MinorVersion >= 4 then
19362       GL_VERSION_1_4 := True;
19363     if MinorVersion >= 5 then
19364       GL_VERSION_1_5 := True;
19365   end;
19366
19367   if MajorVersion >= 2 then
19368   begin
19369     GL_VERSION_1_1 := True;
19370     GL_VERSION_1_2 := True;
19371     GL_VERSION_1_3 := True;
19372     GL_VERSION_1_4 := True;
19373     GL_VERSION_1_5 := True;
19374     GL_VERSION_2_0 := True;
19375
19376     if MinorVersion >= 1 then
19377       GL_VERSION_2_1 := True;
19378   end;
19379
19380   if MajorVersion >= 3 then
19381   begin
19382     GL_VERSION_2_1 := True;
19383     GL_VERSION_3_0 := True;
19384
19385     if MinorVersion >= 1 then
19386       GL_VERSION_3_1 := True;
19387     if MinorVersion >= 2 then
19388       GL_VERSION_3_2 := True;
19389     if MinorVersion >= 3 then
19390       GL_VERSION_3_3 := True;
19391   end;
19392
19393   if MajorVersion >= 4 then
19394   begin
19395     GL_VERSION_3_1 := True;
19396     GL_VERSION_3_2 := True;
19397     GL_VERSION_3_3 := True;
19398     GL_VERSION_4_0 := True;
19399
19400     if MinorVersion >= 1 then
19401       GL_VERSION_4_1 := True;
19402     if MinorVersion >= 2 then
19403       GL_VERSION_4_2 := True;
19404     if MinorVersion >= 3 then
19405       GL_VERSION_4_3 := True;
19406     if MinorVersion >= 4 then
19407       GL_VERSION_4_4 := True;
19408     if MinorVersion >= 5 then
19409       GL_VERSION_4_5:= True;
19410   end;
19411
19412   // GLU
19413   GLU_VERSION_1_1 := False;
19414   GLU_VERSION_1_2 := False;
19415   GLU_VERSION_1_3 := False;
19416
19417   if Assigned(gluGetString) then begin
19418     AnsiBuffer := gluGetString(GLU_VERSION);
19419     Buffer := String(AnsiBuffer);
19420
19421     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19422
19423     GLU_VERSION_1_1 := True;
19424
19425     if MinorVersion >= 2 then
19426       GLU_VERSION_1_2 := True;
19427
19428     if MinorVersion >= 3 then
19429       GLU_VERSION_1_3 := True;
19430   end;
19431 end;
19432
19433
19434 // =============================================================================
19435 //  ReadImplementationProperties
19436 // =============================================================================
19437
19438 procedure ReadImplementationProperties;
19439 var
19440   Buffer: Ansistring;
19441 begin
19442   ReadCoreVersion;
19443
19444   // Check all extensions
19445   Buffer := Int_GetExtensionString;
19446
19447   // 3DFX
19448   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19449   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19450   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19451
19452   // APPLE
19453   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19454   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19455   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19456   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19457   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19458   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19459   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19460   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19461   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19462   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19463   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19464   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19465   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19466   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19467   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19468
19469   // ARB
19470   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19471   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19472   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19473   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19474   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19475   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19476   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19477   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19478   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19479   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19480   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19481   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19482   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19483   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19484   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19485   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19486   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19487   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19488   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19489   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19490   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19491   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19492   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19493   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19494   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19495   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19496   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19497   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19498   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19499   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19500   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19501   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19502   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19503   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19504   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19505   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19506   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19507   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19508   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19509   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19510   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19511   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19512   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19513   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19514   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19515   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19516   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19517   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19518   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19519   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19520   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19521   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19522   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19523   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19524   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19525   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19526   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19527   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19528   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19529   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19530   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19531   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19532   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19533   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19534   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19535   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19536   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19537   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19538   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19539   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19540   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19541   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19542   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19543   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19544   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19545   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19546   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19547   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19548   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19549   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19550   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19551   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19552   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19553   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19554   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19555   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19556   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19557   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19558   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19559   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19560   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19561   GL_ARB_compute_variable_group_size := Int_CheckExtension(Buffer, 'GL_ARB_compute_variable_group_size');
19562
19563   // GL 4.2
19564   GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19565   GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19566   GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19567   GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19568   GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19569   GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19570   GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19571   GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19572   GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19573   GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19574   GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19575
19576   // GL 4.3
19577   GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19578   GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19579   GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19580   GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19581   GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19582   GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19583   GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19584   GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19585   GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19586   GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19587   GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19588   GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19589   GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19590   GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19591   GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19592   GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19593   GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19594   GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19595   GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19596   GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19597   GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19598   GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19599   GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19600   GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19601   GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19602   GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19603
19604   // GL 4.4
19605   GL_ARB_buffer_storage := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19606   GL_ARB_clear_texture := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19607   GL_ARB_enhanced_layouts := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19608   GL_ARB_multi_bind := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19609   GL_ARB_query_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19610   GL_ARB_texture_mirror_clamp_to_edge:= Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19611   GL_ARB_texture_stencil8 := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19612   GL_ARB_vertex_type_10f_11f_11f_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19613   GL_ARB_bindless_texture := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
19614   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19615
19616   // GL 4.5
19617   GL_ARB_clip_control := Int_CheckExtension(Buffer, 'GL_ARB_clip_control');
19618   GL_ARB_cull_distance := Int_CheckExtension(Buffer, 'GL_ARB_cull_distance');
19619   GL_ARB_ES3_1_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_1_compatibility');
19620   GL_ARB_conditional_render_inverted := Int_CheckExtension(Buffer, 'GL_ARB_conditional_render_inverted');
19621   GL_KHR_context_flush_control := Int_CheckExtension(Buffer, 'GL_KHR_context_flush_control');
19622   GL_ARB_derivative_control := Int_CheckExtension(Buffer, 'GL_ARB_derivative_control');
19623   GL_ARB_direct_state_access := Int_CheckExtension(Buffer, 'GL_ARB_direct_state_access');
19624   GL_ARB_get_texture_sub_image := Int_CheckExtension(Buffer, 'GL_ARB_get_texture_sub_image');
19625   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19626   GL_ARB_shader_texture_image_samples := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_image_samples');
19627   GL_ARB_texture_barrier := Int_CheckExtension(Buffer, 'GL_ARB_texture_barrier');
19628
19629   // ATI/AMD
19630   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19631   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19632   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19633   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19634   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19635   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19636   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19637   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19638   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19639   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19640   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19641   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19642   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19643   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19644   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19645   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19646   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19647   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19648   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19649   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19650   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19651   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19652   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19653   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19654   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19655   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19656   // 4.3
19657   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19658   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19659   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19660   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19661   GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19662
19663   // EXT
19664   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19665   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19666   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19667   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19668   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19669   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19670   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19671   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19672   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19673   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19674   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19675   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19676   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19677   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19678   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19679   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19680   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19681   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19682   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19683   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19684   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19685   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19686   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19687   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19688   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19689   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19690   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19691   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19692   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19693   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19694   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19695   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19696   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19697   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19698   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19699   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19700   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19701   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19702   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19703   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19704   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19705   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19706   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19707   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19708   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19709   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19710   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19711   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19712   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19713   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19714   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19715   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19716   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19717   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19718   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19719   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19720   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19721   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19722   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19723   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19724   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19725   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19726   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19727   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19728   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19729   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19730   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19731   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19732   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19733   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19734   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19735   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19736   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19737   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19738   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19739   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19740   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19741   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19742   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19743   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19744   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19745   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19746   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19747   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19748   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19749   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19750   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19751   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19752   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19753   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19754   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19755   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19756   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19757   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19758
19759   // HP
19760   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19761   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19762   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19763   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19764
19765   // IBM
19766   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19767   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19768   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19769   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19770   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19771
19772   // INGR
19773   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19774   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19775   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19776   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19777
19778   // INTEL
19779   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19780   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19781
19782   // MESA
19783   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19784   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19785
19786   // Khronos
19787   // 4.5
19788   GL_KHR_blend_equation_advanced := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced');
19789   GL_KHR_blend_equation_advanced_coherent := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
19790   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19791   GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior');
19792
19793   // NVIDIA
19794   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19795   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19796   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19797   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19798   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19799   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19800   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19801   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19802   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19803   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19804   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19805   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19806   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19807   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19808   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19809   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19810   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19811   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19812   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19813   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19814   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19815   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19816   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19817   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19818   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19819   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19820   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19821   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19822   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19823   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19824   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19825   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19826   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19827   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19828   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19829   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19830   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19831   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19832   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19833   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19834   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19835   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19836   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19837   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19838   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19839   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19840   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19841   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19842   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19843   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19844   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19845   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19846   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19847   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19848   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19849   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19850   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19851   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19852   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19853   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19854   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19855   // 4.3
19856   GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19857   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19858   GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19859
19860   // OML
19861   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19862   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19863   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19864
19865   // PGI
19866   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19867   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19868
19869   // REND
19870   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19871
19872   // S3
19873   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19874
19875   // SGIS
19876   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19877   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19878   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19879   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19880   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19881   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19882   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19883   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19884   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19885   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19886   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19887   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19888   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19889   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19890   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19891
19892   // SGIX
19893   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19894   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19895   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19896   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19897   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19898   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19899   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19900   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19901   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19902   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19903   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19904   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19905   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19906   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19907   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19908   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19909   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19910   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19911   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19912   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19913   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19914   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19915   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19916   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19917   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19918   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19919   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19920   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19921   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19922   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19923   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19924   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19925   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19926   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19927   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19928   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19929   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19930   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19931   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19932   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19933   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19934   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19935
19936   // SGI
19937   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19938   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19939   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19940   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19941
19942   // SUN
19943   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19944   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19945   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19946   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19947   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19948   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19949   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19950
19951   // WIN
19952   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19953   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19954
19955   {$IFDEF DGL_WIN}
19956   // WGL
19957   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19958   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19959   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19960   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19961   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19962   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19963   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19964   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19965   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19966   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19967   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19968   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19969   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19970   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19971   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19972   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19973   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19974   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19975   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19976   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19977   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19978   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19979   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19980   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19981   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19982   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19983   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19984   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19985   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19986   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19987   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19988   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19989   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19990   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19991   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19992   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19993   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19994   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19995   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19996   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19997   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19998   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19999   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
20000   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
20001   WGL_ARB_context_flush_control := Int_CheckExtension(Buffer, 'WGL_ARB_context_flush_control');
20002   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
20003   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
20004   {$ENDIF}
20005
20006   {$IFDEF DGL_LINUX}
20007   // GLX
20008   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
20009   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
20010   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
20011   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
20012   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
20013   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
20014   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
20015   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
20016   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
20017   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
20018   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
20019   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
20020   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
20021   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
20022   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
20023   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
20024   GLX_ARB_context_flush_control := Int_CheckExtension(Buffer, 'GLX_ARB_context_flush_control');
20025   {$ENDIF}
20026
20027   ImplementationRead := True;
20028 end;
20029
20030 {$IFDEF DGL_WIN}
20031 // =============================================================================
20032 // RaiseLastOSError
20033 // =============================================================================
20034 // Needed for compatibility with older Delphiversions
20035 // =============================================================================
20036
20037 procedure RaiseLastOSError;
20038 begin
20039 {$IFDEF FPC}
20040   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
20041 {$ELSE}
20042   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
20043     SysUtils.RaiseLastWin32Error;
20044   {$ELSE}
20045     SysUtils.RaiseLastOSError;
20046   {$ENDIF}
20047 {$ENDIF}
20048 end;
20049
20050 // =============================================================================
20051 // CreateRenderingContext
20052 // =============================================================================
20053
20054 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20055 const
20056   OBJ_MEMDC = 10;
20057   OBJ_ENHMETADC = 12;
20058   OBJ_METADC = 4;
20059   PFD_DOUBLEBUFFER = $00000001;
20060   PFD_STEREO = $00000002;
20061   PFD_DRAW_TO_WINDOW = $00000004;
20062   PFD_DRAW_TO_BITMAP = $00000008;
20063   PFD_SUPPORT_GDI = $00000010;
20064   PFD_SUPPORT_OPENGL = $00000020;
20065   PFD_TYPE_RGBA = 0;
20066   PFD_MAIN_PLANE = 0;
20067   PFD_OVERLAY_PLANE = 1;
20068   PFD_UNDERLAY_PLANE = LongWord(-1);
20069   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20070 var
20071   PFDescriptor: TPixelFormatDescriptor;
20072   PixelFormat: Integer;
20073   AType: DWORD;
20074 begin
20075   if GL_LibHandle = nil then
20076     InitOpenGL;
20077
20078   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20079
20080   with PFDescriptor do
20081   begin
20082     nSize := SizeOf(PFDescriptor);
20083     nVersion := 1;
20084     dwFlags := PFD_SUPPORT_OPENGL;
20085
20086     AType := GetObjectType(DC);
20087
20088     if AType = 0 then
20089       RaiseLastOSError;
20090
20091     if AType in MemoryDCs then
20092       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20093     else
20094       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20095
20096     if opDoubleBuffered in Options then
20097       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20098
20099     if opGDI in Options then
20100       dwFlags := dwFlags or PFD_SUPPORT_GDI;
20101
20102     if opStereo in Options then
20103       dwFlags := dwFlags or PFD_STEREO;
20104
20105     iPixelType := PFD_TYPE_RGBA;
20106     cColorBits := ColorBits;
20107     cDepthBits := zBits;
20108     cStencilBits := StencilBits;
20109     cAccumBits := AccumBits;
20110     cAuxBuffers := AuxBuffers;
20111
20112     if Layer = 0 then
20113       iLayerType := PFD_MAIN_PLANE
20114     else
20115     if Layer > 0 then
20116       iLayerType := PFD_OVERLAY_PLANE
20117     else
20118       iLayerType := Byte(PFD_UNDERLAY_PLANE);
20119   end;
20120
20121   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20122
20123   if PixelFormat = 0 then
20124     RaiseLastOSError;
20125
20126   if GetPixelFormat(DC) <> PixelFormat then
20127     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20128       RaiseLastOSError;
20129
20130   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20131
20132   Result := wglCreateContext(DC);
20133
20134   if Result = 0 then
20135     RaiseLastOSError
20136   else
20137     LastPixelFormat := 0;
20138 end;
20139
20140 // =============================================================================
20141 // CreateRenderingContextVersion
20142 // =============================================================================
20143 //  Creates a context for the more recent OpenGL versions (3.0) and up
20144 //  For that we first need to get a normal GL context for getting the
20145 //  function pointer to wglCreateContextAttribsARB first
20146 // =============================================================================
20147 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20148 const
20149   OBJ_MEMDC          = 10;
20150   OBJ_ENHMETADC      = 12;
20151   OBJ_METADC         = 4;
20152   PFD_DOUBLEBUFFER   = $00000001;
20153   PFD_STEREO         = $00000002;
20154   PFD_DRAW_TO_WINDOW = $00000004;
20155   PFD_DRAW_TO_BITMAP = $00000008;
20156   PFD_SUPPORT_GDI    = $00000010;
20157   PFD_SUPPORT_OPENGL = $00000020;
20158   PFD_TYPE_RGBA      = 0;
20159   PFD_MAIN_PLANE     = 0;
20160   PFD_OVERLAY_PLANE  = 1;
20161   PFD_UNDERLAY_PLANE = LongWord(-1);
20162   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20163 var
20164   PFDescriptor : TPixelFormatDescriptor;
20165   PixelFormat  : Integer;
20166   AType        : DWORD;
20167   LegacyRC     : HGLRC;
20168   Attribs      : array of Integer;
20169 begin
20170   if GL_LibHandle = nil then
20171         InitOpenGL;
20172
20173   if not Assigned(GL_LibHandle) then
20174         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
20175
20176   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20177
20178   with PFDescriptor do
20179     begin
20180       nSize    := SizeOf(PFDescriptor);
20181       nVersion := 1;
20182       dwFlags  := PFD_SUPPORT_OPENGL;
20183       AType    := GetObjectType(DC);
20184
20185       if AType = 0 then
20186         RaiseLastOSError;
20187
20188       if AType in MemoryDCs then
20189         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20190       else
20191         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20192
20193       if opDoubleBuffered in Options then
20194         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20195
20196       if opGDI in Options then
20197         dwFlags := dwFlags or PFD_SUPPORT_GDI;
20198
20199       if opStereo in Options then
20200         dwFlags := dwFlags or PFD_STEREO;
20201
20202       iPixelType   := PFD_TYPE_RGBA;
20203       cColorBits   := ColorBits;
20204       cDepthBits   := zBits;
20205       cStencilBits := StencilBits;
20206       cAccumBits   := AccumBits;
20207       cAuxBuffers  := AuxBuffers;
20208
20209       if Layer = 0 then
20210         iLayerType := PFD_MAIN_PLANE
20211       else
20212         if Layer > 0 then
20213           iLayerType := PFD_OVERLAY_PLANE
20214         else
20215           iLayerType := Byte(PFD_UNDERLAY_PLANE);
20216     end;
20217
20218   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20219
20220   if PixelFormat = 0 then
20221         RaiseLastOSError;
20222
20223   if GetPixelFormat(DC) <> PixelFormat then
20224         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20225                 RaiseLastOSError;
20226
20227   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20228
20229   // Create legacy render context first for we need function pointers to
20230   // create new OpenGL render contexts
20231   LegacyRC := wglCreateContext(DC);
20232   wglMakeCurrent(DC, LegacyRC);
20233
20234   // Set attributes to describe our requested context
20235   SetLength(Attribs, 5);
20236   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
20237   Attribs[1] := MajorVersion;
20238   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
20239   Attribs[3] := MinorVersion;
20240
20241   // Add context flag for forward compatible context
20242   //  Forward compatible means no more support for legacy functions like
20243   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
20244   if ForwardCompatible then
20245     begin
20246       SetLength(Attribs, Length(Attribs)+2);
20247       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
20248       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
20249     end;
20250
20251   // Attribute flags must be finalized with a zero
20252   Attribs[High(Attribs)] := 0;
20253
20254   // Get function pointer for new context creation function
20255   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20256
20257   if not Assigned(wglCreateContextAttribsARB) then
20258     begin
20259       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20260       wglDeleteContext(LegacyRC);
20261       exit;
20262     end;
20263
20264   // Create context
20265   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20266
20267   if Result = 0 then
20268     begin
20269       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20270       wglDeleteContext(LegacyRC);
20271       exit;
20272     end;
20273
20274   wglDeleteContext(LegacyRC);
20275
20276   if Result = 0 then
20277         RaiseLastOSError
20278   else
20279         LastPixelFormat := 0;
20280 end;
20281
20282 // =============================================================================
20283 // DestroyRenderingContext
20284 // =============================================================================
20285
20286 procedure DestroyRenderingContext(RC: HGLRC);
20287 begin
20288   wglDeleteContext(RC);
20289 end;
20290
20291
20292 // =============================================================================
20293 // ActivateRenderingContext
20294 // =============================================================================
20295
20296 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20297 begin
20298   Assert((DC <> 0), 'DC must not be 0');
20299   Assert((RC <> 0), 'RC must not be 0');
20300
20301   wglMakeCurrent(DC, RC);
20302
20303   {$ifdef DGL_TINY_HEADER}
20304   ReadCoreVersion;
20305   {$else}
20306   ReadImplementationProperties;
20307
20308   if (loadext) then
20309     ReadExtensions;
20310   {$endif}
20311 end;
20312
20313 // =============================================================================
20314 // DeactivateRenderingContext
20315 // =============================================================================
20316
20317 procedure DeactivateRenderingContext;
20318 begin
20319   wglMakeCurrent(0, 0);
20320 end;
20321 {$ENDIF}
20322
20323
20324 initialization
20325
20326 {$IFDEF CPU386}
20327   Set8087CW($133F);
20328   {$IFDEF DGL_64BIT}
20329   SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide,exOverflow, exUnderflow, exPrecision]);
20330   {$ENDIF}
20331 {$ENDIF}
20332
20333 finalization
20334
20335 end.
20336