64-Bit exceptions, Delphi 6 compatibility types in define
[LazOpenGLCore.git] / dglOpenGL.pas
1 { ============================================================================
2
3        OpenGL 4.5 - Headertranslation
4        Version 4.5a
5
6        Supported environments and targets :
7         - (Win32) Delphi 6 and up
8         - (Win32, Win64) Delphi XE2
9         - (Win32, Win64, Linux, MacOSX) FreePascal (1.9.3 and up)
10
11 ==============================================================================
12
13        Copyright (C) DGL-OpenGL-Portteam
14        All Rights Reserved
15
16        Obtained through:
17        Bitbucket source repository - https://bitbucket.org/saschawillems/dglopengl
18        Delphi OpenGL Community(DGL) - www.delphigl.com
19
20        Converted and maintained by DGL's OpenGL-Portteam :
21          - Sascha Willems             - http://www.saschawillems.de
22          - Steffen Xonna (Lossy eX)   - http://www.dev-center.de
23        Additional input :
24          - Andrey Gruzdev (Mac OS X patch for XE2 / FPC)
25          - Lars Middendorf
26          - Martin Waldegger (Mars)
27          - Benjamin Rosseaux (BeRo)   - http://www.0ok.de
28        Additional thanks:
29            sigsegv (libdl.so)
30
31 ==============================================================================
32
33   You may retrieve the latest version of this file at the Delphi OpenGL
34   Community home page, located at http://www.delphigl.com/
35
36   The contents of this file are used with permission, subject to
37   the Mozilla Public License Version 1.1 (the "License"); you may
38   not use this file except in compliance with the License. You may
39   obtain a copy of the License at
40   http://www.mozilla.org/MPL/MPL-1.1.html
41
42   Software distributed under the License is distributed on an
43   "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
44   implied. See the License for the specific language governing
45   rights and limitations under the License.
46
47 ==============================================================================
48
49
50   History : see readme.md
51
52
53 ============================================================================== }
54
55 {$define DGL_DEPRECATED}
56 {
57   This define defines if the header should use deprecated ARB stuff or not.
58   per Default the Header use deprecated Stuff.
59 }
60
61
62 {.$define DGL_TINY_HEADER}
63 {
64   If you enable the define DGL_TINY_HEADER no function automatically will be loaded if you
65   call ActivateRenderingContext. This may some bit faster and the smart linker can delete
66   all non used functions. This will reduce the filesize of your binary file. But in this
67   case you have to load the functions by yourself. There are two ways to do this.
68
69   1. You can load whole extension by calling the func Read_Extensionname. But if you do
70      this it's possible to load functions you dont use. So you have the same "problem"
71      like before. But it's only an bit smaler.
72      > Read_GL_ARB_multitexture;
73
74   2. You are able to load only the functions you exactly need. In this case you are able
75      to use the variables of the dglOpenGL.pas. So you only need to load the functions
76      and you can use the header like before.
77      To do this you have to created and activated an opengl context and than you can load
78      the needed functions.
79      > ActivateRenderingContext(fDC, fRC);
80      > glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
81      > glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
82
83      So only the function "glActiveTextureARB" and "glMultiTexCoord2fARB" will be loaded.
84
85
86   Please notice that the extension variables won't be loaded if this define is active. But
87   you can call dglCheckExtension to check if any extension exists. You can assign them to
88   the variables of the dglOpenGL.pas so all code they use this will find them.
89
90   > GL_ARB_shading_language_100 := dglCheckExtension('GL_ARB_shading_language_100');
91 }
92
93
94 unit dglOpenGL;
95
96 interface
97
98 // defines to configure freepascal
99 {$IFDEF FPC}
100   {$MODE Delphi}
101
102   {$IFNDEF WINDOWS}
103     {$LINKLIB c}
104   {$ENDIF}
105 {$ENDIF}
106
107 // known delphi versions
108 {$IFNDEF FPC}       // if freepascal isnt defined
109   {$IFDEF VER140}   // Delphi 6
110     {$DEFINE DELPHI6_AND_DOWN}
111   {$ENDIF}
112
113   {$IFDEF VER130}   // Delphi 5
114     {$DEFINE DELPHI6_AND_DOWN}
115   {$ENDIF}
116
117   {$IFDEF VER120}   // Delphi 4
118     {$DEFINE DELPHI6_AND_DOWN}
119   {$ENDIF}
120
121   {$IFDEF VER110}   // C++ Builder 3
122     {$DEFINE DELPHI6_AND_DOWN}
123   {$ENDIF}
124
125   {$IFDEF VER100}   // Delphi 3
126     {$DEFINE DELPHI6_AND_DOWN}
127   {$ENDIF}
128 {$ENDIF}
129
130 // Options for Delphi < 5
131 {$IFDEF DELPHI6_AND_DOWN}
132   {$A+}
133 {$ELSE}
134   {$A4}
135 {$ENDIF}
136
137 // 64 BIT architecture
138 // Free pascal
139 {$IFDEF CPU64}
140   {$DEFINE DGL_64BIT}
141 {$ENDIF}
142 // Delphi
143 {$IFDEF WIN64}
144   {$DEFINE DGL_64BIT}
145 {$ENDIF}
146
147
148 // generell options
149 {$H+,O+,X+}
150
151 // detecting Windows
152 {$IFDEF Win32}          // Delphi and fpc of 32 Bit Windows
153   {$DEFINE DGL_WIN}
154 {$ENDIF}
155
156 {$IFDEF Win64}          // Delphi and fpc of 32 Bit Windows
157   {$DEFINE DGL_WIN}
158 {$ENDIF}
159
160 // detecting Linux
161 {$IFDEF linux}          // Linux
162   {$DEFINE DGL_LINUX}
163 {$ENDIF}
164
165 {$IFDEF DARWIN}  // Mac OS X and FPC
166    {$DEFINE DGL_MAC}
167 {$ENDIF}
168
169 {$IFDEF DELPHI}  // Mac OS X add Delphi
170 {$IFDEF MACOS}
171    {$DEFINE DGL_MAC}
172 {$ENDIF}
173 {$ENDIF}
174
175 uses
176   {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions
177   SysUtils
178   {$IFDEF DGL_WIN}, Windows{$ENDIF}
179   {$IFDEF DGL_64BIT} ,math {$ENDIF}
180   {$IFDEF DGL_LINUX}, X, XLib, XUtil{$ENDIF}
181   ;
182
183 type
184   {$IFDEF DELPHI6_AND_DOWN}
185     // Delphi 6 compatibility
186     PPointer = ^Pointer;
187     PCardinal = ^Cardinal;
188   {$ENDIF}
189
190   GLenum = Cardinal;
191   GLboolean = BYTEBOOL;
192   GLbitfield = Cardinal;
193   GLbyte = Shortint;
194   GLshort = SmallInt;
195   GLint = Integer;
196   GLsizei = Integer;
197   GLubyte = Byte;
198   GLushort = Word;
199   GLuint = Cardinal;
200   GLfloat = Single;
201   GLclampf = Single;
202   GLdouble = Double;
203   GLclampd = Double;
204   GLvoid = Pointer;
205   GLint64 = Int64;
206   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
207
208   TGLenum = GLenum;
209   TGLboolean = GLboolean;
210   TGLbitfield = GLbitfield;
211   TGLbyte = GLbyte;
212   TGLshort = GLshort;
213   TGLint = GLint;
214   TGLsizei = GLsizei;
215   TGLubyte = GLubyte;
216   TGLushort = GLushort;
217   TGLuint = GLuint;
218   TGLfloat = GLfloat;
219   TGLclampf = GLclampf;
220   TGLdouble = GLdouble;
221   TGLclampd = GLclampd;
222   TGLvoid = GLvoid;
223   TGLint64 = GLint64;
224   TGLuint64 = GLuint64;
225
226   PGLboolean = ^GLboolean;
227   PGLbyte = ^GLbyte;
228   PGLshort = ^GLshort;
229   PGLint = ^GLint;
230   PGLsizei = ^GLsizei;
231   PGLubyte = ^GLubyte;
232   PGLushort = ^GLushort;
233   PGLuint = ^GLuint;
234   PGLclampf = ^GLclampf;
235   PGLfloat = ^GLfloat;
236   PGLdouble = ^GLdouble;
237   PGLclampd = ^GLclampd;
238   PGLenum = ^GLenum;
239   PGLvoid = Pointer;
240   PPGLvoid = ^PGLvoid;
241   PGLint64 = ^GLint64;
242   PGLuint64 = ^GLuint64;
243
244   // GL_NV_half_float
245   GLhalfNV = WORD;
246   TGLhalfNV = GLhalfNV;
247   PGLhalfNV = ^GLhalfNV;
248
249   // GL_ARB_shader_objects
250   PGLHandleARB = ^GLHandleARB;
251   GLHandleARB = Integer;
252   GLcharARB = AnsiChar;
253   PGLcharARB = PAnsiChar;
254   PPGLcharARB = ^PGLcharARB;
255
256   // GL_VERSION_1_5
257   GLintptr = GLint;
258   PGLintptr = ^GLintptr;
259   GLsizeiptr = GLsizei;
260
261   // GL_ARB_vertex_buffer_object
262   GLintptrARB = GLint;
263   GLsizeiptrARB = GLsizei;
264
265   // GL_VERSION_2_0
266   GLHandle = Integer;
267   PGLchar = PAnsiChar;
268   PPGLchar = ^PGLChar;
269
270   // GL_EXT_timer_query
271   GLint64EXT = Int64;
272   TGLint64EXT = GLint64EXT;
273   PGLint64EXT = ^GLint64EXT;
274
275   GLuint64EXT = GLuint64;
276   TGLuint64EXT = GLuint64EXT;
277   PGLuint64EXT = ^GLuint64EXT;
278
279   // WGL_ARB_pbuffer
280   HPBUFFERARB = THandle;
281
282   // WGL_EXT_pbuffer
283   HPBUFFEREXT = THandle;
284
285   // WGL_NV_present_video
286   PHVIDEOOUTPUTDEVICENV = ^HVIDEOOUTPUTDEVICENV;
287   HVIDEOOUTPUTDEVICENV = THandle;
288
289   // WGL_NV_video_output
290   PHPVIDEODEV = ^HPVIDEODEV;
291   HPVIDEODEV = THandle;
292
293   // WGL_NV_gpu_affinity
294   PHPGPUNV = ^HPGPUNV;
295   PHGPUNV = ^HGPUNV;
296
297   // WGL_NV_video_capture
298   HVIDEOINPUTDEVICENV = THandle;
299   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
300
301   HPGPUNV = THandle;
302   HGPUNV = THandle;
303
304   // GL_ARB_sync
305   GLsync = Pointer;
306
307   // GL_ARB_cl_event
308   { These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event }
309   _cl_context = record end;
310   _cl_event = record end;
311   p_cl_context = ^_cl_context;
312   p_cl_event = ^_cl_event;
313
314   // GL_ARB_compute_variable_group_size
315   TglDispatchComputeGroupSizeARB = procedure (num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint; group_size_x : GLuint; group_size_y : GLuint; group_size_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
316
317   // GL_ARB_debug_output
318   TglDebugProcARB = procedure (source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
319
320   // GL_AMD_debug_output
321   TglDebugProcAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
322
323   // GL_KHR_debug (4.3)
324   TglDebugProc = procedure(source : GLEnum; type_ : GLEnum; id : GLUInt; severity : GLUInt; length : GLsizei; const message_ : PGLCHar; userParam : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
325
326   // GL_NV_vdpau_interop
327   GLvdpauSurfaceNV = GLintptr;
328   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
329
330
331   // GLX
332   {$IFDEF DGL_LINUX}
333     GLXContext = Pointer;
334     GLXContextID = TXID;
335     GLXDrawable = TXID;
336     GLXFBConfig = Pointer;
337     GLXPbuffer = TXID;
338     GLXPixmap = TXID;
339     GLXWindow = TXID;
340
341     Window = TXID;
342     Colormap = TXID;
343     Pixmap = TXID;
344     Font = TXID;
345   {$ENDIF}
346
347   // Datatypes corresponding to GL's types TGL(name)(type)(count)
348   TGLVectorub2 = array[0..1] of GLubyte;
349   TGLVectori2  = array[0..1] of GLint;
350   TGLVectorf2  = array[0..1] of GLfloat;
351   TGLVectord2  = array[0..1] of GLdouble;
352   TGLVectorp2  = array[0..1] of Pointer;
353
354   TGLVectorub3 = array[0..2] of GLubyte;
355   TGLVectori3  = array[0..2] of GLint;
356   TGLVectorf3  = array[0..2] of GLfloat;
357   TGLVectord3  = array[0..2] of GLdouble;
358   TGLVectorp3  = array[0..2] of Pointer;
359
360   TGLVectorub4 = array[0..3] of GLubyte;
361   TGLVectori4  = array[0..3] of GLint;
362   TGLVectorf4  = array[0..3] of GLfloat;
363   TGLVectord4  = array[0..3] of GLdouble;
364   TGLVectorp4  = array[0..3] of Pointer;
365
366   TGLArrayf4 = TGLVectorf4;
367   TGLArrayf3 = TGLVectorf3;
368   TGLArrayd3 = TGLVectord3;
369   TGLArrayi4 = TGLVectori4;
370   TGLArrayp4 = TGLVectorp4;
371
372   TGlMatrixub3 = array[0..2, 0..2] of GLubyte;
373   TGlMatrixi3  = array[0..2, 0..2] of GLint;
374   TGLMatrixf3  = array[0..2, 0..2] of GLfloat;
375   TGLMatrixd3  = array[0..2, 0..2] of GLdouble;
376
377   TGlMatrixub4 = array[0..3, 0..3] of GLubyte;
378   TGlMatrixi4  = array[0..3, 0..3] of GLint;
379   TGLMatrixf4  = array[0..3, 0..3] of GLfloat;
380   TGLMatrixd4  = array[0..3, 0..3] of GLdouble;
381
382   TGLVector3f = TGLVectorf3;
383
384   // Datatypes corresponding to OpenGL12.pas for easy porting
385   TVector3f = TGLVectorf3;
386   TVector3d = TGLVectord3;
387
388   TVector4i = TGLVectori4;
389   TVector4f = TGLVectorf4;
390   TVector4p = TGLVectorp4;
391
392   TMatrix4f = TGLMatrixf4;
393   TMatrix4d = TGLMatrixd4;
394
395   PGLMatrixd4 = ^TGLMatrixd4;
396   PVector4i = ^TVector4i;
397
398
399
400 {$IFDEF FPC}
401   TRect = packed record
402     Left, Top, Right, Bottom: Longint;
403   end;
404 {$ENDIF}
405
406
407   PGPU_DEVICE = ^GPU_DEVICE;
408   GPU_DEVICE = record
409     cb: DWORD;
410     DeviceName: array [0..31] of AnsiChar;
411     DeviceString: array [0..127] of AnsiChar;
412     Flags: DWORD;
413     rcVirtualScreen: TRect;
414   end;
415
416
417 type
418 {$IFDEF FPC}
419   {$IFDEF DGL_WIN}
420     PWGLSwap = ^TWGLSwap;
421     {$EXTERNALSYM _WGLSWAP}
422       _WGLSWAP = packed record
423         hdc: HDC;
424         uiFlags: UINT;
425       end;
426
427     TWGLSwap = _WGLSWAP;
428   {$EXTERNALSYM WGLSWAP}
429     WGLSWAP = _WGLSWAP;
430
431   {$ENDIF}
432 {$ENDIF}
433
434   // GLU types
435   TGLUNurbs = record
436   end;
437   TGLUQuadric = record
438   end;
439   TGLUTesselator = record
440   end;
441   PGLUNurbs = ^TGLUNurbs;
442   PGLUQuadric = ^TGLUQuadric;
443   PGLUTesselator = ^TGLUTesselator;
444   // backwards compatibility
445   TGLUNurbsObj = TGLUNurbs;
446   TGLUQuadricObj = TGLUQuadric;
447   TGLUTesselatorObj = TGLUTesselator;
448   TGLUTriangulatorObj = TGLUTesselator;
449   PGLUNurbsObj = PGLUNurbs;
450   PGLUQuadricObj = PGLUQuadric;
451   PGLUTesselatorObj = PGLUTesselator;
452   PGLUTriangulatorObj = PGLUTesselator;
453
454   // GLUQuadricCallback
455   TGLUQuadricErrorProc = procedure(errorCode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
456   // GLUTessCallback
457   TGLUTessBeginProc = procedure(AType: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
458   TGLUTessEdgeFlagProc = procedure(Flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
459   TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
460   TGLUTessEndProc = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
461   TGLUTessErrorProc = procedure(ErrNo: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
462   TGLUTessCombineProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
463   TGLUTessBeginDataProc = procedure(AType: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
464   TGLUTessEdgeFlagDataProc = procedure(Flag: GLboolean; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
465   TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
466   TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
467   TGLUTessErrorDataProc = procedure(ErrNo: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
468   TGLUTessCombineDataProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
469   // GLUNurbsCallback
470   TGLUNurbsErrorProc = procedure(ErrorCode: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
471
472 var
473   GL_VERSION_1_0,
474   GL_VERSION_1_1,
475   GL_VERSION_1_2,
476   GL_VERSION_1_3,
477   GL_VERSION_1_4,
478   GL_VERSION_1_5,
479   GL_VERSION_2_0,
480   GL_VERSION_2_1,
481   GL_VERSION_3_0,
482   GL_VERSION_3_1,
483   GL_VERSION_3_2,
484   GL_VERSION_3_3,
485   GL_VERSION_4_0,
486   GL_VERSION_4_1,
487   GL_VERSION_4_2,
488   GL_VERSION_4_3,
489   GL_VERSION_4_4,
490   GL_VERSION_4_5,
491   GLU_VERSION_1_1,
492   GLU_VERSION_1_2,
493   GLU_VERSION_1_3,
494   GL_3DFX_multisample,
495   GL_3DFX_tbuffer,
496   GL_3DFX_texture_compression_FXT1,
497   GL_APPLE_client_storage,
498   GL_APPLE_element_array,
499   GL_APPLE_fence,
500   GL_APPLE_specular_vector,
501   GL_APPLE_transform_hint,
502   GL_APPLE_vertex_array_object,
503   GL_APPLE_vertex_array_range,
504   GL_APPLE_ycbcr_422,
505   GL_APPLE_texture_range,
506   GL_APPLE_float_pixels,
507   GL_APPLE_vertex_program_evaluators,
508   GL_APPLE_aux_depth_stencil,
509   GL_APPLE_object_purgeable,
510   GL_APPLE_row_bytes,
511   GL_APPLE_rgb_422,
512   GL_ARB_depth_texture,
513   GL_ARB_fragment_program,
514   GL_ARB_imaging,
515   GL_ARB_matrix_palette,
516   GL_ARB_multisample,
517   GL_ARB_multitexture,
518   GL_ARB_point_parameters,
519   GL_ARB_shadow,
520   GL_ARB_shadow_ambient,
521   GL_ARB_texture_border_clamp,
522   GL_ARB_texture_compression,
523   GL_ARB_texture_cube_map,
524   GL_ARB_texture_env_add,
525   GL_ARB_texture_env_combine,
526   GL_ARB_texture_env_crossbar,
527   GL_ARB_texture_env_dot3,
528   GL_ARB_texture_mirrored_repeat,
529   GL_ARB_transpose_matrix,
530   GL_ARB_vertex_blend,
531   GL_ARB_vertex_buffer_object,
532   GL_ARB_vertex_program,
533   GL_ARB_window_pos,
534   GL_ARB_shader_objects,
535   GL_ARB_vertex_shader,
536   GL_ARB_fragment_shader,
537   GL_ARB_shading_language_100,
538   GL_ARB_occlusion_query,
539   GL_ARB_texture_non_power_of_two,
540   GL_ARB_point_sprite,
541   GL_ARB_fragment_program_shadow,
542   GL_ARB_draw_buffers,
543   GL_ARB_texture_rectangle,
544   GL_ARB_color_buffer_float,
545   GL_ARB_half_float_pixel,
546   GL_ARB_texture_float,
547   GL_ARB_pixel_buffer_object,
548   GL_ARB_depth_buffer_float,
549   GL_ARB_draw_instanced,
550   GL_ARB_framebuffer_object,
551   GL_ARB_framebuffer_sRGB,
552   GL_ARB_geometry_shader4,
553   GL_ARB_half_float_vertex,
554   GL_ARB_instanced_arrays,
555   GL_ARB_map_buffer_range,
556   GL_ARB_texture_buffer_object,
557   GL_ARB_texture_compression_rgtc,
558   GL_ARB_texture_rg,
559   GL_ARB_vertex_array_object,
560   GL_ARB_uniform_buffer_object,
561   GL_ARB_compatibility,
562   GL_ARB_copy_buffer,
563   GL_ARB_shader_texture_lod,
564   GL_ARB_depth_clamp,
565   GL_ARB_draw_elements_base_vertex,
566   GL_ARB_fragment_coord_conventions,
567   GL_ARB_provoking_vertex,
568   GL_ARB_seamless_cube_map,
569   GL_ARB_sync,
570   GL_ARB_texture_multisample,
571   GL_ARB_vertex_array_bgra,
572   GL_ARB_draw_buffers_blend,
573   GL_ARB_sample_shading,
574   GL_ARB_texture_cube_map_array,
575   GL_ARB_texture_gather,
576   GL_ARB_texture_query_lod,
577   GL_ARB_shading_language_include,
578   GL_ARB_texture_compression_bptc,
579   GL_ARB_blend_func_extended,
580   GL_ARB_explicit_attrib_location,
581   GL_ARB_occlusion_query2,
582   GL_ARB_sampler_objects,
583   GL_ARB_shader_bit_encoding,
584   GL_ARB_texture_rgb10_a2ui,
585   GL_ARB_texture_swizzle,
586   GL_ARB_timer_query,
587   GL_ARB_vertex_type_2_10_10_10_rev,
588   GL_ARB_draw_indirect,
589   GL_ARB_gpu_shader5,
590   GL_ARB_gpu_shader_fp64,
591   GL_ARB_shader_subroutine,
592   GL_ARB_tessellation_shader,
593   GL_ARB_texture_buffer_object_rgb32,
594   GL_ARB_transform_feedback2,
595   GL_ARB_transform_feedback3,
596   GL_ARB_ES2_compatibility,
597   GL_ARB_get_program_binary,
598   GL_ARB_separate_shader_objects,
599   GL_ARB_shader_precision,
600   GL_ARB_vertex_attrib_64bit,
601   GL_ARB_viewport_array,
602
603   // GL 4.2
604   GL_ARB_base_instance,
605   GL_ARB_shading_language_420pack,
606   GL_ARB_transform_feedback_instanced,
607   GL_ARB_compressed_texture_pixel_storage,
608   GL_ARB_conservative_depth,
609   GL_ARB_internalformat_query,
610   GL_ARB_map_buffer_alignment,
611   GL_ARB_shader_atomic_counters,
612   GL_ARB_shader_image_load_store,
613   GL_ARB_shading_language_packing,
614   GL_ARB_texture_storage,
615
616
617   // GL 4.3
618   GL_ARB_arrays_of_arrays,
619   GL_ARB_fragment_layer_viewport,
620   GL_ARB_shader_image_size,
621   GL_ARB_ES3_compatibility,
622   GL_ARB_clear_buffer_object,
623   GL_ARB_compute_shader,
624   GL_ARB_copy_image,
625   GL_KHR_debug,
626   GL_ARB_explicit_uniform_location,
627   GL_ARB_framebuffer_no_attachments,
628   GL_ARB_internalformat_query2,
629   GL_ARB_invalidate_subdata,
630   GL_ARB_multi_draw_indirect,
631   GL_ARB_program_interface_query,
632   GL_ARB_robust_buffer_access_behavior,
633   GL_ARB_shader_storage_buffer_object,
634   GL_ARB_stencil_texturing,
635   GL_ARB_texture_buffer_range,
636   GL_ARB_texture_query_levels,
637   GL_ARB_texture_storage_multisample,
638   GL_ARB_texture_view,
639   GL_ARB_vertex_attrib_binding,
640   GL_NV_path_rendering,
641   GL_AMD_pinned_memory,
642   GL_AMD_stencil_operation_extended,
643   GL_AMD_vertex_shader_viewport_index,
644   GL_AMD_vertex_shader_layer,
645   GL_NV_bindless_texture,
646   GL_NV_shader_atomic_float,
647   GL_AMD_query_buffer_object,
648
649
650   // GL 4.4
651   GL_ARB_buffer_storage,
652   GL_ARB_clear_texture,
653   GL_ARB_enhanced_layouts,
654   GL_ARB_multi_bind,
655   GL_ARB_query_buffer_object,
656   GL_ARB_texture_mirror_clamp_to_edge,
657   GL_ARB_texture_stencil8,
658   GL_ARB_vertex_type_10f_11f_11f_rev,
659   GL_ARB_bindless_texture,
660   GL_ARB_sparse_texture,
661
662   // GL 4.5
663   GL_ARB_clip_control,
664   GL_ARB_cull_distance,
665   GL_ARB_ES3_1_compatibility,
666   GL_ARB_conditional_render_inverted,
667   GL_KHR_context_flush_control,
668   GL_ARB_derivative_control,
669   GL_ARB_direct_state_access,
670   GL_ARB_get_texture_sub_image,
671   GL_KHR_robustness,
672   GL_KHR_blend_equation_advanced,
673   GL_KHR_blend_equation_advanced_coherent,
674   GL_KHR_robust_buffer_access_behavior,
675   GL_ARB_shader_texture_image_samples,
676   GL_ARB_texture_barrier,
677
678   GL_ARB_cl_event,
679   GL_ARB_compute_variable_group_size,
680   GL_ARB_debug_output,
681   GL_ARB_robustness,
682   GL_ARB_shader_stencil_export,
683   GL_ATI_draw_buffers,
684   GL_ATI_element_array,
685   GL_ATI_envmap_bumpmap,
686   GL_ATI_fragment_shader,
687   GL_ATI_map_object_buffer,
688   GL_ATI_pn_triangles,
689   GL_ATI_separate_stencil,
690   GL_ATI_text_fragment_shader,
691   GL_ATI_texture_env_combine3,
692   GL_ATI_texture_float,
693   GL_ATI_texture_mirror_once,
694   GL_ATI_vertex_array_object,
695   GL_ATI_vertex_attrib_array_object,
696   GL_ATI_vertex_streams,
697   GL_ATI_meminfo,
698   GL_AMD_performance_monitor,
699   GL_AMD_texture_texture4,
700   GL_AMD_vertex_shader_tesselator,
701   GL_AMD_draw_buffers_blend,
702   GL_AMD_shader_stencil_export,
703   GL_AMD_seamless_cubemap_per_texture,
704   GL_AMD_conservative_depth,
705   GL_AMD_name_gen_delete,
706   GL_AMD_debug_output,
707   GL_AMD_transform_feedback3_lines_triangles,
708   GL_AMD_depth_clamp_separate,
709   GL_EXT_422_pixels,
710   GL_EXT_abgr,
711   GL_EXT_bgra,
712   GL_EXT_blend_color,
713   GL_EXT_blend_func_separate,
714   GL_EXT_blend_logic_op,
715   GL_EXT_blend_minmax,
716   GL_EXT_blend_subtract,
717   GL_EXT_clip_volume_hint,
718   GL_EXT_cmyka,
719   GL_EXT_color_matrix,
720   GL_EXT_color_subtable,
721   GL_EXT_compiled_vertex_array,
722   GL_EXT_convolution,
723   GL_EXT_coordinate_frame,
724   GL_EXT_copy_texture,
725   GL_EXT_cull_vertex,
726   GL_EXT_draw_range_elements,
727   GL_EXT_fog_coord,
728   GL_EXT_framebuffer_object,
729   GL_EXT_histogram,
730   GL_EXT_index_array_formats,
731   GL_EXT_index_func,
732   GL_EXT_index_material,
733   GL_EXT_index_texture,
734   GL_EXT_light_texture,
735   GL_EXT_misc_attribute,
736   GL_EXT_multi_draw_arrays,
737   GL_EXT_multisample,
738   GL_EXT_packed_pixels,
739   GL_EXT_paletted_texture,
740   GL_EXT_pixel_transform,
741   GL_EXT_pixel_transform_color_table,
742   GL_EXT_point_parameters,
743   GL_EXT_polygon_offset,
744   GL_EXT_rescale_normal,
745   GL_EXT_secondary_color,
746   GL_EXT_separate_specular_color,
747   GL_EXT_shadow_funcs,
748   GL_EXT_shared_texture_palette,
749   GL_EXT_stencil_two_side,
750   GL_EXT_stencil_wrap,
751   GL_EXT_subtexture,
752   GL_EXT_texture,
753   GL_EXT_texture3D,
754   GL_EXT_texture_compression_s3tc,
755   GL_EXT_texture_cube_map,
756   GL_EXT_texture_edge_clamp,
757   GL_EXT_texture_env_add,
758   GL_EXT_texture_env_combine,
759   GL_EXT_texture_env_dot3,
760   GL_EXT_texture_filter_anisotropic,
761   GL_EXT_texture_lod_bias,
762   GL_EXT_texture_object,
763   GL_EXT_texture_perturb_normal,
764   GL_EXT_texture_rectangle,
765   GL_EXT_vertex_array,
766   GL_EXT_vertex_shader,
767   GL_EXT_vertex_weighting,
768   GL_EXT_depth_bounds_test,
769   GL_EXT_texture_mirror_clamp,
770   GL_EXT_blend_equation_separate,
771   GL_EXT_pixel_buffer_object,
772   GL_EXT_texture_compression_dxt1,
773   GL_EXT_stencil_clear_tag,
774   GL_EXT_packed_depth_stencil,
775   GL_EXT_texture_sRGB,
776   GL_EXT_framebuffer_blit,
777   GL_EXT_framebuffer_multisample,
778   GL_EXT_timer_query,
779   GL_EXT_gpu_program_parameters,
780   GL_EXT_bindable_uniform,
781   GL_EXT_draw_buffers2,
782   GL_EXT_draw_instanced,
783   GL_EXT_framebuffer_sRGB,
784   GL_EXT_geometry_shader4,
785   GL_EXT_gpu_shader4,
786   GL_EXT_packed_float,
787   GL_EXT_texture_array,
788   GL_EXT_texture_buffer_object,
789   GL_EXT_texture_compression_latc,
790   GL_EXT_texture_compression_rgtc,
791   GL_EXT_texture_integer,
792   GL_EXT_texture_shared_exponent,
793   GL_EXT_transform_feedback,
794   GL_EXT_direct_state_access,
795   GL_EXT_vertex_array_bgra,
796   GL_EXT_texture_swizzle,
797   GL_EXT_provoking_vertex,
798   GL_EXT_texture_snorm,
799   GL_EXT_separate_shader_objects,
800   GL_EXT_shader_image_load_store,
801   GL_EXT_vertex_attrib_64bit,
802   GL_EXT_texture_sRGB_decode,
803   GL_FfdMaskSGIX,
804   GL_HP_convolution_border_modes,
805   GL_HP_image_transform,
806   GL_HP_occlusion_test,
807   GL_HP_texture_lighting,
808   GL_IBM_cull_vertex,
809   GL_IBM_multimode_draw_arrays,
810   GL_IBM_rasterpos_clip,
811   GL_IBM_texture_mirrored_repeat,
812   GL_IBM_vertex_array_lists,
813   GL_INGR_blend_func_separate,
814   GL_INGR_color_clamp,
815   GL_INGR_interlace_read,
816   GL_INGR_palette_buffer,
817   GL_INTEL_parallel_arrays,
818   GL_INTEL_texture_scissor,
819   GL_MESA_resize_buffers,
820   GL_MESA_window_pos,
821   GL_NV_blend_square,
822   GL_NV_copy_depth_to_color,
823   GL_NV_depth_clamp,
824   GL_NV_evaluators,
825   GL_NV_fence,
826   GL_NV_float_buffer,
827   GL_NV_fog_distance,
828   GL_NV_fragment_program,
829   GL_NV_half_float,
830   GL_NV_light_max_exponent,
831   GL_NV_multisample_filter_hint,
832   GL_NV_occlusion_query,
833   GL_NV_packed_depth_stencil,
834   GL_NV_pixel_data_range,
835   GL_NV_point_sprite,
836   GL_NV_primitive_restart,
837   GL_NV_register_combiners,
838   GL_NV_register_combiners2,
839   GL_NV_texgen_emboss,
840   GL_NV_texgen_reflection,
841   GL_NV_texture_compression_vtc,
842   GL_NV_texture_env_combine4,
843   GL_NV_texture_expand_normal,
844   GL_NV_texture_rectangle,
845   GL_NV_texture_shader,
846   GL_NV_texture_shader2,
847   GL_NV_texture_shader3,
848   GL_NV_vertex_array_range,
849   GL_NV_vertex_array_range2,
850   GL_NV_vertex_program,
851   GL_NV_vertex_program1_1,
852   GL_NV_vertex_program2,
853   GL_NV_fragment_program_option,
854   GL_NV_fragment_program2,
855   GL_NV_vertex_program2_option,
856   GL_NV_vertex_program3,
857   GL_NV_depth_buffer_float,
858   GL_NV_fragment_program4,
859   GL_NV_framebuffer_multisample_coverage,
860   GL_NV_geometry_program4,
861   GL_NV_gpu_program4,
862   GL_NV_parameter_buffer_object,
863   GL_NV_transform_feedback,
864   GL_NV_vertex_program4,
865   GL_NV_conditional_render,
866   GL_NV_present_video,
867   GL_NV_explicit_multisample,
868   GL_NV_transform_feedback2,
869   GL_NV_video_capture,
870   GL_NV_copy_image,
871   GL_NV_parameter_buffer_object2,
872   GL_NV_shader_buffer_load,
873   GL_NV_vertex_buffer_unified_memory,
874   GL_NV_gpu_program5,
875   GL_NV_gpu_shader5,
876   GL_NV_shader_buffer_store,
877   GL_NV_tessellation_program5,
878   GL_NV_vertex_attrib_integer_64bit,
879   GL_NV_multisample_coverage,
880   GL_NV_vdpau_interop,
881   GL_NV_texture_barrier,
882   GL_OML_interlace,
883   GL_OML_resample,
884   GL_OML_subsample,
885   GL_PGI_misc_hints,
886   GL_PGI_vertex_hints,
887   GL_REND_screen_coordinates,
888   GL_S3_s3tc,
889   GL_SGIS_detail_texture,
890   GL_SGIS_fog_function,
891   GL_SGIS_generate_mipmap,
892   GL_SGIS_multisample,
893   GL_SGIS_pixel_texture,
894   GL_SGIS_point_line_texgen,
895   GL_SGIS_point_parameters,
896   GL_SGIS_sharpen_texture,
897   GL_SGIS_texture4D,
898   GL_SGIS_texture_border_clamp,
899   GL_SGIS_texture_color_mask,
900   GL_SGIS_texture_edge_clamp,
901   GL_SGIS_texture_filter4,
902   GL_SGIS_texture_lod,
903   GL_SGIS_texture_select,
904   GL_SGIX_async,
905   GL_SGIX_async_histogram,
906   GL_SGIX_async_pixel,
907   GL_SGIX_blend_alpha_minmax,
908   GL_SGIX_calligraphic_fragment,
909   GL_SGIX_clipmap,
910   GL_SGIX_convolution_accuracy,
911   GL_SGIX_depth_pass_instrument,
912   GL_SGIX_depth_texture,
913   GL_SGIX_flush_raster,
914   GL_SGIX_fog_offset,
915   GL_SGIX_fog_scale,
916   GL_SGIX_fragment_lighting,
917   GL_SGIX_framezoom,
918   GL_SGIX_igloo_interface,
919   GL_SGIX_impact_pixel_texture,
920   GL_SGIX_instruments,
921   GL_SGIX_interlace,
922   GL_SGIX_ir_instrument1,
923   GL_SGIX_list_priority,
924   GL_SGIX_pixel_texture,
925   GL_SGIX_pixel_tiles,
926   GL_SGIX_polynomial_ffd,
927   GL_SGIX_reference_plane,
928   GL_SGIX_resample,
929   GL_SGIX_scalebias_hint,
930   GL_SGIX_shadow,
931   GL_SGIX_shadow_ambient,
932   GL_SGIX_sprite,
933   GL_SGIX_subsample,
934   GL_SGIX_tag_sample_buffer,
935   GL_SGIX_texture_add_env,
936   GL_SGIX_texture_coordinate_clamp,
937   GL_SGIX_texture_lod_bias,
938   GL_SGIX_texture_multi_buffer,
939   GL_SGIX_texture_scale_bias,
940   GL_SGIX_texture_select,
941   GL_SGIX_vertex_preclip,
942   GL_SGIX_ycrcb,
943   GL_SGIX_ycrcb_subsample,
944   GL_SGIX_ycrcba,
945   GL_SGI_color_matrix,
946   GL_SGI_color_table,
947   GL_SGI_depth_pass_instrument,
948   GL_SGI_texture_color_table,
949   GL_SUNX_constant_data,
950   GL_SUN_convolution_border_modes,
951   GL_SUN_global_alpha,
952   GL_SUN_mesh_array,
953   GL_SUN_slice_accum,
954   GL_SUN_triangle_list,
955   GL_SUN_vertex,
956
957   // WGL
958   GL_WIN_phong_shading,
959   GL_WIN_specular_fog,
960   WGL_3DFX_multisample,
961   WGL_ARB_buffer_region,
962   WGL_ARB_extensions_string,
963   WGL_ARB_make_current_read,
964   WGL_ARB_multisample,
965   WGL_ARB_pbuffer,
966   WGL_ARB_pixel_format,
967   WGL_ARB_pixel_format_float,
968   WGL_ARB_render_texture,
969   WGL_ARB_create_context,
970   WGL_ARB_create_context_profile,
971   WGL_ARB_framebuffer_sRGB,
972   WGL_ARB_create_context_robustness,
973   WGL_ATI_pixel_format_float,
974   WGL_AMD_gpu_association,
975   WGL_EXT_depth_float,
976   WGL_EXT_display_color_table,
977   WGL_EXT_extensions_string,
978   WGL_EXT_make_current_read,
979   WGL_EXT_multisample,
980   WGL_EXT_pbuffer,
981   WGL_EXT_pixel_format,
982   WGL_EXT_swap_control,
983   WGL_EXT_create_context_es2_profile,
984   WGL_I3D_digital_video_control,
985   WGL_I3D_gamma,
986   WGL_I3D_genlock,
987   WGL_I3D_image_buffer,
988   WGL_I3D_swap_frame_lock,
989   WGL_I3D_swap_frame_usage,
990   WGL_NV_float_buffer,
991   WGL_NV_render_depth_texture,
992   WGL_NV_render_texture_rectangle,
993   WGL_NV_vertex_array_range,
994   WGL_NV_present_video,
995   WGL_NV_video_output,
996   WGL_NV_swap_group,
997   WGL_NV_gpu_affinity,
998   WGL_NV_video_capture,
999   WGL_NV_copy_image,
1000   WGL_NV_multisample_coverage,
1001   WGL_NV_DX_interop,
1002   WGL_OML_sync_control,
1003   WGL_3DL_stereo_control,
1004   WGL_ARB_context_flush_control,
1005   WIN_draw_range_elements,
1006   WIN_swap_hint,
1007
1008   // GLX
1009   GLX_VERSION_1_3,
1010   GLX_VERSION_1_4,
1011   GLX_ARB_multisample,
1012   GLX_ARB_fbconfig_float,
1013   GLX_ARB_get_proc_address,
1014   GLX_ARB_create_context,
1015   GLX_ARB_create_context_profile,
1016   GLX_ARB_vertex_buffer_object,
1017   GLX_ARB_framebuffer_sRGB,
1018   GLX_ARB_create_context_robustness,
1019   GLX_EXT_visual_info,
1020   GLX_EXT_visual_rating,
1021   GLX_EXT_import_context,
1022   GLX_EXT_fbconfig_packed_float,
1023   GLX_EXT_framebuffer_sRGB,
1024   GLX_EXT_texture_from_pixmap,
1025   GLX_EXT_swap_control,
1026   GLX_ARB_context_flush_control,
1027   GLX_EXT_create_context_es2_profile : Boolean;
1028
1029 const
1030   // GL_VERSION_1_1
1031   { AttribMask }
1032   GL_DEPTH_BUFFER_BIT = $00000100;
1033   GL_STENCIL_BUFFER_BIT = $00000400;
1034   GL_COLOR_BUFFER_BIT = $00004000;
1035   { Boolean }
1036   GL_TRUE: ByteBool = True;
1037   GL_FALSE: ByteBool = False;
1038   { BeginMode }
1039   GL_POINTS = $0000;
1040   GL_LINES = $0001;
1041   GL_LINE_LOOP = $0002;
1042   GL_LINE_STRIP = $0003;
1043   GL_TRIANGLES = $0004;
1044   GL_TRIANGLE_STRIP = $0005;
1045   GL_TRIANGLE_FAN = $0006;
1046   { AlphaFunction }
1047   GL_NEVER = $0200;
1048   GL_LESS = $0201;
1049   GL_EQUAL = $0202;
1050   GL_LEQUAL = $0203;
1051   GL_GREATER = $0204;
1052   GL_NOTEQUAL = $0205;
1053   GL_GEQUAL = $0206;
1054   GL_ALWAYS = $0207;
1055   { BlendingFactorDest }
1056   GL_ZERO = 0;
1057   GL_ONE = 1;
1058   GL_SRC_COLOR = $0300;
1059   GL_ONE_MINUS_SRC_COLOR = $0301;
1060   GL_SRC_ALPHA = $0302;
1061   GL_ONE_MINUS_SRC_ALPHA = $0303;
1062   GL_DST_ALPHA = $0304;
1063   GL_ONE_MINUS_DST_ALPHA = $0305;
1064   { BlendingFactorSrc }
1065   GL_DST_COLOR = $0306;
1066   GL_ONE_MINUS_DST_COLOR = $0307;
1067   GL_SRC_ALPHA_SATURATE = $0308;
1068   { DrawBufferMode }
1069   GL_NONE = 0;
1070   GL_FRONT_LEFT = $0400;
1071   GL_FRONT_RIGHT = $0401;
1072   GL_BACK_LEFT = $0402;
1073   GL_BACK_RIGHT = $0403;
1074   GL_FRONT = $0404;
1075   GL_BACK = $0405;
1076   GL_LEFT = $0406;
1077   GL_RIGHT = $0407;
1078   GL_FRONT_AND_BACK = $0408;
1079   { ErrorCode }
1080   GL_NO_ERROR = 0;
1081   GL_INVALID_ENUM = $0500;
1082   GL_INVALID_VALUE = $0501;
1083   GL_INVALID_OPERATION = $0502;
1084   GL_OUT_OF_MEMORY = $0505;
1085   { FrontFaceDirection }
1086   GL_CW = $0900;
1087   GL_CCW = $0901;
1088   { GetPName }
1089   GL_POINT_SIZE = $0B11;
1090   GL_POINT_SIZE_RANGE = $0B12;
1091   GL_POINT_SIZE_GRANULARITY = $0B13;
1092   GL_LINE_SMOOTH = $0B20;
1093   GL_LINE_WIDTH = $0B21;
1094   GL_LINE_WIDTH_RANGE = $0B22;
1095   GL_LINE_WIDTH_GRANULARITY = $0B23;
1096   GL_POLYGON_SMOOTH = $0B41;
1097   GL_CULL_FACE = $0B44;
1098   GL_CULL_FACE_MODE = $0B45;
1099   GL_FRONT_FACE = $0B46;
1100   GL_DEPTH_RANGE = $0B70;
1101   GL_DEPTH_TEST = $0B71;
1102   GL_DEPTH_WRITEMASK = $0B72;
1103   GL_DEPTH_CLEAR_VALUE = $0B73;
1104   GL_DEPTH_FUNC = $0B74;
1105   GL_STENCIL_TEST = $0B90;
1106   GL_STENCIL_CLEAR_VALUE = $0B91;
1107   GL_STENCIL_FUNC = $0B92;
1108   GL_STENCIL_VALUE_MASK = $0B93;
1109   GL_STENCIL_FAIL = $0B94;
1110   GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
1111   GL_STENCIL_PASS_DEPTH_PASS = $0B96;
1112   GL_STENCIL_REF = $0B97;
1113   GL_STENCIL_WRITEMASK = $0B98;
1114   GL_VIEWPORT = $0BA2;
1115   GL_DITHER = $0BD0;
1116   GL_BLEND_DST = $0BE0;
1117   GL_BLEND_SRC = $0BE1;
1118   GL_BLEND = $0BE2;
1119   GL_LOGIC_OP_MODE = $0BF0;
1120   GL_COLOR_LOGIC_OP = $0BF2;
1121   GL_DRAW_BUFFER = $0C01;
1122   GL_READ_BUFFER = $0C02;
1123   GL_SCISSOR_BOX = $0C10;
1124   GL_SCISSOR_TEST = $0C11;
1125   GL_COLOR_CLEAR_VALUE = $0C22;
1126   GL_COLOR_WRITEMASK = $0C23;
1127   GL_DOUBLEBUFFER = $0C32;
1128   GL_STEREO = $0C33;
1129   GL_LINE_SMOOTH_HINT = $0C52;
1130   GL_POLYGON_SMOOTH_HINT = $0C53;
1131   GL_UNPACK_SWAP_BYTES = $0CF0;
1132   GL_UNPACK_LSB_FIRST = $0CF1;
1133   GL_UNPACK_ROW_LENGTH = $0CF2;
1134   GL_UNPACK_SKIP_ROWS = $0CF3;
1135   GL_UNPACK_SKIP_PIXELS = $0CF4;
1136   GL_UNPACK_ALIGNMENT = $0CF5;
1137   GL_PACK_SWAP_BYTES = $0D00;
1138   GL_PACK_LSB_FIRST = $0D01;
1139   GL_PACK_ROW_LENGTH = $0D02;
1140   GL_PACK_SKIP_ROWS = $0D03;
1141   GL_PACK_SKIP_PIXELS = $0D04;
1142   GL_PACK_ALIGNMENT = $0D05;
1143   GL_MAX_TEXTURE_SIZE = $0D33;
1144   GL_MAX_VIEWPORT_DIMS = $0D3A;
1145   GL_SUBPIXEL_BITS = $0D50;
1146   GL_TEXTURE_1D = $0DE0;
1147   GL_TEXTURE_2D = $0DE1;
1148   GL_POLYGON_OFFSET_UNITS = $2A00;
1149   GL_POLYGON_OFFSET_POINT = $2A01;
1150   GL_POLYGON_OFFSET_LINE = $2A02;
1151   GL_POLYGON_OFFSET_FILL = $8037;
1152   GL_POLYGON_OFFSET_FACTOR = $8038;
1153   GL_TEXTURE_BINDING_1D = $8068;
1154   GL_TEXTURE_BINDING_2D = $8069;
1155   { GetTextureParameter }
1156   GL_TEXTURE_WIDTH = $1000;
1157   GL_TEXTURE_HEIGHT = $1001;
1158   GL_TEXTURE_INTERNAL_FORMAT = $1003;
1159   GL_TEXTURE_BORDER_COLOR = $1004;
1160   GL_TEXTURE_BORDER = $1005;
1161   GL_TEXTURE_RED_SIZE = $805C;
1162   GL_TEXTURE_GREEN_SIZE = $805D;
1163   GL_TEXTURE_BLUE_SIZE = $805E;
1164   GL_TEXTURE_ALPHA_SIZE = $805F;
1165   { HintMode }
1166   GL_DONT_CARE = $1100;
1167   GL_FASTEST = $1101;
1168   GL_NICEST = $1102;
1169   { DataType }
1170   GL_BYTE = $1400;
1171   GL_UNSIGNED_BYTE = $1401;
1172   GL_SHORT = $1402;
1173   GL_UNSIGNED_SHORT = $1403;
1174   GL_INT = $1404;
1175   GL_UNSIGNED_INT = $1405;
1176   GL_FLOAT = $1406;
1177   GL_DOUBLE = $140A;
1178   { LogicOp }
1179   GL_CLEAR = $1500;
1180   GL_AND = $1501;
1181   GL_AND_REVERSE = $1502;
1182   GL_COPY = $1503;
1183   GL_AND_INVERTED = $1504;
1184   GL_NOOP = $1505;
1185   GL_XOR = $1506;
1186   GL_OR = $1507;
1187   GL_NOR = $1508;
1188   GL_EQUIV = $1509;
1189   GL_INVERT = $150A;
1190   GL_OR_REVERSE = $150B;
1191   GL_COPY_INVERTED = $150C;
1192   GL_OR_INVERTED = $150D;
1193   GL_NAND = $150E;
1194   GL_SET = $150F;
1195   { MatrixMode (for gl3.h, FBO attachment type) }
1196   GL_TEXTURE = $1702;
1197   { PixelCopyType }
1198   GL_COLOR = $1800;
1199   GL_DEPTH = $1801;
1200   GL_STENCIL = $1802;
1201   { PixelFormat }
1202   GL_STENCIL_INDEX = $1901;
1203   GL_DEPTH_COMPONENT = $1902;
1204   GL_RED = $1903;
1205   GL_GREEN = $1904;
1206   GL_BLUE = $1905;
1207   GL_ALPHA = $1906;
1208   GL_RGB = $1907;
1209   GL_RGBA = $1908;
1210   { PolygonMode }
1211   GL_POINT = $1B00;
1212   GL_LINE = $1B01;
1213   GL_FILL = $1B02;
1214   { StencilOp }
1215   GL_KEEP = $1E00;
1216   GL_REPLACE = $1E01;
1217   GL_INCR = $1E02;
1218   GL_DECR = $1E03;
1219   { StringName }
1220   GL_VENDOR = $1F00;
1221   GL_RENDERER = $1F01;
1222   GL_VERSION = $1F02;
1223   GL_EXTENSIONS = $1F03;
1224   { TextureMagFilter }
1225   GL_NEAREST = $2600;
1226   GL_LINEAR = $2601;
1227   { TextureMinFilter }
1228   GL_NEAREST_MIPMAP_NEAREST = $2700;
1229   GL_LINEAR_MIPMAP_NEAREST = $2701;
1230   GL_NEAREST_MIPMAP_LINEAR = $2702;
1231   GL_LINEAR_MIPMAP_LINEAR = $2703;
1232   { TextureParameterName }
1233   GL_TEXTURE_MAG_FILTER = $2800;
1234   GL_TEXTURE_MIN_FILTER = $2801;
1235   GL_TEXTURE_WRAP_S = $2802;
1236   GL_TEXTURE_WRAP_T = $2803;
1237   { TextureTarget }
1238   GL_PROXY_TEXTURE_1D = $8063;
1239   GL_PROXY_TEXTURE_2D = $8064;
1240   { TextureWrapMode }
1241   GL_REPEAT = $2901;
1242   { PixelInternalFormat }
1243   GL_R3_G3_B2 = $2A10;
1244   GL_RGB4 = $804F;
1245   GL_RGB5 = $8050;
1246   GL_RGB8 = $8051;
1247   GL_RGB10 = $8052;
1248   GL_RGB12 = $8053;
1249   GL_RGB16 = $8054;
1250   GL_RGBA2 = $8055;
1251   GL_RGBA4 = $8056;
1252   GL_RGB5_A1 = $8057;
1253   GL_RGBA8 = $8058;
1254   GL_RGB10_A2 = $8059;
1255   GL_RGBA12 = $805A;
1256   GL_RGBA16 = $805B;
1257 {$ifdef DGL_DEPRECATED}
1258   GL_ACCUM = $0100;
1259   GL_LOAD = $0101;
1260   GL_RETURN = $0102;
1261   GL_MULT = $0103;
1262   GL_ADD = $0104;
1263   GL_CURRENT_BIT = $00000001;
1264   GL_POINT_BIT = $00000002;
1265   GL_LINE_BIT = $00000004;
1266   GL_POLYGON_BIT = $00000008;
1267   GL_POLYGON_STIPPLE_BIT = $00000010;
1268   GL_PIXEL_MODE_BIT = $00000020;
1269   GL_LIGHTING_BIT = $00000040;
1270   GL_FOG_BIT = $00000080;
1271   GL_ACCUM_BUFFER_BIT = $00000200;
1272   GL_VIEWPORT_BIT = $00000800;
1273   GL_TRANSFORM_BIT = $00001000;
1274   GL_ENABLE_BIT = $00002000;
1275   GL_HINT_BIT = $00008000;
1276   GL_EVAL_BIT = $00010000;
1277   GL_LIST_BIT = $00020000;
1278   GL_TEXTURE_BIT = $00040000;
1279   GL_SCISSOR_BIT = $00080000;
1280   GL_ALL_ATTRIB_BITS = $000FFFFF;
1281   GL_QUADS = $0007;
1282   GL_QUAD_STRIP = $0008;
1283   GL_POLYGON = $0009;
1284   GL_CLIP_PLANE0 = $3000;
1285   GL_CLIP_PLANE1 = $3001;
1286   GL_CLIP_PLANE2 = $3002;
1287   GL_CLIP_PLANE3 = $3003;
1288   GL_CLIP_PLANE4 = $3004;
1289   GL_CLIP_PLANE5 = $3005;
1290   GL_2_BYTES = $1407;
1291   GL_3_BYTES = $1408;
1292   GL_4_BYTES = $1409;
1293   GL_AUX0 = $0409;
1294   GL_AUX1 = $040A;
1295   GL_AUX2 = $040B;
1296   GL_AUX3 = $040C;
1297   GL_STACK_OVERFLOW = $0503;
1298   GL_STACK_UNDERFLOW = $0504;
1299   GL_2D = $0600;
1300   GL_3D = $0601;
1301   GL_3D_COLOR = $0602;
1302   GL_3D_COLOR_TEXTURE = $0603;
1303   GL_4D_COLOR_TEXTURE = $0604;
1304   GL_PASS_THROUGH_TOKEN = $0700;
1305   GL_POINT_TOKEN = $0701;
1306   GL_LINE_TOKEN = $0702;
1307   GL_POLYGON_TOKEN = $0703;
1308   GL_BITMAP_TOKEN = $0704;
1309   GL_DRAW_PIXEL_TOKEN = $0705;
1310   GL_COPY_PIXEL_TOKEN = $0706;
1311   GL_LINE_RESET_TOKEN = $0707;
1312   GL_EXP = $0800;
1313   GL_EXP2 = $0801;
1314   GL_COEFF = $0A00;
1315   GL_ORDER = $0A01;
1316   GL_DOMAIN = $0A02;
1317   GL_CURRENT_COLOR = $0B00;
1318   GL_CURRENT_INDEX = $0B01;
1319   GL_CURRENT_NORMAL = $0B02;
1320   GL_CURRENT_TEXTURE_COORDS = $0B03;
1321   GL_CURRENT_RASTER_COLOR = $0B04;
1322   GL_CURRENT_RASTER_INDEX = $0B05;
1323   GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
1324   GL_CURRENT_RASTER_POSITION = $0B07;
1325   GL_CURRENT_RASTER_POSITION_VALID = $0B08;
1326   GL_CURRENT_RASTER_DISTANCE = $0B09;
1327   GL_POINT_SMOOTH = $0B10;
1328   GL_LINE_STIPPLE = $0B24;
1329   GL_LINE_STIPPLE_PATTERN = $0B25;
1330   GL_LINE_STIPPLE_REPEAT = $0B26;
1331   GL_LIST_MODE = $0B30;
1332   GL_MAX_LIST_NESTING = $0B31;
1333   GL_LIST_BASE = $0B32;
1334   GL_LIST_INDEX = $0B33;
1335   GL_POLYGON_MODE = $0B40;
1336   GL_POLYGON_STIPPLE = $0B42;
1337   GL_EDGE_FLAG = $0B43;
1338   GL_LIGHTING = $0B50;
1339   GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
1340   GL_LIGHT_MODEL_TWO_SIDE = $0B52;
1341   GL_LIGHT_MODEL_AMBIENT = $0B53;
1342   GL_SHADE_MODEL = $0B54;
1343   GL_COLOR_MATERIAL_FACE = $0B55;
1344   GL_COLOR_MATERIAL_PARAMETER = $0B56;
1345   GL_COLOR_MATERIAL = $0B57;
1346   GL_FOG = $0B60;
1347   GL_FOG_INDEX = $0B61;
1348   GL_FOG_DENSITY = $0B62;
1349   GL_FOG_START = $0B63;
1350   GL_FOG_END = $0B64;
1351   GL_FOG_MODE = $0B65;
1352   GL_FOG_COLOR = $0B66;
1353   GL_ACCUM_CLEAR_VALUE = $0B80;
1354   GL_MATRIX_MODE = $0BA0;
1355   GL_NORMALIZE = $0BA1;
1356   GL_MODELVIEW_STACK_DEPTH = $0BA3;
1357   GL_PROJECTION_STACK_DEPTH = $0BA4;
1358   GL_TEXTURE_STACK_DEPTH = $0BA5;
1359   GL_MODELVIEW_MATRIX = $0BA6;
1360   GL_PROJECTION_MATRIX = $0BA7;
1361   GL_TEXTURE_MATRIX = $0BA8;
1362   GL_ATTRIB_STACK_DEPTH = $0BB0;
1363   GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
1364   GL_ALPHA_TEST = $0BC0;
1365   GL_ALPHA_TEST_FUNC = $0BC1;
1366   GL_ALPHA_TEST_REF = $0BC2;
1367   GL_INDEX_LOGIC_OP = $0BF1;
1368   GL_AUX_BUFFERS = $0C00;
1369   GL_INDEX_CLEAR_VALUE = $0C20;
1370   GL_INDEX_WRITEMASK = $0C21;
1371   GL_INDEX_MODE = $0C30;
1372   GL_RGBA_MODE = $0C31;
1373   GL_RENDER_MODE = $0C40;
1374   GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
1375   GL_POINT_SMOOTH_HINT = $0C51;
1376   GL_FOG_HINT = $0C54;
1377   GL_TEXTURE_GEN_S = $0C60;
1378   GL_TEXTURE_GEN_T = $0C61;
1379   GL_TEXTURE_GEN_R = $0C62;
1380   GL_TEXTURE_GEN_Q = $0C63;
1381   GL_PIXEL_MAP_I_TO_I = $0C70;
1382   GL_PIXEL_MAP_S_TO_S = $0C71;
1383   GL_PIXEL_MAP_I_TO_R = $0C72;
1384   GL_PIXEL_MAP_I_TO_G = $0C73;
1385   GL_PIXEL_MAP_I_TO_B = $0C74;
1386   GL_PIXEL_MAP_I_TO_A = $0C75;
1387   GL_PIXEL_MAP_R_TO_R = $0C76;
1388   GL_PIXEL_MAP_G_TO_G = $0C77;
1389   GL_PIXEL_MAP_B_TO_B = $0C78;
1390   GL_PIXEL_MAP_A_TO_A = $0C79;
1391   GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
1392   GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
1393   GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
1394   GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
1395   GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
1396   GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
1397   GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
1398   GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
1399   GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
1400   GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
1401   GL_MAP_COLOR = $0D10;
1402   GL_MAP_STENCIL = $0D11;
1403   GL_INDEX_SHIFT = $0D12;
1404   GL_INDEX_OFFSET = $0D13;
1405   GL_RED_SCALE = $0D14;
1406   GL_RED_BIAS = $0D15;
1407   GL_ZOOM_X = $0D16;
1408   GL_ZOOM_Y = $0D17;
1409   GL_GREEN_SCALE = $0D18;
1410   GL_GREEN_BIAS = $0D19;
1411   GL_BLUE_SCALE = $0D1A;
1412   GL_BLUE_BIAS = $0D1B;
1413   GL_ALPHA_SCALE = $0D1C;
1414   GL_ALPHA_BIAS = $0D1D;
1415   GL_DEPTH_SCALE = $0D1E;
1416   GL_DEPTH_BIAS = $0D1F;
1417   GL_MAX_EVAL_ORDER = $0D30;
1418   GL_MAX_LIGHTS = $0D31;
1419   GL_MAX_CLIP_PLANES = $0D32;
1420   GL_MAX_PIXEL_MAP_TABLE = $0D34;
1421   GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
1422   GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
1423   GL_MAX_NAME_STACK_DEPTH = $0D37;
1424   GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
1425   GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
1426   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
1427   GL_INDEX_BITS = $0D51;
1428   GL_RED_BITS = $0D52;
1429   GL_GREEN_BITS = $0D53;
1430   GL_BLUE_BITS = $0D54;
1431   GL_ALPHA_BITS = $0D55;
1432   GL_DEPTH_BITS = $0D56;
1433   GL_STENCIL_BITS = $0D57;
1434   GL_ACCUM_RED_BITS = $0D58;
1435   GL_ACCUM_GREEN_BITS = $0D59;
1436   GL_ACCUM_BLUE_BITS = $0D5A;
1437   GL_ACCUM_ALPHA_BITS = $0D5B;
1438   GL_NAME_STACK_DEPTH = $0D70;
1439   GL_AUTO_NORMAL = $0D80;
1440   GL_MAP1_COLOR_4 = $0D90;
1441   GL_MAP1_INDEX = $0D91;
1442   GL_MAP1_NORMAL = $0D92;
1443   GL_MAP1_TEXTURE_COORD_1 = $0D93;
1444   GL_MAP1_TEXTURE_COORD_2 = $0D94;
1445   GL_MAP1_TEXTURE_COORD_3 = $0D95;
1446   GL_MAP1_TEXTURE_COORD_4 = $0D96;
1447   GL_MAP1_VERTEX_3 = $0D97;
1448   GL_MAP1_VERTEX_4 = $0D98;
1449   GL_MAP2_COLOR_4 = $0DB0;
1450   GL_MAP2_INDEX = $0DB1;
1451   GL_MAP2_NORMAL = $0DB2;
1452   GL_MAP2_TEXTURE_COORD_1 = $0DB3;
1453   GL_MAP2_TEXTURE_COORD_2 = $0DB4;
1454   GL_MAP2_TEXTURE_COORD_3 = $0DB5;
1455   GL_MAP2_TEXTURE_COORD_4 = $0DB6;
1456   GL_MAP2_VERTEX_3 = $0DB7;
1457   GL_MAP2_VERTEX_4 = $0DB8;
1458   GL_MAP1_GRID_DOMAIN = $0DD0;
1459   GL_MAP1_GRID_SEGMENTS = $0DD1;
1460   GL_MAP2_GRID_DOMAIN = $0DD2;
1461   GL_MAP2_GRID_SEGMENTS = $0DD3;
1462   GL_FEEDBACK_BUFFER_POINTER = $0DF0;
1463   GL_FEEDBACK_BUFFER_SIZE = $0DF1;
1464   GL_FEEDBACK_BUFFER_TYPE = $0DF2;
1465   GL_SELECTION_BUFFER_POINTER = $0DF3;
1466   GL_SELECTION_BUFFER_SIZE = $0DF4;
1467   GL_LIGHT0 = $4000;
1468   GL_LIGHT1 = $4001;
1469   GL_LIGHT2 = $4002;
1470   GL_LIGHT3 = $4003;
1471   GL_LIGHT4 = $4004;
1472   GL_LIGHT5 = $4005;
1473   GL_LIGHT6 = $4006;
1474   GL_LIGHT7 = $4007;
1475   GL_AMBIENT = $1200;
1476   GL_DIFFUSE = $1201;
1477   GL_SPECULAR = $1202;
1478   GL_POSITION = $1203;
1479   GL_SPOT_DIRECTION = $1204;
1480   GL_SPOT_EXPONENT = $1205;
1481   GL_SPOT_CUTOFF = $1206;
1482   GL_CONSTANT_ATTENUATION = $1207;
1483   GL_LINEAR_ATTENUATION = $1208;
1484   GL_QUADRATIC_ATTENUATION = $1209;
1485   GL_COMPILE = $1300;
1486   GL_COMPILE_AND_EXECUTE = $1301;
1487   GL_EMISSION = $1600;
1488   GL_SHININESS = $1601;
1489   GL_AMBIENT_AND_DIFFUSE = $1602;
1490   GL_COLOR_INDEXES = $1603;
1491   GL_MODELVIEW = $1700;
1492   GL_PROJECTION = $1701;
1493   GL_COLOR_INDEX = $1900;
1494   GL_LUMINANCE = $1909;
1495   GL_LUMINANCE_ALPHA = $190A;
1496   GL_BITMAP = $1A00;
1497   GL_RENDER = $1C00;
1498   GL_FEEDBACK = $1C01;
1499   GL_SELECT = $1C02;
1500   GL_FLAT = $1D00;
1501   GL_SMOOTH = $1D01;
1502   GL_S = $2000;
1503   GL_T = $2001;
1504   GL_R = $2002;
1505   GL_Q = $2003;
1506   GL_MODULATE = $2100;
1507   GL_DECAL = $2101;
1508   GL_TEXTURE_ENV_MODE = $2200;
1509   GL_TEXTURE_ENV_COLOR = $2201;
1510   GL_TEXTURE_ENV = $2300;
1511   GL_EYE_LINEAR = $2400;
1512   GL_OBJECT_LINEAR = $2401;
1513   GL_SPHERE_MAP = $2402;
1514   GL_TEXTURE_GEN_MODE = $2500;
1515   GL_OBJECT_PLANE = $2501;
1516   GL_EYE_PLANE = $2502;
1517   GL_CLAMP = $2900;
1518   GL_CLIENT_PIXEL_STORE_BIT = $00000001;
1519   GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
1520   GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
1521   GL_ALPHA4 = $803B;
1522   GL_ALPHA8 = $803C;
1523   GL_ALPHA12 = $803D;
1524   GL_ALPHA16 = $803E;
1525   GL_LUMINANCE4 = $803F;
1526   GL_LUMINANCE8 = $8040;
1527   GL_LUMINANCE12 = $8041;
1528   GL_LUMINANCE16 = $8042;
1529   GL_LUMINANCE4_ALPHA4 = $8043;
1530   GL_LUMINANCE6_ALPHA2 = $8044;
1531   GL_LUMINANCE8_ALPHA8 = $8045;
1532   GL_LUMINANCE12_ALPHA4 = $8046;
1533   GL_LUMINANCE12_ALPHA12 = $8047;
1534   GL_LUMINANCE16_ALPHA16 = $8048;
1535   GL_INTENSITY = $8049;
1536   GL_INTENSITY4 = $804A;
1537   GL_INTENSITY8 = $804B;
1538   GL_INTENSITY12 = $804C;
1539   GL_INTENSITY16 = $804D;
1540   GL_TEXTURE_LUMINANCE_SIZE = $8060;
1541   GL_TEXTURE_INTENSITY_SIZE = $8061;
1542   GL_TEXTURE_PRIORITY = $8066;
1543   GL_TEXTURE_RESIDENT = $8067;
1544   GL_VERTEX_ARRAY = $8074;
1545   GL_NORMAL_ARRAY = $8075;
1546   GL_COLOR_ARRAY = $8076;
1547   GL_INDEX_ARRAY = $8077;
1548   GL_TEXTURE_COORD_ARRAY = $8078;
1549   GL_EDGE_FLAG_ARRAY = $8079;
1550   GL_VERTEX_ARRAY_SIZE = $807A;
1551   GL_VERTEX_ARRAY_TYPE = $807B;
1552   GL_VERTEX_ARRAY_STRIDE = $807C;
1553   GL_NORMAL_ARRAY_TYPE = $807E;
1554   GL_NORMAL_ARRAY_STRIDE = $807F;
1555   GL_COLOR_ARRAY_SIZE = $8081;
1556   GL_COLOR_ARRAY_TYPE = $8082;
1557   GL_COLOR_ARRAY_STRIDE = $8083;
1558   GL_INDEX_ARRAY_TYPE = $8085;
1559   GL_INDEX_ARRAY_STRIDE = $8086;
1560   GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
1561   GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
1562   GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
1563   GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
1564   GL_VERTEX_ARRAY_POINTER = $808E;
1565   GL_NORMAL_ARRAY_POINTER = $808F;
1566   GL_COLOR_ARRAY_POINTER = $8090;
1567   GL_INDEX_ARRAY_POINTER = $8091;
1568   GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
1569   GL_EDGE_FLAG_ARRAY_POINTER = $8093;
1570   GL_V2F = $2A20;
1571   GL_V3F = $2A21;
1572   GL_C4UB_V2F = $2A22;
1573   GL_C4UB_V3F = $2A23;
1574   GL_C3F_V3F = $2A24;
1575   GL_N3F_V3F = $2A25;
1576   GL_C4F_N3F_V3F = $2A26;
1577   GL_T2F_V3F = $2A27;
1578   GL_T4F_V4F = $2A28;
1579   GL_T2F_C4UB_V3F = $2A29;
1580   GL_T2F_C3F_V3F = $2A2A;
1581   GL_T2F_N3F_V3F = $2A2B;
1582   GL_T2F_C4F_N3F_V3F = $2A2C;
1583   GL_T4F_C4F_N3F_V4F = $2A2D;
1584   GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1585   GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1586   GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1587   GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1588   GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1589   GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1590   GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1591   GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1592   GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
1593   GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
1594 {$endif}
1595
1596   // GL_VERSION_1_2
1597   GL_UNSIGNED_BYTE_3_3_2 = $8032;
1598   GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
1599   GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
1600   GL_UNSIGNED_INT_8_8_8_8 = $8035;
1601   GL_UNSIGNED_INT_10_10_10_2 = $8036;
1602   GL_TEXTURE_BINDING_3D = $806A;
1603   GL_PACK_SKIP_IMAGES = $806B;
1604   GL_PACK_IMAGE_HEIGHT = $806C;
1605   GL_UNPACK_SKIP_IMAGES = $806D;
1606   GL_UNPACK_IMAGE_HEIGHT = $806E;
1607   GL_TEXTURE_3D = $806F;
1608   GL_PROXY_TEXTURE_3D = $8070;
1609   GL_TEXTURE_DEPTH = $8071;
1610   GL_TEXTURE_WRAP_R = $8072;
1611   GL_MAX_3D_TEXTURE_SIZE = $8073;
1612   GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
1613   GL_UNSIGNED_SHORT_5_6_5 = $8363;
1614   GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
1615   GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
1616   GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
1617   GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
1618   GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
1619   GL_BGR = $80E0;
1620   GL_BGRA = $80E1;
1621   GL_MAX_ELEMENTS_VERTICES = $80E8;
1622   GL_MAX_ELEMENTS_INDICES = $80E9;
1623   GL_CLAMP_TO_EDGE = $812F;
1624   GL_TEXTURE_MIN_LOD = $813A;
1625   GL_TEXTURE_MAX_LOD = $813B;
1626   GL_TEXTURE_BASE_LEVEL = $813C;
1627   GL_TEXTURE_MAX_LEVEL = $813D;
1628   GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
1629   GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
1630   GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
1631   GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
1632   GL_ALIASED_LINE_WIDTH_RANGE = $846E;
1633 {$ifdef DGL_DEPRECATED}
1634   GL_RESCALE_NORMAL = $803A;
1635   GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
1636   GL_SINGLE_COLOR = $81F9;
1637   GL_SEPARATE_SPECULAR_COLOR = $81FA;
1638   GL_ALIASED_POINT_SIZE_RANGE = $846D;
1639 {$endif}
1640
1641   // GL_VERSION_1_3
1642   GL_TEXTURE0 = $84C0;
1643   GL_TEXTURE1 = $84C1;
1644   GL_TEXTURE2 = $84C2;
1645   GL_TEXTURE3 = $84C3;
1646   GL_TEXTURE4 = $84C4;
1647   GL_TEXTURE5 = $84C5;
1648   GL_TEXTURE6 = $84C6;
1649   GL_TEXTURE7 = $84C7;
1650   GL_TEXTURE8 = $84C8;
1651   GL_TEXTURE9 = $84C9;
1652   GL_TEXTURE10 = $84CA;
1653   GL_TEXTURE11 = $84CB;
1654   GL_TEXTURE12 = $84CC;
1655   GL_TEXTURE13 = $84CD;
1656   GL_TEXTURE14 = $84CE;
1657   GL_TEXTURE15 = $84CF;
1658   GL_TEXTURE16 = $84D0;
1659   GL_TEXTURE17 = $84D1;
1660   GL_TEXTURE18 = $84D2;
1661   GL_TEXTURE19 = $84D3;
1662   GL_TEXTURE20 = $84D4;
1663   GL_TEXTURE21 = $84D5;
1664   GL_TEXTURE22 = $84D6;
1665   GL_TEXTURE23 = $84D7;
1666   GL_TEXTURE24 = $84D8;
1667   GL_TEXTURE25 = $84D9;
1668   GL_TEXTURE26 = $84DA;
1669   GL_TEXTURE27 = $84DB;
1670   GL_TEXTURE28 = $84DC;
1671   GL_TEXTURE29 = $84DD;
1672   GL_TEXTURE30 = $84DE;
1673   GL_TEXTURE31 = $84DF;
1674   GL_ACTIVE_TEXTURE = $84E0;
1675   GL_MULTISAMPLE = $809D;
1676   GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
1677   GL_SAMPLE_ALPHA_TO_ONE = $809F;
1678   GL_SAMPLE_COVERAGE = $80A0;
1679   GL_SAMPLE_BUFFERS = $80A8;
1680   GL_SAMPLES = $80A9;
1681   GL_SAMPLE_COVERAGE_VALUE = $80AA;
1682   GL_SAMPLE_COVERAGE_INVERT = $80AB;
1683   GL_TEXTURE_CUBE_MAP = $8513;
1684   GL_TEXTURE_BINDING_CUBE_MAP = $8514;
1685   GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
1686   GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
1687   GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
1688   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
1689   GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
1690   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
1691   GL_PROXY_TEXTURE_CUBE_MAP = $851B;
1692   GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
1693   GL_COMPRESSED_RGB = $84ED;
1694   GL_COMPRESSED_RGBA = $84EE;
1695   GL_TEXTURE_COMPRESSION_HINT = $84EF;
1696   GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
1697   GL_TEXTURE_COMPRESSED = $86A1;
1698   GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
1699   GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
1700   GL_CLAMP_TO_BORDER = $812D;
1701 {$ifdef DGL_DEPRECATED}
1702   GL_CLIENT_ACTIVE_TEXTURE = $84E1;
1703   GL_MAX_TEXTURE_UNITS = $84E2;
1704   GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
1705   GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
1706   GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
1707   GL_TRANSPOSE_COLOR_MATRIX = $84E6;
1708   GL_MULTISAMPLE_BIT = $20000000;
1709   GL_NORMAL_MAP = $8511;
1710   GL_REFLECTION_MAP = $8512;
1711   GL_COMPRESSED_ALPHA = $84E9;
1712   GL_COMPRESSED_LUMINANCE = $84EA;
1713   GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
1714   GL_COMPRESSED_INTENSITY = $84EC;
1715   GL_COMBINE = $8570;
1716   GL_COMBINE_RGB = $8571;
1717   GL_COMBINE_ALPHA = $8572;
1718   GL_SOURCE0_RGB = $8580;
1719   GL_SOURCE1_RGB = $8581;
1720   GL_SOURCE2_RGB = $8582;
1721   GL_SOURCE0_ALPHA = $8588;
1722   GL_SOURCE1_ALPHA = $8589;
1723   GL_SOURCE2_ALPHA = $858A;
1724   GL_OPERAND0_RGB = $8590;
1725   GL_OPERAND1_RGB = $8591;
1726   GL_OPERAND2_RGB = $8592;
1727   GL_OPERAND0_ALPHA = $8598;
1728   GL_OPERAND1_ALPHA = $8599;
1729   GL_OPERAND2_ALPHA = $859A;
1730   GL_RGB_SCALE = $8573;
1731   GL_ADD_SIGNED = $8574;
1732   GL_INTERPOLATE = $8575;
1733   GL_SUBTRACT = $84E7;
1734   GL_CONSTANT = $8576;
1735   GL_PRIMARY_COLOR = $8577;
1736   GL_PREVIOUS = $8578;
1737   GL_DOT3_RGB = $86AE;
1738   GL_DOT3_RGBA = $86AF;
1739 {$endif}
1740
1741   // GL_VERSION_1_4
1742   GL_BLEND_DST_RGB = $80C8;
1743   GL_BLEND_SRC_RGB = $80C9;
1744   GL_BLEND_DST_ALPHA = $80CA;
1745   GL_BLEND_SRC_ALPHA = $80CB;
1746   GL_POINT_FADE_THRESHOLD_SIZE = $8128;
1747   GL_DEPTH_COMPONENT16 = $81A5;
1748   GL_DEPTH_COMPONENT24 = $81A6;
1749   GL_DEPTH_COMPONENT32 = $81A7;
1750   GL_MIRRORED_REPEAT = $8370;
1751   GL_MAX_TEXTURE_LOD_BIAS = $84FD;
1752   GL_TEXTURE_LOD_BIAS = $8501;
1753   GL_INCR_WRAP = $8507;
1754   GL_DECR_WRAP = $8508;
1755   GL_TEXTURE_DEPTH_SIZE = $884A;
1756   GL_TEXTURE_COMPARE_MODE = $884C;
1757   GL_TEXTURE_COMPARE_FUNC = $884D;
1758 {$ifdef DGL_DEPRECATED}
1759   GL_POINT_SIZE_MIN = $8126;
1760   GL_POINT_SIZE_MAX = $8127;
1761   GL_POINT_DISTANCE_ATTENUATION = $8129;
1762   GL_GENERATE_MIPMAP = $8191;
1763   GL_GENERATE_MIPMAP_HINT = $8192;
1764   GL_FOG_COORDINATE_SOURCE = $8450;
1765   GL_FOG_COORDINATE = $8451;
1766   GL_FRAGMENT_DEPTH = $8452;
1767   GL_CURRENT_FOG_COORDINATE = $8453;
1768   GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
1769   GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
1770   GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
1771   GL_FOG_COORDINATE_ARRAY = $8457;
1772   GL_COLOR_SUM = $8458;
1773   GL_CURRENT_SECONDARY_COLOR = $8459;
1774   GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
1775   GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
1776   GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
1777   GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
1778   GL_SECONDARY_COLOR_ARRAY = $845E;
1779   GL_TEXTURE_FILTER_CONTROL = $8500;
1780   GL_DEPTH_TEXTURE_MODE = $884B;
1781   GL_COMPARE_R_TO_TEXTURE = $884E;
1782 {$endif}
1783
1784   // GL_VERSION_1_5
1785   GL_BUFFER_SIZE = $8764;
1786   GL_BUFFER_USAGE = $8765;
1787   GL_QUERY_COUNTER_BITS = $8864;
1788   GL_CURRENT_QUERY = $8865;
1789   GL_QUERY_RESULT = $8866;
1790   GL_QUERY_RESULT_AVAILABLE = $8867;
1791   GL_ARRAY_BUFFER = $8892;
1792   GL_ELEMENT_ARRAY_BUFFER = $8893;
1793   GL_ARRAY_BUFFER_BINDING = $8894;
1794   GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
1795   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
1796   GL_READ_ONLY = $88B8;
1797   GL_WRITE_ONLY = $88B9;
1798   GL_READ_WRITE = $88BA;
1799   GL_BUFFER_ACCESS = $88BB;
1800   GL_BUFFER_MAPPED = $88BC;
1801   GL_BUFFER_MAP_POINTER = $88BD;
1802   GL_STREAM_DRAW = $88E0;
1803   GL_STREAM_READ = $88E1;
1804   GL_STREAM_COPY = $88E2;
1805   GL_STATIC_DRAW = $88E4;
1806   GL_STATIC_READ = $88E5;
1807   GL_STATIC_COPY = $88E6;
1808   GL_DYNAMIC_DRAW = $88E8;
1809   GL_DYNAMIC_READ = $88E9;
1810   GL_DYNAMIC_COPY = $88EA;
1811   GL_SAMPLES_PASSED = $8914;
1812 {$ifdef DGL_DEPRECATED}
1813   GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
1814   GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
1815   GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
1816   GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
1817   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
1818   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
1819   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
1820   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
1821   GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
1822   GL_FOG_COORD_SRC = $8450;
1823   GL_FOG_COORD = $8451;
1824   GL_CURRENT_FOG_COORD = $8453;
1825   GL_FOG_COORD_ARRAY_TYPE = $8454;
1826   GL_FOG_COORD_ARRAY_STRIDE = $8455;
1827   GL_FOG_COORD_ARRAY_POINTER = $8456;
1828   GL_FOG_COORD_ARRAY = $8457;
1829   GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
1830   GL_SRC0_RGB = $8580;
1831   GL_SRC1_RGB = $8581;
1832   GL_SRC2_RGB = $8582;
1833   GL_SRC0_ALPHA = $8588;
1834   GL_SRC1_ALPHA = $8589;
1835   GL_SRC2_ALPHA = $858A;
1836 {$endif}
1837
1838   // GL_VERSION_2_0
1839   GL_BLEND_EQUATION_RGB = $8009;
1840   GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
1841   GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
1842   GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
1843   GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
1844   GL_CURRENT_VERTEX_ATTRIB = $8626;
1845   GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
1846   GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
1847   GL_STENCIL_BACK_FUNC = $8800;
1848   GL_STENCIL_BACK_FAIL = $8801;
1849   GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
1850   GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
1851   GL_MAX_DRAW_BUFFERS = $8824;
1852   GL_DRAW_BUFFER0 = $8825;
1853   GL_DRAW_BUFFER1 = $8826;
1854   GL_DRAW_BUFFER2 = $8827;
1855   GL_DRAW_BUFFER3 = $8828;
1856   GL_DRAW_BUFFER4 = $8829;
1857   GL_DRAW_BUFFER5 = $882A;
1858   GL_DRAW_BUFFER6 = $882B;
1859   GL_DRAW_BUFFER7 = $882C;
1860   GL_DRAW_BUFFER8 = $882D;
1861   GL_DRAW_BUFFER9 = $882E;
1862   GL_DRAW_BUFFER10 = $882F;
1863   GL_DRAW_BUFFER11 = $8830;
1864   GL_DRAW_BUFFER12 = $8831;
1865   GL_DRAW_BUFFER13 = $8832;
1866   GL_DRAW_BUFFER14 = $8833;
1867   GL_DRAW_BUFFER15 = $8834;
1868   GL_BLEND_EQUATION_ALPHA = $883D;
1869   GL_MAX_VERTEX_ATTRIBS = $8869;
1870   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
1871   GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
1872   GL_FRAGMENT_SHADER = $8B30;
1873   GL_VERTEX_SHADER = $8B31;
1874   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
1875   GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
1876   GL_MAX_VARYING_FLOATS = $8B4B;
1877   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
1878   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
1879   GL_SHADER_TYPE = $8B4F;
1880   GL_FLOAT_VEC2 = $8B50;
1881   GL_FLOAT_VEC3 = $8B51;
1882   GL_FLOAT_VEC4 = $8B52;
1883   GL_INT_VEC2 = $8B53;
1884   GL_INT_VEC3 = $8B54;
1885   GL_INT_VEC4 = $8B55;
1886   GL_BOOL = $8B56;
1887   GL_BOOL_VEC2 = $8B57;
1888   GL_BOOL_VEC3 = $8B58;
1889   GL_BOOL_VEC4 = $8B59;
1890   GL_FLOAT_MAT2 = $8B5A;
1891   GL_FLOAT_MAT3 = $8B5B;
1892   GL_FLOAT_MAT4 = $8B5C;
1893   GL_SAMPLER_1D = $8B5D;
1894   GL_SAMPLER_2D = $8B5E;
1895   GL_SAMPLER_3D = $8B5F;
1896   GL_SAMPLER_CUBE = $8B60;
1897   GL_SAMPLER_1D_SHADOW = $8B61;
1898   GL_SAMPLER_2D_SHADOW = $8B62;
1899   GL_DELETE_STATUS = $8B80;
1900   GL_COMPILE_STATUS = $8B81;
1901   GL_LINK_STATUS = $8B82;
1902   GL_VALIDATE_STATUS = $8B83;
1903   GL_INFO_LOG_LENGTH = $8B84;
1904   GL_ATTACHED_SHADERS = $8B85;
1905   GL_ACTIVE_UNIFORMS = $8B86;
1906   GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
1907   GL_SHADER_SOURCE_LENGTH = $8B88;
1908   GL_ACTIVE_ATTRIBUTES = $8B89;
1909   GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
1910   GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
1911   GL_SHADING_LANGUAGE_VERSION = $8B8C;
1912   GL_CURRENT_PROGRAM = $8B8D;
1913   GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
1914   GL_LOWER_LEFT = $8CA1;
1915   GL_UPPER_LEFT = $8CA2;
1916   GL_STENCIL_BACK_REF = $8CA3;
1917   GL_STENCIL_BACK_VALUE_MASK = $8CA4;
1918   GL_STENCIL_BACK_WRITEMASK = $8CA5;
1919 {$ifdef DGL_DEPRECATED}
1920   GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
1921   GL_POINT_SPRITE = $8861;
1922   GL_COORD_REPLACE = $8862;
1923   GL_MAX_TEXTURE_COORDS = $8871;
1924 {$endif}
1925
1926   // GL_VERSION_2_1
1927   GL_PIXEL_PACK_BUFFER = $88EB;
1928   GL_PIXEL_UNPACK_BUFFER = $88EC;
1929   GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
1930   GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
1931   GL_FLOAT_MAT2x3 = $8B65;
1932   GL_FLOAT_MAT2x4 = $8B66;
1933   GL_FLOAT_MAT3x2 = $8B67;
1934   GL_FLOAT_MAT3x4 = $8B68;
1935   GL_FLOAT_MAT4x2 = $8B69;
1936   GL_FLOAT_MAT4x3 = $8B6A;
1937   GL_SRGB = $8C40;
1938   GL_SRGB8 = $8C41;
1939   GL_SRGB_ALPHA = $8C42;
1940   GL_SRGB8_ALPHA8 = $8C43;
1941   GL_COMPRESSED_SRGB = $8C48;
1942   GL_COMPRESSED_SRGB_ALPHA = $8C49;
1943 {$ifdef DGL_DEPRECATED}
1944   GL_CURRENT_RASTER_SECONDARY_COLOR = $845F;
1945   GL_SLUMINANCE_ALPHA = $8C44;
1946   GL_SLUMINANCE8_ALPHA8 = $8C45;
1947   GL_SLUMINANCE = $8C46;
1948   GL_SLUMINANCE8 = $8C47;
1949   GL_COMPRESSED_SLUMINANCE = $8C4A;
1950   GL_COMPRESSED_SLUMINANCE_ALPHA = $8C4B;
1951 {$endif}
1952
1953   // GL_VERSION_3_0
1954   GL_COMPARE_REF_TO_TEXTURE = $884E;
1955   GL_CLIP_DISTANCE0 = $3000;
1956   GL_CLIP_DISTANCE1 = $3001;
1957   GL_CLIP_DISTANCE2 = $3002;
1958   GL_CLIP_DISTANCE3 = $3003;
1959   GL_CLIP_DISTANCE4 = $3004;
1960   GL_CLIP_DISTANCE5 = $3005;
1961   GL_CLIP_DISTANCE6 = $3006;
1962   GL_CLIP_DISTANCE7 = $3007;
1963   GL_MAX_CLIP_DISTANCES = $0D32;
1964   GL_MAJOR_VERSION = $821B;
1965   GL_MINOR_VERSION = $821C;
1966   GL_NUM_EXTENSIONS = $821D;
1967   GL_CONTEXT_FLAGS = $821E;
1968   GL_DEPTH_BUFFER = $8223;
1969   GL_STENCIL_BUFFER = $8224;
1970   GL_COMPRESSED_RED = $8225;
1971   GL_COMPRESSED_RG = $8226;
1972   GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = $0001;
1973   GL_RGBA32F = $8814;
1974   GL_RGB32F = $8815;
1975   GL_RGBA16F = $881A;
1976   GL_RGB16F = $881B;
1977   GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
1978   GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
1979   GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
1980   GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
1981   GL_CLAMP_READ_COLOR = $891C;
1982   GL_FIXED_ONLY = $891D;
1983   GL_MAX_VARYING_COMPONENTS = $8B4B;
1984   GL_TEXTURE_1D_ARRAY = $8C18;
1985   GL_PROXY_TEXTURE_1D_ARRAY = $8C19;
1986   GL_TEXTURE_2D_ARRAY = $8C1A;
1987   GL_PROXY_TEXTURE_2D_ARRAY = $8C1B;
1988   GL_TEXTURE_BINDING_1D_ARRAY = $8C1C;
1989   GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
1990   GL_R11F_G11F_B10F = $8C3A;
1991   GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
1992   GL_RGB9_E5 = $8C3D;
1993   GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
1994   GL_TEXTURE_SHARED_SIZE = $8C3F;
1995   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
1996   GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
1997   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
1998   GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
1999   GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
2000   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
2001   GL_PRIMITIVES_GENERATED = $8C87;
2002   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
2003   GL_RASTERIZER_DISCARD = $8C89;
2004   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
2005   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
2006   GL_INTERLEAVED_ATTRIBS = $8C8C;
2007   GL_SEPARATE_ATTRIBS = $8C8D;
2008   GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
2009   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
2010   GL_RGBA32UI = $8D70;
2011   GL_RGB32UI = $8D71;
2012   GL_RGBA16UI = $8D76;
2013   GL_RGB16UI = $8D77;
2014   GL_RGBA8UI = $8D7C;
2015   GL_RGB8UI = $8D7D;
2016   GL_RGBA32I = $8D82;
2017   GL_RGB32I = $8D83;
2018   GL_RGBA16I = $8D88;
2019   GL_RGB16I = $8D89;
2020   GL_RGBA8I = $8D8E;
2021   GL_RGB8I = $8D8F;
2022   GL_RED_INTEGER = $8D94;
2023   GL_GREEN_INTEGER = $8D95;
2024   GL_BLUE_INTEGER = $8D96;
2025   GL_RGB_INTEGER = $8D98;
2026   GL_RGBA_INTEGER = $8D99;
2027   GL_BGR_INTEGER = $8D9A;
2028   GL_BGRA_INTEGER = $8D9B;
2029   GL_SAMPLER_1D_ARRAY = $8DC0;
2030   GL_SAMPLER_2D_ARRAY = $8DC1;
2031   GL_SAMPLER_1D_ARRAY_SHADOW = $8DC3;
2032   GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
2033   GL_SAMPLER_CUBE_SHADOW = $8DC5;
2034   GL_UNSIGNED_INT_VEC2 = $8DC6;
2035   GL_UNSIGNED_INT_VEC3 = $8DC7;
2036   GL_UNSIGNED_INT_VEC4 = $8DC8;
2037   GL_INT_SAMPLER_1D = $8DC9;
2038   GL_INT_SAMPLER_2D = $8DCA;
2039   GL_INT_SAMPLER_3D = $8DCB;
2040   GL_INT_SAMPLER_CUBE = $8DCC;
2041   GL_INT_SAMPLER_1D_ARRAY = $8DCE;
2042   GL_INT_SAMPLER_2D_ARRAY = $8DCF;
2043   GL_UNSIGNED_INT_SAMPLER_1D = $8DD1;
2044   GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
2045   GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
2046   GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
2047   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = $8DD6;
2048   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
2049   GL_QUERY_WAIT = $8E13;
2050   GL_QUERY_NO_WAIT = $8E14;
2051   GL_QUERY_BY_REGION_WAIT = $8E15;
2052   GL_QUERY_BY_REGION_NO_WAIT = $8E16;
2053   GL_BUFFER_ACCESS_FLAGS = $911F;
2054   GL_BUFFER_MAP_LENGTH = $9120;
2055   GL_BUFFER_MAP_OFFSET = $9121;
2056   { Reuse tokens from ARB_depth_buffer_float }
2057   { reuse GL_DEPTH_COMPONENT32F }
2058   { reuse GL_DEPTH32F_STENCIL8 }
2059   { reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV }
2060   { Reuse tokens from ARB_framebuffer_object }
2061   { reuse GL_INVALID_FRAMEBUFFER_OPERATION }
2062   { reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING }
2063   { reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE }
2064   { reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE }
2065   { reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE }
2066   { reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE }
2067   { reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE }
2068   { reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE }
2069   { reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE }
2070   { reuse GL_FRAMEBUFFER_DEFAULT }
2071   { reuse GL_FRAMEBUFFER_UNDEFINED }
2072   { reuse GL_DEPTH_STENCIL_ATTACHMENT }
2073   { reuse GL_INDEX }
2074   { reuse GL_MAX_RENDERBUFFER_SIZE }
2075   { reuse GL_DEPTH_STENCIL }
2076   { reuse GL_UNSIGNED_INT_24_8 }
2077   { reuse GL_DEPTH24_STENCIL8 }
2078   { reuse GL_TEXTURE_STENCIL_SIZE }
2079   { reuse GL_TEXTURE_RED_TYPE }
2080   { reuse GL_TEXTURE_GREEN_TYPE }
2081   { reuse GL_TEXTURE_BLUE_TYPE }
2082   { reuse GL_TEXTURE_ALPHA_TYPE }
2083   { reuse GL_TEXTURE_DEPTH_TYPE }
2084   { reuse GL_UNSIGNED_NORMALIZED }
2085   { reuse GL_FRAMEBUFFER_BINDING }
2086   { reuse GL_DRAW_FRAMEBUFFER_BINDING }
2087   { reuse GL_RENDERBUFFER_BINDING }
2088   { reuse GL_READ_FRAMEBUFFER }
2089   { reuse GL_DRAW_FRAMEBUFFER }
2090   { reuse GL_READ_FRAMEBUFFER_BINDING }
2091   { reuse GL_RENDERBUFFER_SAMPLES }
2092   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE }
2093   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME }
2094   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL }
2095   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE }
2096   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2097   { reuse GL_FRAMEBUFFER_COMPLETE }
2098   { reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT }
2099   { reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT }
2100   { reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER }
2101   { reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER }
2102   { reuse GL_FRAMEBUFFER_UNSUPPORTED }
2103   { reuse GL_MAX_COLOR_ATTACHMENTS }
2104   { reuse GL_COLOR_ATTACHMENT0 }
2105   { reuse GL_COLOR_ATTACHMENT1 }
2106   { reuse GL_COLOR_ATTACHMENT2 }
2107   { reuse GL_COLOR_ATTACHMENT3 }
2108   { reuse GL_COLOR_ATTACHMENT4 }
2109   { reuse GL_COLOR_ATTACHMENT5 }
2110   { reuse GL_COLOR_ATTACHMENT6 }
2111   { reuse GL_COLOR_ATTACHMENT7 }
2112   { reuse GL_COLOR_ATTACHMENT8 }
2113   { reuse GL_COLOR_ATTACHMENT9 }
2114   { reuse GL_COLOR_ATTACHMENT10 }
2115   { reuse GL_COLOR_ATTACHMENT11 }
2116   { reuse GL_COLOR_ATTACHMENT12 }
2117   { reuse GL_COLOR_ATTACHMENT13 }
2118   { reuse GL_COLOR_ATTACHMENT14 }
2119   { reuse GL_COLOR_ATTACHMENT15 }
2120   { reuse GL_DEPTH_ATTACHMENT }
2121   { reuse GL_STENCIL_ATTACHMENT }
2122   { reuse GL_FRAMEBUFFER }
2123   { reuse GL_RENDERBUFFER }
2124   { reuse GL_RENDERBUFFER_WIDTH }
2125   { reuse GL_RENDERBUFFER_HEIGHT }
2126   { reuse GL_RENDERBUFFER_INTERNAL_FORMAT }
2127   { reuse GL_STENCIL_INDEX1 }
2128   { reuse GL_STENCIL_INDEX4 }
2129   { reuse GL_STENCIL_INDEX8 }
2130   { reuse GL_STENCIL_INDEX16 }
2131   { reuse GL_RENDERBUFFER_RED_SIZE }
2132   { reuse GL_RENDERBUFFER_GREEN_SIZE }
2133   { reuse GL_RENDERBUFFER_BLUE_SIZE }
2134   { reuse GL_RENDERBUFFER_ALPHA_SIZE }
2135   { reuse GL_RENDERBUFFER_DEPTH_SIZE }
2136   { reuse GL_RENDERBUFFER_STENCIL_SIZE }
2137   { reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }
2138   { reuse GL_MAX_SAMPLES }
2139   { Reuse tokens from ARB_framebuffer_sRGB }
2140   { reuse GL_FRAMEBUFFER_SRGB }
2141   { Reuse tokens from ARB_half_float_vertex }
2142   { reuse GL_HALF_FLOAT }
2143   { Reuse tokens from ARB_map_buffer_range }
2144   { reuse GL_MAP_READ_BIT }
2145   { reuse GL_MAP_WRITE_BIT }
2146   { reuse GL_MAP_INVALIDATE_RANGE_BIT }
2147   { reuse GL_MAP_INVALIDATE_BUFFER_BIT }
2148   { reuse GL_MAP_FLUSH_EXPLICIT_BIT }
2149   { reuse GL_MAP_UNSYNCHRONIZED_BIT }
2150   { Reuse tokens from ARB_texture_compression_rgtc }
2151   { reuse GL_COMPRESSED_RED_RGTC1 }
2152   { reuse GL_COMPRESSED_SIGNED_RED_RGTC1 }
2153   { reuse GL_COMPRESSED_RG_RGTC2 }
2154   { reuse GL_COMPRESSED_SIGNED_RG_RGTC2 }
2155   { Reuse tokens from ARB_texture_rg }
2156   { reuse GL_RG }
2157   { reuse GL_RG_INTEGER }
2158   { reuse GL_R8 }
2159   { reuse GL_R16 }
2160   { reuse GL_RG8 }
2161   { reuse GL_RG16 }
2162   { reuse GL_R16F }
2163   { reuse GL_R32F }
2164   { reuse GL_RG16F }
2165   { reuse GL_RG32F }
2166   { reuse GL_R8I }
2167   { reuse GL_R8UI }
2168   { reuse GL_R16I }
2169   { reuse GL_R16UI }
2170   { reuse GL_R32I }
2171   { reuse GL_R32UI }
2172   { reuse GL_RG8I }
2173   { reuse GL_RG8UI }
2174   { reuse GL_RG16I }
2175   { reuse GL_RG16UI }
2176   { reuse GL_RG32I }
2177   { reuse GL_RG32UI }
2178   { Reuse tokens from ARB_vertex_array_object }
2179   { reuse GL_VERTEX_ARRAY_BINDING }
2180 {$ifdef DGL_DEPRECATED}
2181   GL_CLAMP_VERTEX_COLOR = $891A;
2182   GL_CLAMP_FRAGMENT_COLOR = $891B;
2183   GL_ALPHA_INTEGER = $8D97;
2184   { Reuse tokens from ARB_framebuffer_object }
2185   { reuse GL_TEXTURE_LUMINANCE_TYPE }
2186   { reuse GL_TEXTURE_INTENSITY_TYPE }
2187 {$endif}
2188
2189   // GL_VERSION_3_1
2190   GL_SAMPLER_2D_RECT = $8B63;
2191   GL_SAMPLER_2D_RECT_SHADOW = $8B64;
2192   GL_SAMPLER_BUFFER = $8DC2;
2193   GL_INT_SAMPLER_2D_RECT = $8DCD;
2194   GL_INT_SAMPLER_BUFFER = $8DD0;
2195   GL_UNSIGNED_INT_SAMPLER_2D_RECT = $8DD5;
2196   GL_UNSIGNED_INT_SAMPLER_BUFFER = $8DD8;
2197   GL_TEXTURE_BUFFER = $8C2A;
2198   GL_MAX_TEXTURE_BUFFER_SIZE = $8C2B;
2199   GL_TEXTURE_BINDING_BUFFER = $8C2C;
2200   GL_TEXTURE_BUFFER_DATA_STORE_BINDING = $8C2D;
2201   GL_TEXTURE_BUFFER_FORMAT = $8C2E;
2202   GL_TEXTURE_RECTANGLE = $84F5;
2203   GL_TEXTURE_BINDING_RECTANGLE = $84F6;
2204   GL_PROXY_TEXTURE_RECTANGLE = $84F7;
2205   GL_MAX_RECTANGLE_TEXTURE_SIZE = $84F8;
2206   GL_RED_SNORM = $8F90;
2207   GL_RG_SNORM = $8F91;
2208   GL_RGB_SNORM = $8F92;
2209   GL_RGBA_SNORM = $8F93;
2210   GL_R8_SNORM = $8F94;
2211   GL_RG8_SNORM = $8F95;
2212   GL_RGB8_SNORM = $8F96;
2213   GL_RGBA8_SNORM = $8F97;
2214   GL_R16_SNORM = $8F98;
2215   GL_RG16_SNORM = $8F99;
2216   GL_RGB16_SNORM = $8F9A;
2217   GL_RGBA16_SNORM = $8F9B;
2218   GL_SIGNED_NORMALIZED = $8F9C;
2219   GL_PRIMITIVE_RESTART = $8F9D;
2220   GL_PRIMITIVE_RESTART_INDEX = $8F9E;
2221   { Reuse tokens from ARB_copy_buffer }
2222   { reuse GL_COPY_READ_BUFFER }
2223   { reuse GL_COPY_WRITE_BUFFER }
2224   { Reuse tokens from ARB_draw_instanced (none) }
2225   { Reuse tokens from ARB_uniform_buffer_object }
2226   { reuse GL_UNIFORM_BUFFER }
2227   { reuse GL_UNIFORM_BUFFER_BINDING }
2228   { reuse GL_UNIFORM_BUFFER_START }
2229   { reuse GL_UNIFORM_BUFFER_SIZE }
2230   { reuse GL_MAX_VERTEX_UNIFORM_BLOCKS }
2231   { reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS }
2232   { reuse GL_MAX_COMBINED_UNIFORM_BLOCKS }
2233   { reuse GL_MAX_UNIFORM_BUFFER_BINDINGS }
2234   { reuse GL_MAX_UNIFORM_BLOCK_SIZE }
2235   { reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS }
2236   { reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS }
2237   { reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT }
2238   { reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH }
2239   { reuse GL_ACTIVE_UNIFORM_BLOCKS }
2240   { reuse GL_UNIFORM_TYPE }
2241   { reuse GL_UNIFORM_SIZE }
2242   { reuse GL_UNIFORM_NAME_LENGTH }
2243   { reuse GL_UNIFORM_BLOCK_INDEX }
2244   { reuse GL_UNIFORM_OFFSET }
2245   { reuse GL_UNIFORM_ARRAY_STRIDE }
2246   { reuse GL_UNIFORM_MATRIX_STRIDE }
2247   { reuse GL_UNIFORM_IS_ROW_MAJOR }
2248   { reuse GL_UNIFORM_BLOCK_BINDING }
2249   { reuse GL_UNIFORM_BLOCK_DATA_SIZE }
2250   { reuse GL_UNIFORM_BLOCK_NAME_LENGTH }
2251   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS }
2252   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES }
2253   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER }
2254   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER }
2255   { reuse GL_INVALID_INDEX }
2256
2257   // GL_VERSION_3_2
2258   GL_CONTEXT_CORE_PROFILE_BIT = $00000001;
2259   GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = $00000002;
2260   GL_LINES_ADJACENCY = $000A;
2261   GL_LINE_STRIP_ADJACENCY = $000B;
2262   GL_TRIANGLES_ADJACENCY = $000C;
2263   GL_TRIANGLE_STRIP_ADJACENCY = $000D;
2264   GL_PROGRAM_POINT_SIZE = $8642;
2265   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = $8C29;
2266   GL_FRAMEBUFFER_ATTACHMENT_LAYERED = $8DA7;
2267   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = $8DA8;
2268   GL_GEOMETRY_SHADER = $8DD9;
2269   GL_GEOMETRY_VERTICES_OUT = $8916;
2270   GL_GEOMETRY_INPUT_TYPE = $8917;
2271   GL_GEOMETRY_OUTPUT_TYPE = $8918;
2272   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = $8DDF;
2273   GL_MAX_GEOMETRY_OUTPUT_VERTICES = $8DE0;
2274   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = $8DE1;
2275   GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
2276   GL_MAX_GEOMETRY_INPUT_COMPONENTS = $9123;
2277   GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = $9124;
2278   GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
2279   GL_CONTEXT_PROFILE_MASK = $9126;
2280   { reuse GL_MAX_VARYING_COMPONENTS }
2281   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2282   { Reuse tokens from ARB_depth_clamp }
2283   { reuse GL_DEPTH_CLAMP }
2284   { Reuse tokens from ARB_draw_elements_base_vertex (none) }
2285   { Reuse tokens from ARB_fragment_coord_conventions (none) }
2286   { Reuse tokens from ARB_provoking_vertex }
2287   { reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION }
2288   { reuse GL_FIRST_VERTEX_CONVENTION }
2289   { reuse GL_LAST_VERTEX_CONVENTION }
2290   { reuse GL_PROVOKING_VERTEX }
2291   { Reuse tokens from ARB_seamless_cube_map }
2292   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
2293   { Reuse tokens from ARB_sync }
2294   { reuse GL_MAX_SERVER_WAIT_TIMEOUT }
2295   { reuse GL_OBJECT_TYPE }
2296   { reuse GL_SYNC_CONDITION }
2297   { reuse GL_SYNC_STATUS }
2298   { reuse GL_SYNC_FLAGS }
2299   { reuse GL_SYNC_FENCE }
2300   { reuse GL_SYNC_GPU_COMMANDS_COMPLETE }
2301   { reuse GL_UNSIGNALED }
2302   { reuse GL_SIGNALED }
2303   { reuse GL_ALREADY_SIGNALED }
2304   { reuse GL_TIMEOUT_EXPIRED }
2305   { reuse GL_CONDITION_SATISFIED }
2306   { reuse GL_WAIT_FAILED }
2307   { reuse GL_TIMEOUT_IGNORED }
2308   { reuse GL_SYNC_FLUSH_COMMANDS_BIT }
2309   { reuse GL_TIMEOUT_IGNORED }
2310   { Reuse tokens from ARB_texture_multisample }
2311   { reuse GL_SAMPLE_POSITION }
2312   { reuse GL_SAMPLE_MASK }
2313   { reuse GL_SAMPLE_MASK_VALUE }
2314   { reuse GL_MAX_SAMPLE_MASK_WORDS }
2315   { reuse GL_TEXTURE_2D_MULTISAMPLE }
2316   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE }
2317   { reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY }
2318   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY }
2319   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE }
2320   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY }
2321   { reuse GL_TEXTURE_SAMPLES }
2322   { reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS }
2323   { reuse GL_SAMPLER_2D_MULTISAMPLE }
2324   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE }
2325   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE }
2326   { reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY }
2327   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2328   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2329   { reuse GL_MAX_COLOR_TEXTURE_SAMPLES }
2330   { reuse GL_MAX_DEPTH_TEXTURE_SAMPLES }
2331   { reuse GL_MAX_INTEGER_SAMPLES }
2332   { Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core }
2333
2334   // GL_VERSION_3_3
2335   GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
2336   { Reuse tokens from ARB_blend_func_extended }
2337   { reuse GL_SRC1_COLOR }
2338   { reuse GL_ONE_MINUS_SRC1_COLOR }
2339   { reuse GL_ONE_MINUS_SRC1_ALPHA }
2340   { reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS }
2341   { Reuse tokens from ARB_explicit_attrib_location (none) }
2342   { Reuse tokens from ARB_occlusion_query2 }
2343   { reuse GL_ANY_SAMPLES_PASSED }
2344   { Reuse tokens from ARB_sampler_objects }
2345   { reuse GL_SAMPLER_BINDING }
2346   { Reuse tokens from ARB_shader_bit_encoding (none) }
2347   { Reuse tokens from ARB_texture_rgb10_a2ui }
2348   { reuse GL_RGB10_A2UI }
2349   { Reuse tokens from ARB_texture_swizzle }
2350   { reuse GL_TEXTURE_SWIZZLE_R }
2351   { reuse GL_TEXTURE_SWIZZLE_G }
2352   { reuse GL_TEXTURE_SWIZZLE_B }
2353   { reuse GL_TEXTURE_SWIZZLE_A }
2354   { reuse GL_TEXTURE_SWIZZLE_RGBA }
2355   { Reuse tokens from ARB_timer_query }
2356   { reuse GL_TIME_ELAPSED }
2357   { reuse GL_TIMESTAMP }
2358   { Reuse tokens from ARB_vertex_type_2_10_10_10_rev }
2359   { reuse GL_INT_2_10_10_10_REV }
2360
2361   // GL_VERSION_4_0
2362   GL_SAMPLE_SHADING = $8C36;
2363   GL_MIN_SAMPLE_SHADING_VALUE = $8C37;
2364   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
2365   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
2366   GL_TEXTURE_CUBE_MAP_ARRAY = $9009;
2367   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = $900A;
2368   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = $900B;
2369   GL_SAMPLER_CUBE_MAP_ARRAY = $900C;
2370   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = $900D;
2371   GL_INT_SAMPLER_CUBE_MAP_ARRAY = $900E;
2372   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = $900F;
2373   { Reuse tokens from ARB_texture_query_lod (none) }
2374   { Reuse tokens from ARB_draw_buffers_blend (none) }
2375   { Reuse tokens from ARB_draw_indirect }
2376   { reuse GL_DRAW_INDIRECT_BUFFER }
2377   { reuse GL_DRAW_INDIRECT_BUFFER_BINDING }
2378   { Reuse tokens from ARB_gpu_shader5 }
2379   { reuse GL_GEOMETRY_SHADER_INVOCATIONS }
2380   { reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS }
2381   { reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET }
2382   { reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET }
2383   { reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS }
2384   { reuse GL_MAX_VERTEX_STREAMS }
2385   { Reuse tokens from ARB_gpu_shader_fp64 }
2386   { reuse GL_DOUBLE_VEC2 }
2387   { reuse GL_DOUBLE_VEC3 }
2388   { reuse GL_DOUBLE_VEC4 }
2389   { reuse GL_DOUBLE_MAT2 }
2390   { reuse GL_DOUBLE_MAT3 }
2391   { reuse GL_DOUBLE_MAT4 }
2392   { reuse GL_DOUBLE_MAT2x3 }
2393   { reuse GL_DOUBLE_MAT2x4 }
2394   { reuse GL_DOUBLE_MAT3x2 }
2395   { reuse GL_DOUBLE_MAT3x4 }
2396   { reuse GL_DOUBLE_MAT4x2 }
2397   { reuse GL_DOUBLE_MAT4x3 }
2398   { Reuse tokens from ARB_shader_subroutine }
2399   { reuse GL_ACTIVE_SUBROUTINES }
2400   { reuse GL_ACTIVE_SUBROUTINE_UNIFORMS }
2401   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS }
2402   { reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH }
2403   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH }
2404   { reuse GL_MAX_SUBROUTINES }
2405   { reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS }
2406   { reuse GL_NUM_COMPATIBLE_SUBROUTINES }
2407   { reuse GL_COMPATIBLE_SUBROUTINES }
2408   { Reuse tokens from ARB_tessellation_shader }
2409   { reuse GL_PATCHES }
2410   { reuse GL_PATCH_VERTICES }
2411   { reuse GL_PATCH_DEFAULT_INNER_LEVEL }
2412   { reuse GL_PATCH_DEFAULT_OUTER_LEVEL }
2413   { reuse GL_TESS_CONTROL_OUTPUT_VERTICES }
2414   { reuse GL_TESS_GEN_MODE }
2415   { reuse GL_TESS_GEN_SPACING }
2416   { reuse GL_TESS_GEN_VERTEX_ORDER }
2417   { reuse GL_TESS_GEN_POINT_MODE }
2418   { reuse GL_ISOLINES }
2419   { reuse GL_FRACTIONAL_ODD }
2420   { reuse GL_FRACTIONAL_EVEN }
2421   { reuse GL_MAX_PATCH_VERTICES }
2422   { reuse GL_MAX_TESS_GEN_LEVEL }
2423   { reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS }
2424   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS }
2425   { reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS }
2426   { reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS }
2427   { reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS }
2428   { reuse GL_MAX_TESS_PATCH_COMPONENTS }
2429   { reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS }
2430   { reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS }
2431   { reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS }
2432   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS }
2433   { reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS }
2434   { reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS }
2435   { reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS }
2436   { reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS }
2437   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER }
2438   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER }
2439   { reuse GL_TESS_EVALUATION_SHADER }
2440   { reuse GL_TESS_CONTROL_SHADER }
2441   { Reuse tokens from ARB_texture_buffer_object_rgb32 (none) }
2442   { Reuse tokens from ARB_transform_feedback2 }
2443   { reuse GL_TRANSFORM_FEEDBACK }
2444   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED }
2445   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE }
2446   { reuse GL_TRANSFORM_FEEDBACK_BINDING }
2447   { Reuse tokens from ARB_transform_feedback3 }
2448   { reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS }
2449   { reuse GL_MAX_VERTEX_STREAMS }
2450
2451   // GL_VERSION_4_1
2452   { Reuse tokens from ARB_ES2_compatibility }
2453   { reuse GL_FIXED }
2454   { reuse GL_IMPLEMENTATION_COLOR_READ_TYPE }
2455   { reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT }
2456   { reuse GL_LOW_FLOAT }
2457   { reuse GL_MEDIUM_FLOAT }
2458   { reuse GL_HIGH_FLOAT }
2459   { reuse GL_LOW_INT }
2460   { reuse GL_MEDIUM_INT }
2461   { reuse GL_HIGH_INT }
2462   { reuse GL_SHADER_COMPILER }
2463   { reuse GL_NUM_SHADER_BINARY_FORMATS }
2464   { reuse GL_MAX_VERTEX_UNIFORM_VECTORS }
2465   { reuse GL_MAX_VARYING_VECTORS }
2466   { reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS }
2467   { reuse GL_RGB565 }
2468   { Reuse tokens from ARB_get_program_binary }
2469   { reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT }
2470   { reuse GL_PROGRAM_BINARY_LENGTH }
2471   { reuse GL_NUM_PROGRAM_BINARY_FORMATS }
2472   { reuse GL_PROGRAM_BINARY_FORMATS }
2473   { Reuse tokens from ARB_separate_shader_objects }
2474   { reuse GL_VERTEX_SHADER_BIT }
2475   { reuse GL_FRAGMENT_SHADER_BIT }
2476   { reuse GL_GEOMETRY_SHADER_BIT }
2477   { reuse GL_TESS_CONTROL_SHADER_BIT }
2478   { reuse GL_TESS_EVALUATION_SHADER_BIT }
2479   { reuse GL_ALL_SHADER_BITS }
2480   { reuse GL_PROGRAM_SEPARABLE }
2481   { reuse GL_ACTIVE_PROGRAM }
2482   { reuse GL_PROGRAM_PIPELINE_BINDING }
2483   { Reuse tokens from ARB_shader_precision (none) }
2484   { Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already }
2485   { Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already }
2486   { reuse GL_MAX_VIEWPORTS }
2487   { reuse GL_VIEWPORT_SUBPIXEL_BITS }
2488   { reuse GL_VIEWPORT_BOUNDS_RANGE }
2489   { reuse GL_LAYER_PROVOKING_VERTEX }
2490   { reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX }
2491   { reuse GL_UNDEFINED_VERTEX }
2492
2493   // GL_VERSION_4_2
2494   { Reuse tokens from ARB_base_instance (none) }
2495   { Reuse tokens from ARB_shading_language_420pack (none) }
2496   { Reuse tokens from ARB_transform_feedback_instanced (none) }
2497   { Reuse tokens from ARB_compressed_texture_pixel_storage }
2498   { reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH }
2499   { reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT }
2500   { reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH }
2501   { reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE }
2502   { reuse GL_PACK_COMPRESSED_BLOCK_WIDTH }
2503   { reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT }
2504   { reuse GL_PACK_COMPRESSED_BLOCK_DEPTH }
2505   { reuse GL_PACK_COMPRESSED_BLOCK_SIZE }
2506   { Reuse tokens from ARB_conservative_depth (none) }
2507   { Reuse tokens from ARB_internalformat_query }
2508   { reuse GL_NUM_SAMPLE_COUNTS }
2509   { Reuse tokens from ARB_map_buffer_alignment }
2510   { reuse GL_MIN_MAP_BUFFER_ALIGNMENT }
2511   { Reuse tokens from ARB_shader_atomic_counters }
2512   { reuse GL_ATOMIC_COUNTER_BUFFER }
2513   { reuse GL_ATOMIC_COUNTER_BUFFER_BINDING }
2514   { reuse GL_ATOMIC_COUNTER_BUFFER_START }
2515   { reuse GL_ATOMIC_COUNTER_BUFFER_SIZE }
2516   { reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE }
2517   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS }
2518   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES }
2519   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER }
2520   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER }
2521   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER }
2522   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER }
2523   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER }
2524   { reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS }
2525   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS }
2526   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS }
2527   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS }
2528   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS }
2529   { reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS }
2530   { reuse GL_MAX_VERTEX_ATOMIC_COUNTERS }
2531   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS }
2532   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS }
2533   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS }
2534   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS }
2535   { reuse GL_MAX_COMBINED_ATOMIC_COUNTERS }
2536   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE }
2537   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS }
2538   { reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS }
2539   { reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX }
2540   { reuse GL_UNSIGNED_INT_ATOMIC_COUNTER }
2541   { Reuse tokens from ARB_shader_image_load_store }
2542   { reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT }
2543   { reuse GL_ELEMENT_ARRAY_BARRIER_BIT }
2544   { reuse GL_UNIFORM_BARRIER_BIT }
2545   { reuse GL_TEXTURE_FETCH_BARRIER_BIT }
2546   { reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT }
2547   { reuse GL_COMMAND_BARRIER_BIT }
2548   { reuse GL_PIXEL_BUFFER_BARRIER_BIT }
2549   { reuse GL_TEXTURE_UPDATE_BARRIER_BIT }
2550   { reuse GL_BUFFER_UPDATE_BARRIER_BIT }
2551   { reuse GL_FRAMEBUFFER_BARRIER_BIT }
2552   { reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT }
2553   { reuse GL_ATOMIC_COUNTER_BARRIER_BIT }
2554   { reuse GL_ALL_BARRIER_BITS }
2555   { reuse GL_MAX_IMAGE_UNITS }
2556   { reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS }
2557   { reuse GL_IMAGE_BINDING_NAME }
2558   { reuse GL_IMAGE_BINDING_LEVEL }
2559   { reuse GL_IMAGE_BINDING_LAYERED }
2560   { reuse GL_IMAGE_BINDING_LAYER }
2561   { reuse GL_IMAGE_BINDING_ACCESS }
2562   { reuse GL_IMAGE_1D }
2563   { reuse GL_IMAGE_2D }
2564   { reuse GL_IMAGE_3D }
2565   { reuse GL_IMAGE_2D_RECT }
2566   { reuse GL_IMAGE_CUBE }
2567   { reuse GL_IMAGE_BUFFER }
2568   { reuse GL_IMAGE_1D_ARRAY }
2569   { reuse GL_IMAGE_2D_ARRAY }
2570   { reuse GL_IMAGE_CUBE_MAP_ARRAY }
2571   { reuse GL_IMAGE_2D_MULTISAMPLE }
2572   { reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY }
2573   { reuse GL_INT_IMAGE_1D }
2574   { reuse GL_INT_IMAGE_2D }
2575   { reuse GL_INT_IMAGE_3D }
2576   { reuse GL_INT_IMAGE_2D_RECT }
2577   { reuse GL_INT_IMAGE_CUBE }
2578   { reuse GL_INT_IMAGE_BUFFER }
2579   { reuse GL_INT_IMAGE_1D_ARRAY }
2580   { reuse GL_INT_IMAGE_2D_ARRAY }
2581   { reuse GL_INT_IMAGE_CUBE_MAP_ARRAY }
2582   { reuse GL_INT_IMAGE_2D_MULTISAMPLE }
2583   { reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2584   { reuse GL_UNSIGNED_INT_IMAGE_1D }
2585   { reuse GL_UNSIGNED_INT_IMAGE_2D }
2586   { reuse GL_UNSIGNED_INT_IMAGE_3D }
2587   { reuse GL_UNSIGNED_INT_IMAGE_2D_RECT }
2588   { reuse GL_UNSIGNED_INT_IMAGE_CUBE }
2589   { reuse GL_UNSIGNED_INT_IMAGE_BUFFER }
2590   { reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY }
2591   { reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY }
2592   { reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY }
2593   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE }
2594   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2595   { reuse GL_MAX_IMAGE_SAMPLES }
2596   { reuse GL_IMAGE_BINDING_FORMAT }
2597   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE }
2598   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE }
2599   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS }
2600   { reuse GL_MAX_VERTEX_IMAGE_UNIFORMS }
2601   { reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS }
2602   { reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS }
2603   { reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS }
2604   { reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS }
2605   { reuse GL_MAX_COMBINED_IMAGE_UNIFORMS }
2606   { Reuse tokens from ARB_shading_language_packing (none) }
2607   { Reuse tokens from ARB_texture_storage }
2608   { reuse GL_TEXTURE_IMMUTABLE_FORMAT }
2609
2610   // GL_VERSION_4_3
2611   GL_NUM_SHADING_LANGUAGE_VERSIONS  = $82E9;
2612   GL_VERTEX_ATTRIB_ARRAY_LONG = $874E;
2613   { Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) }
2614   { Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) }
2615   { Reuse tokens from ARB_shader_image_size (none, GLSL only) }
2616   { Reuse tokens from ARB_ES3_compatibility }
2617   { reuse GL_COMPRESSED_RGB8_ETC2 }
2618   { reuse GL_COMPRESSED_SRGB8_ETC2 }
2619   { reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2620   { reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2621   { reuse GL_COMPRESSED_RGBA8_ETC2_EAC }
2622   { reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC }
2623   { reuse GL_COMPRESSED_R11_EAC }
2624   { reuse GL_COMPRESSED_SIGNED_R11_EAC }
2625   { reuse GL_COMPRESSED_RG11_EAC }
2626   { reuse GL_COMPRESSED_SIGNED_RG11_EAC }
2627   { reuse GL_PRIMITIVE_RESTART_FIXED_INDEX }
2628   { reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE }
2629   { reuse GL_MAX_ELEMENT_INDEX }
2630   { Reuse tokens from ARB_clear_buffer_object (none) }
2631   { Reuse tokens from ARB_compute_shader }
2632   { reuse GL_COMPUTE_SHADER }
2633   { reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS }
2634   { reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS }
2635   { reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS }
2636   { reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE }
2637   { reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS }
2638   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS }
2639   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS }
2640   { reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS }
2641   { reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS }
2642   { reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT }
2643   { reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE }
2644   { reuse GL_COMPUTE_LOCAL_WORK_SIZE }
2645   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER }
2646   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER }
2647   { reuse GL_DISPATCH_INDIRECT_BUFFER }
2648   { reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING }
2649   { Reuse tokens from ARB_copy_image (none) }
2650   { Reuse tokens from KHR_debug }
2651   { reuse GL_DEBUG_OUTPUT_SYNCHRONOUS }
2652   { reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH }
2653   { reuse GL_DEBUG_CALLBACK_FUNCTION }
2654   { reuse GL_DEBUG_CALLBACK_USER_PARAM }
2655   { reuse GL_DEBUG_SOURCE_API }
2656   { reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM }
2657   { reuse GL_DEBUG_SOURCE_SHADER_COMPILER }
2658   { reuse GL_DEBUG_SOURCE_THIRD_PARTY }
2659   { reuse GL_DEBUG_SOURCE_APPLICATION }
2660   { reuse GL_DEBUG_SOURCE_OTHER }
2661   { reuse GL_DEBUG_TYPE_ERROR }
2662   { reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR }
2663   { reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR }
2664   { reuse GL_DEBUG_TYPE_PORTABILITY }
2665   { reuse GL_DEBUG_TYPE_PERFORMANCE }
2666   { reuse GL_DEBUG_TYPE_OTHER }
2667   { reuse GL_MAX_DEBUG_MESSAGE_LENGTH }
2668   { reuse GL_MAX_DEBUG_LOGGED_MESSAGES }
2669   { reuse GL_DEBUG_LOGGED_MESSAGES }
2670   { reuse GL_DEBUG_SEVERITY_HIGH }
2671   { reuse GL_DEBUG_SEVERITY_MEDIUM }
2672   { reuse GL_DEBUG_SEVERITY_LOW }
2673   { reuse GL_DEBUG_TYPE_MARKER }
2674   { reuse GL_DEBUG_TYPE_PUSH_GROUP }
2675   { reuse GL_DEBUG_TYPE_POP_GROUP }
2676   { reuse GL_DEBUG_SEVERITY_NOTIFICATION }
2677   { reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH }
2678   { reuse GL_DEBUG_GROUP_STACK_DEPTH }
2679   { reuse GL_BUFFER }
2680   { reuse GL_SHADER }
2681   { reuse GL_PROGRAM }
2682   { reuse GL_QUERY }
2683   { reuse GL_PROGRAM_PIPELINE }
2684   { reuse GL_SAMPLER }
2685   { reuse GL_DISPLAY_LIST }
2686   { reuse GL_MAX_LABEL_LENGTH }
2687   { reuse GL_DEBUG_OUTPUT }
2688   { reuse GL_CONTEXT_FLAG_DEBUG_BIT }
2689   { reuse GL_STACK_UNDERFLOW }
2690   { reuse GL_STACK_OVERFLOW }
2691   { Reuse tokens from ARB_explicit_uniform_location }
2692   { reuse GL_MAX_UNIFORM_LOCATIONS }
2693   { Reuse tokens from ARB_framebuffer_no_attachments }
2694   { reuse GL_FRAMEBUFFER_DEFAULT_WIDTH }
2695   { reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT }
2696   { reuse GL_FRAMEBUFFER_DEFAULT_LAYERS }
2697   { reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES }
2698   { reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS }
2699   { reuse GL_MAX_FRAMEBUFFER_WIDTH }
2700   { reuse GL_MAX_FRAMEBUFFER_HEIGHT }
2701   { reuse GL_MAX_FRAMEBUFFER_LAYERS }
2702   { reuse GL_MAX_FRAMEBUFFER_SAMPLES }
2703   { Reuse tokens from ARB_internalformat_query2 }
2704   { reuse GL_INTERNALFORMAT_SUPPORTED }
2705   { reuse GL_INTERNALFORMAT_PREFERRED }
2706   { reuse GL_INTERNALFORMAT_RED_SIZE }
2707   { reuse GL_INTERNALFORMAT_GREEN_SIZE }
2708   { reuse GL_INTERNALFORMAT_BLUE_SIZE }
2709   { reuse GL_INTERNALFORMAT_ALPHA_SIZE }
2710   { reuse GL_INTERNALFORMAT_DEPTH_SIZE }
2711   { reuse GL_INTERNALFORMAT_STENCIL_SIZE }
2712   { reuse GL_INTERNALFORMAT_SHARED_SIZE }
2713   { reuse GL_INTERNALFORMAT_RED_TYPE }
2714   { reuse GL_INTERNALFORMAT_GREEN_TYPE }
2715   { reuse GL_INTERNALFORMAT_BLUE_TYPE }
2716   { reuse GL_INTERNALFORMAT_ALPHA_TYPE }
2717   { reuse GL_INTERNALFORMAT_DEPTH_TYPE }
2718   { reuse GL_INTERNALFORMAT_STENCIL_TYPE }
2719   { reuse GL_MAX_WIDTH }
2720   { reuse GL_MAX_HEIGHT }
2721   { reuse GL_MAX_DEPTH }
2722   { reuse GL_MAX_LAYERS }
2723   { reuse GL_MAX_COMBINED_DIMENSIONS }
2724   { reuse GL_COLOR_COMPONENTS }
2725   { reuse GL_DEPTH_COMPONENTS }
2726   { reuse GL_STENCIL_COMPONENTS }
2727   { reuse GL_COLOR_RENDERABLE }
2728   { reuse GL_DEPTH_RENDERABLE }
2729   { reuse GL_STENCIL_RENDERABLE }
2730   { reuse GL_FRAMEBUFFER_RENDERABLE }
2731   { reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED }
2732   { reuse GL_FRAMEBUFFER_BLEND }
2733   { reuse GL_READ_PIXELS }
2734   { reuse GL_READ_PIXELS_FORMAT }
2735   { reuse GL_READ_PIXELS_TYPE }
2736   { reuse GL_TEXTURE_IMAGE_FORMAT }
2737   { reuse GL_TEXTURE_IMAGE_TYPE }
2738   { reuse GL_GET_TEXTURE_IMAGE_FORMAT }
2739   { reuse GL_GET_TEXTURE_IMAGE_TYPE }
2740   { reuse GL_MIPMAP }
2741   { reuse GL_MANUAL_GENERATE_MIPMAP }
2742   { reuse GL_AUTO_GENERATE_MIPMAP }
2743   { reuse GL_COLOR_ENCODING }
2744   { reuse GL_SRGB_READ }
2745   { reuse GL_SRGB_WRITE }
2746   { reuse GL_FILTER }
2747   { reuse GL_VERTEX_TEXTURE }
2748   { reuse GL_TESS_CONTROL_TEXTURE }
2749   { reuse GL_TESS_EVALUATION_TEXTURE }
2750   { reuse GL_GEOMETRY_TEXTURE }
2751   { reuse GL_FRAGMENT_TEXTURE }
2752   { reuse GL_COMPUTE_TEXTURE }
2753   { reuse GL_TEXTURE_SHADOW }
2754   { reuse GL_TEXTURE_GATHER }
2755   { reuse GL_TEXTURE_GATHER_SHADOW }
2756   { reuse GL_SHADER_IMAGE_LOAD }
2757   { reuse GL_SHADER_IMAGE_STORE }
2758   { reuse GL_SHADER_IMAGE_ATOMIC }
2759   { reuse GL_IMAGE_TEXEL_SIZE }
2760   { reuse GL_IMAGE_COMPATIBILITY_CLASS }
2761   { reuse GL_IMAGE_PIXEL_FORMAT }
2762   { reuse GL_IMAGE_PIXEL_TYPE }
2763   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST }
2764   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST }
2765   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE }
2766   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE }
2767   { reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH }
2768   { reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT }
2769   { reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE }
2770   { reuse GL_CLEAR_BUFFER }
2771   { reuse GL_TEXTURE_VIEW }
2772   { reuse GL_VIEW_COMPATIBILITY_CLASS }
2773   { reuse GL_FULL_SUPPORT }
2774   { reuse GL_CAVEAT_SUPPORT }
2775   { reuse GL_IMAGE_CLASS_4_X_32 }
2776   { reuse GL_IMAGE_CLASS_2_X_32 }
2777   { reuse GL_IMAGE_CLASS_1_X_32 }
2778   { reuse GL_IMAGE_CLASS_4_X_16 }
2779   { reuse GL_IMAGE_CLASS_2_X_16 }
2780   { reuse GL_IMAGE_CLASS_1_X_16 }
2781   { reuse GL_IMAGE_CLASS_4_X_8 }
2782   { reuse GL_IMAGE_CLASS_2_X_8 }
2783   { reuse GL_IMAGE_CLASS_1_X_8 }
2784   { reuse GL_IMAGE_CLASS_11_11_10 }
2785   { reuse GL_IMAGE_CLASS_10_10_10_2 }
2786   { reuse GL_VIEW_CLASS_128_BITS }
2787   { reuse GL_VIEW_CLASS_96_BITS }
2788   { reuse GL_VIEW_CLASS_64_BITS }
2789   { reuse GL_VIEW_CLASS_48_BITS }
2790   { reuse GL_VIEW_CLASS_32_BITS }
2791   { reuse GL_VIEW_CLASS_24_BITS }
2792   { reuse GL_VIEW_CLASS_16_BITS }
2793   { reuse GL_VIEW_CLASS_8_BITS }
2794   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGB }
2795   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA }
2796   { reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA }
2797   { reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA }
2798   { reuse GL_VIEW_CLASS_RGTC1_RED }
2799   { reuse GL_VIEW_CLASS_RGTC2_RG }
2800   { reuse GL_VIEW_CLASS_BPTC_UNORM }
2801   { reuse GL_VIEW_CLASS_BPTC_FLOAT }
2802   { Reuse tokens from ARB_invalidate_subdata (none) }
2803   { Reuse tokens from ARB_multi_draw_indirect (none) }
2804   { Reuse tokens from ARB_program_interface_query }
2805   { reuse GL_UNIFORM }
2806   { reuse GL_UNIFORM_BLOCK }
2807   { reuse GL_PROGRAM_INPUT }
2808   { reuse GL_PROGRAM_OUTPUT }
2809   { reuse GL_BUFFER_VARIABLE }
2810   { reuse GL_SHADER_STORAGE_BLOCK }
2811   { reuse GL_VERTEX_SUBROUTINE }
2812   { reuse GL_TESS_CONTROL_SUBROUTINE }
2813   { reuse GL_TESS_EVALUATION_SUBROUTINE }
2814   { reuse GL_GEOMETRY_SUBROUTINE }
2815   { reuse GL_FRAGMENT_SUBROUTINE }
2816   { reuse GL_COMPUTE_SUBROUTINE }
2817   { reuse GL_VERTEX_SUBROUTINE_UNIFORM }
2818   { reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM }
2819   { reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM }
2820   { reuse GL_GEOMETRY_SUBROUTINE_UNIFORM }
2821   { reuse GL_FRAGMENT_SUBROUTINE_UNIFORM }
2822   { reuse GL_COMPUTE_SUBROUTINE_UNIFORM }
2823   { reuse GL_TRANSFORM_FEEDBACK_VARYING }
2824   { reuse GL_ACTIVE_RESOURCES }
2825   { reuse GL_MAX_NAME_LENGTH }
2826   { reuse GL_MAX_NUM_ACTIVE_VARIABLES }
2827   { reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES }
2828   { reuse GL_NAME_LENGTH }
2829   { reuse GL_TYPE }
2830   { reuse GL_ARRAY_SIZE }
2831   { reuse GL_OFFSET }
2832   { reuse GL_BLOCK_INDEX }
2833   { reuse GL_ARRAY_STRIDE }
2834   { reuse GL_MATRIX_STRIDE }
2835   { reuse GL_IS_ROW_MAJOR }
2836   { reuse GL_ATOMIC_COUNTER_BUFFER_INDEX }
2837   { reuse GL_BUFFER_BINDING }
2838   { reuse GL_BUFFER_DATA_SIZE }
2839   { reuse GL_NUM_ACTIVE_VARIABLES }
2840   { reuse GL_ACTIVE_VARIABLES }
2841   { reuse GL_REFERENCED_BY_VERTEX_SHADER }
2842   { reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER }
2843   { reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER }
2844   { reuse GL_REFERENCED_BY_GEOMETRY_SHADER }
2845   { reuse GL_REFERENCED_BY_FRAGMENT_SHADER }
2846   { reuse GL_REFERENCED_BY_COMPUTE_SHADER }
2847   { reuse GL_TOP_LEVEL_ARRAY_SIZE }
2848   { reuse GL_TOP_LEVEL_ARRAY_STRIDE }
2849   { reuse GL_LOCATION }
2850   { reuse GL_LOCATION_INDEX }
2851   { reuse GL_IS_PER_PATCH }
2852   { Reuse tokens from ARB_robust_buffer_access_behavior (none) }
2853   { Reuse tokens from ARB_shader_storage_buffer_object }
2854   { reuse GL_SHADER_STORAGE_BUFFER }
2855   { reuse GL_SHADER_STORAGE_BUFFER_BINDING }
2856   { reuse GL_SHADER_STORAGE_BUFFER_START }
2857   { reuse GL_SHADER_STORAGE_BUFFER_SIZE }
2858   { reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS }
2859   { reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS }
2860   { reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS }
2861   { reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS }
2862   { reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS }
2863   { reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS }
2864   { reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS }
2865   { reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS }
2866   { reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE }
2867   { reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT }
2868   { reuse GL_SHADER_STORAGE_BARRIER_BIT }
2869   { reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES }
2870   { Reuse tokens from ARB_stencil_texturing }
2871   { reuse GL_DEPTH_STENCIL_TEXTURE_MODE }
2872   { Reuse tokens from ARB_texture_buffer_range }
2873   { reuse GL_TEXTURE_BUFFER_OFFSET }
2874   { reuse GL_TEXTURE_BUFFER_SIZE }
2875   { reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT }
2876   { Reuse tokens from ARB_texture_query_levels (none) }
2877   { Reuse tokens from ARB_texture_storage_multisample (none) }
2878   { Reuse tokens from ARB_texture_view }
2879   { reuse GL_TEXTURE_VIEW_MIN_LEVEL }
2880   { reuse GL_TEXTURE_VIEW_NUM_LEVELS }
2881   { reuse GL_TEXTURE_VIEW_MIN_LAYER }
2882   { reuse GL_TEXTURE_VIEW_NUM_LAYERS }
2883   { reuse GL_TEXTURE_IMMUTABLE_LEVELS }
2884   { Reuse tokens from ARB_vertex_attrib_binding }
2885   { reuse GL_VERTEX_ATTRIB_BINDING }
2886   { reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET }
2887   { reuse GL_VERTEX_BINDING_DIVISOR }
2888   { reuse GL_VERTEX_BINDING_OFFSET }
2889   { reuse GL_VERTEX_BINDING_STRIDE }
2890   { reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET }
2891   { reuse GL_MAX_VERTEX_ATTRIB_BINDINGS }
2892
2893
2894   // GL_3DFX_multisample
2895   GL_MULTISAMPLE_3DFX = $86B2;
2896   GL_SAMPLE_BUFFERS_3DFX = $86B3;
2897   GL_SAMPLES_3DFX = $86B4;
2898   GL_MULTISAMPLE_BIT_3DFX = $20000000;
2899
2900   // GL_3DFX_texture_compression_FXT1
2901   GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
2902   GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
2903
2904   // GL_APPLE_client_storage
2905   GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
2906
2907   // GL_APPLE_element_array
2908   GL_ELEMENT_ARRAY_APPLE = $8A0C;
2909   GL_ELEMENT_ARRAY_TYPE_APPLE = $8A0D;
2910   GL_ELEMENT_ARRAY_POINTER_APPLE = $8A0E;
2911
2912   // GL_APPLE_fence
2913   GL_DRAW_PIXELS_APPLE = $8A0A;
2914   GL_FENCE_APPLE = $8A0B;
2915
2916   // GL_APPLE_specular_vector
2917   GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
2918
2919   // GL_APPLE_transform_hint
2920   GL_TRANSFORM_HINT_APPLE = $85B1;
2921
2922   // GL_APPLE_vertex_array_object
2923   GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
2924
2925   // GL_APPLE_vertex_array_range
2926   GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
2927   GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
2928   GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
2929   GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
2930   GL_STORAGE_CLIENT_APPLE = $85B4;
2931   GL_STORAGE_CACHED_APPLE = $85BE;
2932   GL_STORAGE_SHARED_APPLE = $85BF;
2933
2934   // GL_APPLE_ycbcr_422
2935   GL_YCBCR_422_APPLE = $85B9;
2936   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
2937   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
2938   GL_RGB_RAW_422_APPLE = $8A51;
2939
2940   // GL_APPLE_texture_range
2941   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
2942   GL_TEXTURE_RANGE_POINTER_APPLE = $85B8;
2943   GL_TEXTURE_STORAGE_HINT_APPLE = $85BC;
2944   GL_STORAGE_PRIVATE_APPLE = $85BD;
2945   { reuse GL_STORAGE_CACHED_APPLE }
2946   { reuse GL_STORAGE_SHARED_APPLE }
2947
2948   // GL_APPLE_float_pixels
2949   GL_HALF_APPLE = $140B;
2950   GL_RGBA_FLOAT32_APPLE = $8814;
2951   GL_RGB_FLOAT32_APPLE = $8815;
2952   GL_ALPHA_FLOAT32_APPLE = $8816;
2953   GL_INTENSITY_FLOAT32_APPLE = $8817;
2954   GL_LUMINANCE_FLOAT32_APPLE = $8818;
2955   GL_LUMINANCE_ALPHA_FLOAT32_APPLE = $8819;
2956   GL_RGBA_FLOAT16_APPLE = $881A;
2957   GL_RGB_FLOAT16_APPLE = $881B;
2958   GL_ALPHA_FLOAT16_APPLE = $881C;
2959   GL_INTENSITY_FLOAT16_APPLE = $881D;
2960   GL_LUMINANCE_FLOAT16_APPLE = $881E;
2961   GL_LUMINANCE_ALPHA_FLOAT16_APPLE = $881F;
2962   GL_COLOR_FLOAT_APPLE = $8A0F;
2963
2964   // GL_APPLE_vertex_program_evaluators
2965   GL_VERTEX_ATTRIB_MAP1_APPLE = $8A00;
2966   GL_VERTEX_ATTRIB_MAP2_APPLE = $8A01;
2967   GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = $8A02;
2968   GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = $8A03;
2969   GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = $8A04;
2970   GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = $8A05;
2971   GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = $8A06;
2972   GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = $8A07;
2973   GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = $8A08;
2974   GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = $8A09;
2975
2976   // GL_APPLE_aux_depth_stencil
2977   GL_AUX_DEPTH_STENCIL_APPLE = $8A14;
2978
2979   // GL_APPLE_object_purgeable
2980   GL_BUFFER_OBJECT_APPLE = $85B3;
2981   GL_RELEASED_APPLE = $8A19;
2982   GL_VOLATILE_APPLE = $8A1A;
2983   GL_RETAINED_APPLE = $8A1B;
2984   GL_UNDEFINED_APPLE = $8A1C;
2985   GL_PURGEABLE_APPLE = $8A1D;
2986
2987   // GL_APPLE_row_bytes
2988   GL_PACK_ROW_BYTES_APPLE = $8A15;
2989   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
2990
2991   // GL_APPLE_rgb_422
2992   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
2993   { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }
2994
2995   // GL_ARB_depth_texture
2996   GL_DEPTH_COMPONENT16_ARB = $81A5;
2997   GL_DEPTH_COMPONENT24_ARB = $81A6;
2998   GL_DEPTH_COMPONENT32_ARB = $81A7;
2999   GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
3000   GL_DEPTH_TEXTURE_MODE_ARB = $884B;
3001
3002   // GL_ARB_fragment_program
3003   GL_FRAGMENT_PROGRAM_ARB = $8804;
3004   GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
3005   GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
3006   GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
3007   GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
3008   GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
3009   GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
3010   GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
3011   GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
3012   GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
3013   GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
3014   GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
3015   GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
3016   GL_MAX_TEXTURE_COORDS_ARB = $8871;
3017   GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
3018
3019   // GL_ARB_imaging
3020   GL_CONSTANT_COLOR_ARB = $8001;
3021   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3022   GL_CONSTANT_ALPHA = $8003;
3023   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3024   GL_BLEND_COLOR = $8005;
3025   GL_FUNC_ADD = $8006;
3026   GL_MIN = $8007;
3027   GL_MAX = $8008;
3028   GL_BLEND_EQUATION = $8009;
3029   GL_FUNC_SUBTRACT = $800A;
3030   GL_FUNC_REVERSE_SUBTRACT = $800B;
3031 {$ifdef DGL_DEPRECATED}
3032   GL_CONVOLUTION_1D = $8010;
3033   GL_CONVOLUTION_2D = $8011;
3034   GL_SEPARABLE_2D = $8012;
3035   GL_CONVOLUTION_BORDER_MODE = $8013;
3036   GL_CONVOLUTION_FILTER_SCALE = $8014;
3037   GL_CONVOLUTION_FILTER_BIAS = $8015;
3038   GL_REDUCE = $8016;
3039   GL_CONVOLUTION_FORMAT = $8017;
3040   GL_CONVOLUTION_WIDTH = $8018;
3041   GL_CONVOLUTION_HEIGHT = $8019;
3042   GL_MAX_CONVOLUTION_WIDTH = $801A;
3043   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3044   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3045   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3046   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3047   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3048   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3049   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3050   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3051   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3052   GL_HISTOGRAM = $8024;
3053   GL_PROXY_HISTOGRAM = $8025;
3054   GL_HISTOGRAM_WIDTH = $8026;
3055   GL_HISTOGRAM_FORMAT = $8027;
3056   GL_HISTOGRAM_RED_SIZE = $8028;
3057   GL_HISTOGRAM_GREEN_SIZE = $8029;
3058   GL_HISTOGRAM_BLUE_SIZE = $802A;
3059   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3060   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3061   GL_HISTOGRAM_SINK = $802D;
3062   GL_MINMAX = $802E;
3063   GL_MINMAX_FORMAT = $802F;
3064   GL_MINMAX_SINK = $8030;
3065   GL_TABLE_TOO_LARGE = $8031;
3066   GL_COLOR_MATRIX = $80B1;
3067   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3068   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3069   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3070   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3071   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3072   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3073   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3074   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3075   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3076   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3077   GL_COLOR_TABLE = $80D0;
3078   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3079   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3080   GL_PROXY_COLOR_TABLE = $80D3;
3081   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3082   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3083   GL_COLOR_TABLE_SCALE = $80D6;
3084   GL_COLOR_TABLE_BIAS = $80D7;
3085   GL_COLOR_TABLE_FORMAT = $80D8;
3086   GL_COLOR_TABLE_WIDTH = $80D9;
3087   GL_COLOR_TABLE_RED_SIZE = $80DA;
3088   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3089   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3090   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3091   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3092   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3093   GL_CONSTANT_BORDER = $8151;
3094   GL_REPLICATE_BORDER = $8153;
3095   GL_CONVOLUTION_BORDER_COLOR = $8154;
3096 {$endif}
3097
3098   // GL_ARB_matrix_palette
3099   GL_MATRIX_PALETTE_ARB = $8840;
3100   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3101   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3102   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3103   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3104   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3105   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3106   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3107   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3108   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3109
3110   // GL_ARB_multisample
3111   GL_MULTISAMPLE_ARB = $809D;
3112   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3113   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3114   GL_SAMPLE_COVERAGE_ARB = $80A0;
3115   GL_SAMPLE_BUFFERS_ARB = $80A8;
3116   GL_SAMPLES_ARB = $80A9;
3117   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3118   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3119   GL_MULTISAMPLE_BIT_ARB = $20000000;
3120
3121   // GL_ARB_multitexture
3122   GL_TEXTURE0_ARB = $84C0;
3123   GL_TEXTURE1_ARB = $84C1;
3124   GL_TEXTURE2_ARB = $84C2;
3125   GL_TEXTURE3_ARB = $84C3;
3126   GL_TEXTURE4_ARB = $84C4;
3127   GL_TEXTURE5_ARB = $84C5;
3128   GL_TEXTURE6_ARB = $84C6;
3129   GL_TEXTURE7_ARB = $84C7;
3130   GL_TEXTURE8_ARB = $84C8;
3131   GL_TEXTURE9_ARB = $84C9;
3132   GL_TEXTURE10_ARB = $84CA;
3133   GL_TEXTURE11_ARB = $84CB;
3134   GL_TEXTURE12_ARB = $84CC;
3135   GL_TEXTURE13_ARB = $84CD;
3136   GL_TEXTURE14_ARB = $84CE;
3137   GL_TEXTURE15_ARB = $84CF;
3138   GL_TEXTURE16_ARB = $84D0;
3139   GL_TEXTURE17_ARB = $84D1;
3140   GL_TEXTURE18_ARB = $84D2;
3141   GL_TEXTURE19_ARB = $84D3;
3142   GL_TEXTURE20_ARB = $84D4;
3143   GL_TEXTURE21_ARB = $84D5;
3144   GL_TEXTURE22_ARB = $84D6;
3145   GL_TEXTURE23_ARB = $84D7;
3146   GL_TEXTURE24_ARB = $84D8;
3147   GL_TEXTURE25_ARB = $84D9;
3148   GL_TEXTURE26_ARB = $84DA;
3149   GL_TEXTURE27_ARB = $84DB;
3150   GL_TEXTURE28_ARB = $84DC;
3151   GL_TEXTURE29_ARB = $84DD;
3152   GL_TEXTURE30_ARB = $84DE;
3153   GL_TEXTURE31_ARB = $84DF;
3154   GL_ACTIVE_TEXTURE_ARB = $84E0;
3155   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3156   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3157
3158   // GL_ARB_point_parameters
3159   GL_POINT_SIZE_MIN_ARB = $8126;
3160   GL_POINT_SIZE_MAX_ARB = $8127;
3161   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3162   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3163
3164   // GL_ARB_shadow
3165   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3166   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3167   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3168
3169   // GL_ARB_shadow_ambient
3170   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3171
3172   // GL_ARB_sparse_buffer
3173   GL_SPARSE_STORAGE_BIT_ARB = $0400;
3174   GL_SPARSE_BUFFER_PAGE_SIZE_ARB = $82F8;
3175
3176   // GL_ARB_texture_border_clamp
3177   GL_CLAMP_TO_BORDER_ARB = $812D;
3178
3179   // GL_ARB_texture_compression
3180   GL_COMPRESSED_ALPHA_ARB = $84E9;
3181   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3182   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3183   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3184   GL_COMPRESSED_RGB_ARB = $84ED;
3185   GL_COMPRESSED_RGBA_ARB = $84EE;
3186   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3187   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3188   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3189   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3190   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3191
3192   // GL_ARB_texture_cube_map
3193   GL_NORMAL_MAP_ARB = $8511;
3194   GL_REFLECTION_MAP_ARB = $8512;
3195   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3196   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3197   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3198   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3199   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3200   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3201   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3202   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3203   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3204   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3205
3206   // GL_ARB_texture_env_combine
3207   GL_COMBINE_ARB = $8570;
3208   GL_COMBINE_RGB_ARB = $8571;
3209   GL_COMBINE_ALPHA_ARB = $8572;
3210   GL_SOURCE0_RGB_ARB = $8580;
3211   GL_SOURCE1_RGB_ARB = $8581;
3212   GL_SOURCE2_RGB_ARB = $8582;
3213   GL_SOURCE0_ALPHA_ARB = $8588;
3214   GL_SOURCE1_ALPHA_ARB = $8589;
3215   GL_SOURCE2_ALPHA_ARB = $858A;
3216   GL_OPERAND0_RGB_ARB = $8590;
3217   GL_OPERAND1_RGB_ARB = $8591;
3218   GL_OPERAND2_RGB_ARB = $8592;
3219   GL_OPERAND0_ALPHA_ARB = $8598;
3220   GL_OPERAND1_ALPHA_ARB = $8599;
3221   GL_OPERAND2_ALPHA_ARB = $859A;
3222   GL_RGB_SCALE_ARB = $8573;
3223   GL_ADD_SIGNED_ARB = $8574;
3224   GL_INTERPOLATE_ARB = $8575;
3225   GL_SUBTRACT_ARB = $84E7;
3226   GL_CONSTANT_ARB = $8576;
3227   GL_PRIMARY_COLOR_ARB = $8577;
3228   GL_PREVIOUS_ARB = $8578;
3229
3230   // GL_ARB_texture_env_dot3
3231   GL_DOT3_RGB_ARB = $86AE;
3232   GL_DOT3_RGBA_ARB = $86AF;
3233
3234   // GL_ARB_texture_mirrored_repeat
3235   GL_MIRRORED_REPEAT_ARB = $8370;
3236
3237   // GL_ARB_transpose_matrix
3238   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3239   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3240   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3241   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3242
3243   // GL_ARB_vertex_blend
3244   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3245   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3246   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3247   GL_VERTEX_BLEND_ARB = $86A7;
3248   GL_CURRENT_WEIGHT_ARB = $86A8;
3249   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3250   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3251   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3252   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3253   GL_WEIGHT_ARRAY_ARB = $86AD;
3254   GL_MODELVIEW0_ARB = $1700;
3255   GL_MODELVIEW1_ARB = $850A;
3256   GL_MODELVIEW2_ARB = $8722;
3257   GL_MODELVIEW3_ARB = $8723;
3258   GL_MODELVIEW4_ARB = $8724;
3259   GL_MODELVIEW5_ARB = $8725;
3260   GL_MODELVIEW6_ARB = $8726;
3261   GL_MODELVIEW7_ARB = $8727;
3262   GL_MODELVIEW8_ARB = $8728;
3263   GL_MODELVIEW9_ARB = $8729;
3264   GL_MODELVIEW10_ARB = $872A;
3265   GL_MODELVIEW11_ARB = $872B;
3266   GL_MODELVIEW12_ARB = $872C;
3267   GL_MODELVIEW13_ARB = $872D;
3268   GL_MODELVIEW14_ARB = $872E;
3269   GL_MODELVIEW15_ARB = $872F;
3270   GL_MODELVIEW16_ARB = $8730;
3271   GL_MODELVIEW17_ARB = $8731;
3272   GL_MODELVIEW18_ARB = $8732;
3273   GL_MODELVIEW19_ARB = $8733;
3274   GL_MODELVIEW20_ARB = $8734;
3275   GL_MODELVIEW21_ARB = $8735;
3276   GL_MODELVIEW22_ARB = $8736;
3277   GL_MODELVIEW23_ARB = $8737;
3278   GL_MODELVIEW24_ARB = $8738;
3279   GL_MODELVIEW25_ARB = $8739;
3280   GL_MODELVIEW26_ARB = $873A;
3281   GL_MODELVIEW27_ARB = $873B;
3282   GL_MODELVIEW28_ARB = $873C;
3283   GL_MODELVIEW29_ARB = $873D;
3284   GL_MODELVIEW30_ARB = $873E;
3285   GL_MODELVIEW31_ARB = $873F;
3286
3287   // GL_ARB_vertex_buffer_object
3288   GL_BUFFER_SIZE_ARB = $8764;
3289   GL_BUFFER_USAGE_ARB = $8765;
3290   GL_ARRAY_BUFFER_ARB = $8892;
3291   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3292   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3293   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3294   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3295   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3296   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3297   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3298   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3299   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3300   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3301   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3302   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3303   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3304   GL_READ_ONLY_ARB = $88B8;
3305   GL_WRITE_ONLY_ARB = $88B9;
3306   GL_READ_WRITE_ARB = $88BA;
3307   GL_BUFFER_ACCESS_ARB = $88BB;
3308   GL_BUFFER_MAPPED_ARB = $88BC;
3309   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3310   GL_STREAM_DRAW_ARB = $88E0;
3311   GL_STREAM_READ_ARB = $88E1;
3312   GL_STREAM_COPY_ARB = $88E2;
3313   GL_STATIC_DRAW_ARB = $88E4;
3314   GL_STATIC_READ_ARB = $88E5;
3315   GL_STATIC_COPY_ARB = $88E6;
3316   GL_DYNAMIC_DRAW_ARB = $88E8;
3317   GL_DYNAMIC_READ_ARB = $88E9;
3318   GL_DYNAMIC_COPY_ARB = $88EA;
3319
3320   // GL_ARB_vertex_program
3321   GL_COLOR_SUM_ARB = $8458;
3322   GL_VERTEX_PROGRAM_ARB = $8620;
3323   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3324   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3325   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3326   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3327   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3328   GL_PROGRAM_LENGTH_ARB = $8627;
3329   GL_PROGRAM_STRING_ARB = $8628;
3330   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3331   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3332   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3333   GL_CURRENT_MATRIX_ARB = $8641;
3334   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3335   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3336   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3337   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3338   GL_PROGRAM_BINDING_ARB = $8677;
3339   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3340   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3341   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3342   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3343   GL_PROGRAM_FORMAT_ARB = $8876;
3344   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3345   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3346   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3347   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3348   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3349   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3350   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3351   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3352   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3353   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3354   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3355   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3356   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3357   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3358   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3359   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3360   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3361   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3362   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3363   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3364   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3365   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3366   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3367   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3368   GL_MATRIX0_ARB = $88C0;
3369   GL_MATRIX1_ARB = $88C1;
3370   GL_MATRIX2_ARB = $88C2;
3371   GL_MATRIX3_ARB = $88C3;
3372   GL_MATRIX4_ARB = $88C4;
3373   GL_MATRIX5_ARB = $88C5;
3374   GL_MATRIX6_ARB = $88C6;
3375   GL_MATRIX7_ARB = $88C7;
3376   GL_MATRIX8_ARB = $88C8;
3377   GL_MATRIX9_ARB = $88C9;
3378   GL_MATRIX10_ARB = $88CA;
3379   GL_MATRIX11_ARB = $88CB;
3380   GL_MATRIX12_ARB = $88CC;
3381   GL_MATRIX13_ARB = $88CD;
3382   GL_MATRIX14_ARB = $88CE;
3383   GL_MATRIX15_ARB = $88CF;
3384   GL_MATRIX16_ARB = $88D0;
3385   GL_MATRIX17_ARB = $88D1;
3386   GL_MATRIX18_ARB = $88D2;
3387   GL_MATRIX19_ARB = $88D3;
3388   GL_MATRIX20_ARB = $88D4;
3389   GL_MATRIX21_ARB = $88D5;
3390   GL_MATRIX22_ARB = $88D6;
3391   GL_MATRIX23_ARB = $88D7;
3392   GL_MATRIX24_ARB = $88D8;
3393   GL_MATRIX25_ARB = $88D9;
3394   GL_MATRIX26_ARB = $88DA;
3395   GL_MATRIX27_ARB = $88DB;
3396   GL_MATRIX28_ARB = $88DC;
3397   GL_MATRIX29_ARB = $88DD;
3398   GL_MATRIX30_ARB = $88DE;
3399   GL_MATRIX31_ARB = $88DF;
3400
3401   // GL_ARB_draw_buffers
3402   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3403   GL_DRAW_BUFFER0_ARB = $8825;
3404   GL_DRAW_BUFFER1_ARB = $8826;
3405   GL_DRAW_BUFFER2_ARB = $8827;
3406   GL_DRAW_BUFFER3_ARB = $8828;
3407   GL_DRAW_BUFFER4_ARB = $8829;
3408   GL_DRAW_BUFFER5_ARB = $882A;
3409   GL_DRAW_BUFFER6_ARB = $882B;
3410   GL_DRAW_BUFFER7_ARB = $882C;
3411   GL_DRAW_BUFFER8_ARB = $882D;
3412   GL_DRAW_BUFFER9_ARB = $882E;
3413   GL_DRAW_BUFFER10_ARB = $882F;
3414   GL_DRAW_BUFFER11_ARB = $8830;
3415   GL_DRAW_BUFFER12_ARB = $8831;
3416   GL_DRAW_BUFFER13_ARB = $8832;
3417   GL_DRAW_BUFFER14_ARB = $8833;
3418   GL_DRAW_BUFFER15_ARB = $8834;
3419
3420   // GL_ARB_texture_rectangle
3421   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3422   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3423   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3424   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3425
3426   // GL_ARB_color_buffer_float
3427   GL_RGBA_FLOAT_MODE_ARB = $8820;
3428   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3429   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3430   GL_CLAMP_READ_COLOR_ARB = $891C;
3431   GL_FIXED_ONLY_ARB = $891D;
3432   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3433   GLX_RGBA_FLOAT_TYPE = $20B9;
3434   GLX_RGBA_FLOAT_BIT = $00000004;
3435
3436   // GL_ARB_compute_variable_group_size
3437   GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = $9344;
3438   GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = $90EB;
3439   GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = $9345;
3440   GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = $91BF;
3441
3442   // GL_ARB_half_float_pixel
3443   GL_HALF_FLOAT_ARB = $140B;
3444
3445   // GL_ARB_texture_float
3446   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3447   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3448   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3449   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3450   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3451   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3452   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3453   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3454   GL_RGBA32F_ARB = $8814;
3455   GL_RGB32F_ARB = $8815;
3456   GL_ALPHA32F_ARB = $8816;
3457   GL_INTENSITY32F_ARB = $8817;
3458   GL_LUMINANCE32F_ARB = $8818;
3459   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3460   GL_RGBA16F_ARB = $881A;
3461   GL_RGB16F_ARB = $881B;
3462   GL_ALPHA16F_ARB = $881C;
3463   GL_INTENSITY16F_ARB = $881D;
3464   GL_LUMINANCE16F_ARB = $881E;
3465   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3466
3467   // GL_ARB_pixel_buffer_object
3468   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3469   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3470   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3471   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3472
3473   // GL_ARB_depth_buffer_float
3474   GL_DEPTH_COMPONENT32F = $8CAC;
3475   GL_DEPTH32F_STENCIL8 = $8CAD;
3476   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3477
3478   // GL_ARB_framebuffer_object
3479   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3480   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3481   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3482   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3483   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3484   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3485   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3486   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3487   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3488   GL_FRAMEBUFFER_DEFAULT = $8218;
3489   GL_FRAMEBUFFER_UNDEFINED = $8219;
3490   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3491   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3492   GL_DEPTH_STENCIL = $84F9;
3493   GL_UNSIGNED_INT_24_8 = $84FA;
3494   GL_DEPTH24_STENCIL8 = $88F0;
3495   GL_TEXTURE_STENCIL_SIZE = $88F1;
3496   GL_TEXTURE_RED_TYPE = $8C10;
3497   GL_TEXTURE_GREEN_TYPE = $8C11;
3498   GL_TEXTURE_BLUE_TYPE = $8C12;
3499   GL_TEXTURE_ALPHA_TYPE = $8C13;
3500   GL_TEXTURE_DEPTH_TYPE = $8C16;
3501   GL_UNSIGNED_NORMALIZED = $8C17;
3502   GL_FRAMEBUFFER_BINDING = $8CA6;
3503   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3504   GL_RENDERBUFFER_BINDING = $8CA7;
3505   GL_READ_FRAMEBUFFER = $8CA8;
3506   GL_DRAW_FRAMEBUFFER = $8CA9;
3507   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3508   GL_RENDERBUFFER_SAMPLES = $8CAB;
3509   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3510   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3511   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3512   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3513   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3514   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3515   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3516   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3517   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3518   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3519   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3520   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3521   GL_COLOR_ATTACHMENT0 = $8CE0;
3522   GL_COLOR_ATTACHMENT1 = $8CE1;
3523   GL_COLOR_ATTACHMENT2 = $8CE2;
3524   GL_COLOR_ATTACHMENT3 = $8CE3;
3525   GL_COLOR_ATTACHMENT4 = $8CE4;
3526   GL_COLOR_ATTACHMENT5 = $8CE5;
3527   GL_COLOR_ATTACHMENT6 = $8CE6;
3528   GL_COLOR_ATTACHMENT7 = $8CE7;
3529   GL_COLOR_ATTACHMENT8 = $8CE8;
3530   GL_COLOR_ATTACHMENT9 = $8CE9;
3531   GL_COLOR_ATTACHMENT10 = $8CEA;
3532   GL_COLOR_ATTACHMENT11 = $8CEB;
3533   GL_COLOR_ATTACHMENT12 = $8CEC;
3534   GL_COLOR_ATTACHMENT13 = $8CED;
3535   GL_COLOR_ATTACHMENT14 = $8CEE;
3536   GL_COLOR_ATTACHMENT15 = $8CEF;
3537   GL_DEPTH_ATTACHMENT = $8D00;
3538   GL_STENCIL_ATTACHMENT = $8D20;
3539   GL_FRAMEBUFFER = $8D40;
3540   GL_RENDERBUFFER = $8D41;
3541   GL_RENDERBUFFER_WIDTH = $8D42;
3542   GL_RENDERBUFFER_HEIGHT = $8D43;
3543   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3544   GL_STENCIL_INDEX1 = $8D46;
3545   GL_STENCIL_INDEX4 = $8D47;
3546   GL_STENCIL_INDEX8 = $8D48;
3547   GL_STENCIL_INDEX16 = $8D49;
3548   GL_RENDERBUFFER_RED_SIZE = $8D50;
3549   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3550   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3551   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3552   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3553   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3554   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3555   GL_MAX_SAMPLES = $8D57;
3556 {$ifdef DGL_DEPRECATED}
3557   GL_INDEX = $8222;
3558   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3559   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3560 {$endif}
3561
3562   // GL_ARB_framebuffer_sRGB
3563   GL_FRAMEBUFFER_SRGB = $8DB9;
3564
3565   // GL_ARB_geometry_shader4
3566   GL_LINES_ADJACENCY_ARB = $000A;
3567   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3568   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3569   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3570   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3571   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3572   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3573   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3574   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3575   GL_GEOMETRY_SHADER_ARB = $8DD9;
3576   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3577   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3578   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3579   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3580   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3581   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3582   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3583   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3584   { reuse GL_MAX_VARYING_COMPONENTS }
3585   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3586
3587   // GL_ARB_half_float_vertex
3588   GL_HALF_FLOAT = $140B;
3589
3590   // GL_ARB_instanced_arrays
3591   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3592
3593   // GL_ARB_map_buffer_range
3594   GL_MAP_READ_BIT = $0001;
3595   GL_MAP_WRITE_BIT = $0002;
3596   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3597   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3598   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3599   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3600
3601   // GL_ARB_texture_buffer_object
3602   GL_TEXTURE_BUFFER_ARB = $8C2A;
3603   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3604   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3605   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3606   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3607
3608   // GL_ARB_texture_compression_rgtc
3609   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3610   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3611   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3612   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3613
3614   // GL_ARB_texture_rg
3615   GL_RG = $8227;
3616   GL_RG_INTEGER = $8228;
3617   GL_R8 = $8229;
3618   GL_R16 = $822A;
3619   GL_RG8 = $822B;
3620   GL_RG16 = $822C;
3621   GL_R16F = $822D;
3622   GL_R32F = $822E;
3623   GL_RG16F = $822F;
3624   GL_RG32F = $8230;
3625   GL_R8I = $8231;
3626   GL_R8UI = $8232;
3627   GL_R16I = $8233;
3628   GL_R16UI = $8234;
3629   GL_R32I = $8235;
3630   GL_R32UI = $8236;
3631   GL_RG8I = $8237;
3632   GL_RG8UI = $8238;
3633   GL_RG16I = $8239;
3634   GL_RG16UI = $823A;
3635   GL_RG32I = $823B;
3636   GL_RG32UI = $823C;
3637
3638   // GL_ARB_vertex_array_object
3639   GL_VERTEX_ARRAY_BINDING = $85B5;
3640
3641   // GL_ARB_uniform_buffer_object
3642   GL_UNIFORM_BUFFER = $8A11;
3643   GL_UNIFORM_BUFFER_BINDING = $8A28;
3644   GL_UNIFORM_BUFFER_START = $8A29;
3645   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3646   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3647   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3648   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3649   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3650   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3651   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3652   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3653   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3654   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3655   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3656   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3657   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3658   GL_UNIFORM_TYPE = $8A37;
3659   GL_UNIFORM_SIZE = $8A38;
3660   GL_UNIFORM_NAME_LENGTH = $8A39;
3661   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3662   GL_UNIFORM_OFFSET = $8A3B;
3663   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3664   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3665   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3666   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3667   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3668   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3669   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
3670   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
3671   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
3672   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
3673   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
3674   GL_INVALID_INDEX = $FFFFFFFF;
3675
3676   // GL_ARB_compatibility
3677   { ARB_compatibility just defines tokens from core 3.0 }
3678
3679   // GL_ARB_copy_buffer
3680   GL_COPY_READ_BUFFER_BINDING = $8F36;
3681   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
3682   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
3683   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
3684
3685   // GL_ARB_depth_clamp
3686   GL_DEPTH_CLAMP = $864F;
3687
3688   // GL_ARB_provoking_vertex
3689   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
3690   GL_FIRST_VERTEX_CONVENTION = $8E4D;
3691   GL_LAST_VERTEX_CONVENTION = $8E4E;
3692   GL_PROVOKING_VERTEX = $8E4F;
3693
3694   // GL_ARB_seamless_cube_map
3695   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
3696
3697   // GL_ARB_sync
3698   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
3699   GL_OBJECT_TYPE = $9112;
3700   GL_SYNC_CONDITION = $9113;
3701   GL_SYNC_STATUS = $9114;
3702   GL_SYNC_FLAGS = $9115;
3703   GL_SYNC_FENCE = $9116;
3704   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
3705   GL_UNSIGNALED = $9118;
3706   GL_SIGNALED = $9119;
3707   GL_ALREADY_SIGNALED = $911A;
3708   GL_TIMEOUT_EXPIRED = $911B;
3709   GL_CONDITION_SATISFIED = $911C;
3710   GL_WAIT_FAILED = $911D;
3711   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
3712   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
3713
3714   // GL_ARB_texture_multisample
3715   GL_SAMPLE_POSITION = $8E50;
3716   GL_SAMPLE_MASK = $8E51;
3717   GL_SAMPLE_MASK_VALUE = $8E52;
3718   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
3719   GL_TEXTURE_2D_MULTISAMPLE = $9100;
3720   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
3721   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
3722   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
3723   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
3724   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
3725   GL_TEXTURE_SAMPLES = $9106;
3726   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
3727   GL_SAMPLER_2D_MULTISAMPLE = $9108;
3728   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
3729   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
3730   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
3731   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
3732   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
3733   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
3734   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
3735   GL_MAX_INTEGER_SAMPLES = $9110;
3736
3737   // GL_ARB_vertex_array_bgra
3738   { reuse GL_BGRA }
3739
3740   // GL_ARB_sample_shading
3741   GL_SAMPLE_SHADING_ARB = $8C36;
3742   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
3743
3744   // GL_ARB_texture_cube_map_array
3745   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
3746   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
3747   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
3748   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
3749   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
3750   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
3751   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
3752
3753   // GL_ARB_texture_gather
3754   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
3755   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
3756
3757   // GL_ARB_shading_language_include
3758   GL_SHADER_INCLUDE_ARB = $8DAE;
3759   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
3760   GL_NAMED_STRING_TYPE_ARB = $8DEA;
3761
3762   // GL_ARB_texture_compression_bptc
3763   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
3764   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
3765   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
3766   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
3767
3768   // GL_ARB_blend_func_extended
3769   GL_SRC1_COLOR = $88F9;
3770   { reuse GL_SRC1_ALPHA }
3771   GL_ONE_MINUS_SRC1_COLOR = $88FA;
3772   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
3773   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
3774
3775   // GL_ARB_occlusion_query2
3776   GL_ANY_SAMPLES_PASSED = $8C2F;
3777
3778   // GL_ARB_sampler_objects
3779   GL_SAMPLER_BINDING = $8919;
3780
3781   // GL_ARB_texture_rgb10_a2ui
3782   GL_RGB10_A2UI = $906F;
3783
3784   // GL_ARB_texture_swizzle
3785   GL_TEXTURE_SWIZZLE_R = $8E42;
3786   GL_TEXTURE_SWIZZLE_G = $8E43;
3787   GL_TEXTURE_SWIZZLE_B = $8E44;
3788   GL_TEXTURE_SWIZZLE_A = $8E45;
3789   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
3790
3791   // GL_ARB_SPARSE_TEXTURE
3792   GL_TEXTURE_SPARSE_ARB = $91A6;
3793   GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = $91A7;
3794   GL_NUM_VIRTUAL_PAGE_SIZES_ARB = $91A8;
3795   GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = $91A9;
3796   GL_NUM_SPARSE_LEVELS_ARB = $91AA;
3797   GL_VIRTUAL_PAGE_SIZE_X_ARB = $9195;
3798   GL_VIRTUAL_PAGE_SIZE_Y_ARB = $9196;
3799   GL_VIRTUAL_PAGE_SIZE_Z_ARB = $9197;
3800   GL_MAX_SPARSE_TEXTURE_SIZE_ARB = $9198;
3801   GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = $9199;
3802   GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = $919A;
3803   GL_MIN_SPARSE_LEVEL_ARB = $919B;
3804
3805   // GL_ARB_timer_query
3806   GL_TIME_ELAPSED = $88BF;
3807   GL_TIMESTAMP = $8E28;
3808
3809   // GL_ARB_vertex_type_2_10_10_10_rev
3810   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
3811   GL_INT_2_10_10_10_REV = $8D9F;
3812
3813   // GL_ARB_draw_indirect
3814   GL_DRAW_INDIRECT_BUFFER = $8F3F;
3815   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
3816
3817   // GL_ARB_gpu_shader5
3818   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
3819   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
3820   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
3821   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
3822   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
3823   { reuse GL_MAX_VERTEX_STREAMS }
3824
3825   // GL_ARB_gpu_shader_fp64
3826   { reuse GL_DOUBLE }
3827   GL_DOUBLE_VEC2 = $8FFC;
3828   GL_DOUBLE_VEC3 = $8FFD;
3829   GL_DOUBLE_VEC4 = $8FFE;
3830   GL_DOUBLE_MAT2 = $8F46;
3831   GL_DOUBLE_MAT3 = $8F47;
3832   GL_DOUBLE_MAT4 = $8F48;
3833   GL_DOUBLE_MAT2x3 = $8F49;
3834   GL_DOUBLE_MAT2x4 = $8F4A;
3835   GL_DOUBLE_MAT3x2 = $8F4B;
3836   GL_DOUBLE_MAT3x4 = $8F4C;
3837   GL_DOUBLE_MAT4x2 = $8F4D;
3838   GL_DOUBLE_MAT4x3 = $8F4E;
3839
3840   // GL_ARB_shader_subroutine
3841   GL_ACTIVE_SUBROUTINES = $8DE5;
3842   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
3843   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
3844   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
3845   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
3846   GL_MAX_SUBROUTINES = $8DE7;
3847   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
3848   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
3849   GL_COMPATIBLE_SUBROUTINES = $8E4B;
3850   { reuse GL_UNIFORM_SIZE }
3851   { reuse GL_UNIFORM_NAME_LENGTH }
3852
3853   // GL_ARB_tessellation_shader
3854   GL_PATCHES = $000E;
3855   GL_PATCH_VERTICES = $8E72;
3856   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
3857   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
3858   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
3859   GL_TESS_GEN_MODE = $8E76;
3860   GL_TESS_GEN_SPACING = $8E77;
3861   GL_TESS_GEN_VERTEX_ORDER = $8E78;
3862   GL_TESS_GEN_POINT_MODE = $8E79;
3863   { reuse GL_TRIANGLES }
3864   { reuse GL_QUADS }
3865   GL_ISOLINES = $8E7A;
3866   { reuse GL_EQUAL }
3867   GL_FRACTIONAL_ODD = $8E7B;
3868   GL_FRACTIONAL_EVEN = $8E7C;
3869   { reuse GL_CCW }
3870   { reuse GL_CW }
3871   GL_MAX_PATCH_VERTICES = $8E7D;
3872   GL_MAX_TESS_GEN_LEVEL = $8E7E;
3873   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
3874   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
3875   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
3876   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
3877   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
3878   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
3879   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
3880   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
3881   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
3882   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
3883   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
3884   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
3885   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
3886   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
3887   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
3888   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
3889   GL_TESS_EVALUATION_SHADER = $8E87;
3890   GL_TESS_CONTROL_SHADER = $8E88;
3891
3892   // GL_ARB_texture_buffer_object_rgb32
3893   { reuse GL_RGB32F }
3894   { reuse GL_RGB32UI }
3895   { reuse GL_RGB32I }
3896
3897   // GL_ARB_transform_feedback2
3898   GL_TRANSFORM_FEEDBACK = $8E22;
3899   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
3900   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
3901   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
3902   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
3903   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
3904
3905   // GL_ARB_transform_feedback_overflow_query
3906   GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = $82EC;
3907   GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = $82ED;
3908
3909   // GL_ARB_transform_feedback3
3910   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
3911   GL_MAX_VERTEX_STREAMS = $8E71;
3912
3913   // GL_ARB_ES2_compatibility
3914   GL_FIXED = $140C;
3915   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
3916   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
3917   GL_LOW_FLOAT = $8DF0;
3918   GL_MEDIUM_FLOAT = $8DF1;
3919   GL_HIGH_FLOAT = $8DF2;
3920   GL_LOW_INT = $8DF3;
3921   GL_MEDIUM_INT = $8DF4;
3922   GL_HIGH_INT = $8DF5;
3923   GL_SHADER_COMPILER = $8DFA;
3924   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
3925   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
3926   GL_MAX_VARYING_VECTORS = $8DFC;
3927   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
3928   GL_RGB565 = $8D62;
3929
3930   // GL_ARB_get_program_binary
3931   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
3932   GL_PROGRAM_BINARY_LENGTH = $8741;
3933   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
3934   GL_PROGRAM_BINARY_FORMATS = $87FF;
3935
3936   // GL_ARB_separate_shader_objects
3937   GL_VERTEX_SHADER_BIT = $00000001;
3938   GL_FRAGMENT_SHADER_BIT = $00000002;
3939   GL_GEOMETRY_SHADER_BIT = $00000004;
3940   GL_TESS_CONTROL_SHADER_BIT = $00000008;
3941   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
3942   GL_ALL_SHADER_BITS = $FFFFFFFF;
3943   GL_PROGRAM_SEPARABLE = $8258;
3944   GL_ACTIVE_PROGRAM = $8259;
3945   GL_PROGRAM_PIPELINE_BINDING = $825A;
3946
3947   // GL_ARB_vertex_attrib_64bit
3948   { reuse GL_RGB32I }
3949   { reuse GL_DOUBLE_VEC2 }
3950   { reuse GL_DOUBLE_VEC3 }
3951   { reuse GL_DOUBLE_VEC4 }
3952   { reuse GL_DOUBLE_MAT2 }
3953   { reuse GL_DOUBLE_MAT3 }
3954   { reuse GL_DOUBLE_MAT4 }
3955   { reuse GL_DOUBLE_MAT2x3 }
3956   { reuse GL_DOUBLE_MAT2x4 }
3957   { reuse GL_DOUBLE_MAT3x2 }
3958   { reuse GL_DOUBLE_MAT3x4 }
3959   { reuse GL_DOUBLE_MAT4x2 }
3960   { reuse GL_DOUBLE_MAT4x3 }
3961
3962   // GL_ARB_viewport_array
3963   { reuse GL_SCISSOR_BOX }
3964   { reuse GL_VIEWPORT }
3965   { reuse GL_DEPTH_RANGE }
3966   { reuse GL_SCISSOR_TEST }
3967   GL_MAX_VIEWPORTS = $825B;
3968   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
3969   GL_VIEWPORT_BOUNDS_RANGE = $825D;
3970   GL_LAYER_PROVOKING_VERTEX = $825E;
3971   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
3972   GL_UNDEFINED_VERTEX = $8260;
3973   { reuse GL_FIRST_VERTEX_CONVENTION }
3974   { reuse GL_LAST_VERTEX_CONVENTION }
3975   { reuse GL_PROVOKING_VERTEX }
3976
3977   // GL_ARB_cl_event
3978   GL_SYNC_CL_EVENT_ARB = $8240;
3979   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
3980
3981   // GL_ARB_debug_output
3982   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
3983   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
3984   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
3985   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
3986   GL_DEBUG_SOURCE_API_ARB = $8246;
3987   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
3988   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
3989   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
3990   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
3991   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
3992   GL_DEBUG_TYPE_ERROR_ARB = $824C;
3993   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
3994   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
3995   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
3996   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
3997   GL_DEBUG_TYPE_OTHER_ARB = $8251;
3998   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
3999   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
4000   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
4001   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
4002   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
4003   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
4004
4005   // GL_ARB_robustness
4006   { reuse GL_NO_ERROR }
4007   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
4008   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
4009   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
4010   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
4011   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
4012   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
4013   GL_NO_RESET_NOTIFICATION_ARB = $8261;
4014
4015   //  GL_ARB_compressed_texture_pixel_storage
4016   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4017   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4018   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4019   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4020   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4021   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4022   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4023   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4024
4025   // GL_ARB_internalformat_query
4026   GL_NUM_SAMPLE_COUNTS              = $09380;
4027
4028   // GL_ARB_map_buffer_alignment
4029   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4030
4031   // GL_ARB_shader_atomic_counters
4032   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4033   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4034   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4035   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4036   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4037   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4038   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4039   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4040   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4041   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4042   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4043   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4044   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4045   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4046   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4047   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4048   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4049   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4050   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4051   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4052   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4053   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4054   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4055   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4056   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4057   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4058   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4059   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4060   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4061
4062   // GL_ARB_shader_image_load_store
4063   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4064   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4065   GL_UNIFORM_BARRIER_BIT            = $00000004;
4066   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4067   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4068   GL_COMMAND_BARRIER_BIT            = $00000040;
4069   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4070   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4071   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4072   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4073   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4074   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4075   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4076   GL_MAX_IMAGE_UNITS                = $8F38;
4077   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4078   GL_IMAGE_BINDING_NAME             = $8F3A;
4079   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4080   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4081   GL_IMAGE_BINDING_LAYER            = $8F3D;
4082   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4083   GL_IMAGE_1D                       = $904C;
4084   GL_IMAGE_2D                       = $904D;
4085   GL_IMAGE_3D                       = $904E;
4086   GL_IMAGE_2D_RECT                  = $904F;
4087   GL_IMAGE_CUBE                     = $9050;
4088   GL_IMAGE_BUFFER                   = $9051;
4089   GL_IMAGE_1D_ARRAY                 = $9052;
4090   GL_IMAGE_2D_ARRAY                 = $9053;
4091   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4092   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4093   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4094   GL_INT_IMAGE_1D                   = $9057;
4095   GL_INT_IMAGE_2D                   = $9058;
4096   GL_INT_IMAGE_3D                   = $9059;
4097   GL_INT_IMAGE_2D_RECT              = $905A;
4098   GL_INT_IMAGE_CUBE                 = $905B;
4099   GL_INT_IMAGE_BUFFER               = $905C;
4100   GL_INT_IMAGE_1D_ARRAY             = $905D;
4101   GL_INT_IMAGE_2D_ARRAY             = $905E;
4102   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4103   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4104   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4105   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4106   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4107   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4108   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4109   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4110   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4111   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4112   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4113   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4114   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4115   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4116   GL_MAX_IMAGE_SAMPLES              = $906D;
4117   GL_IMAGE_BINDING_FORMAT           = $906E;
4118   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4119   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4120   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4121   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4122   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4123   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4124   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4125   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4126   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4127
4128   // GL_ARB_texture_storage
4129   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4130
4131   // 4.3
4132   // GL_KHR_texture_compression_astc_hdr
4133   GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4134   GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4135   GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4136   GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4137   GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4138   GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4139   GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4140   GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4141   GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4142   GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4143   GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4144   GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4145   GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4146   GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4147   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4148   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4149   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4150   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4151   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4152   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4153   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4154   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4155   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4156   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4157   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4158   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4159   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4160   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4161   // (4.3) GL_KHR_debug
4162   GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4163   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4164   GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4165   GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4166   GL_DEBUG_SOURCE_API               = $8246;
4167   GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4168   GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4169   GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4170   GL_DEBUG_SOURCE_APPLICATION       = $824A;
4171   GL_DEBUG_SOURCE_OTHER             = $824B;
4172   GL_DEBUG_TYPE_ERROR               = $824C;
4173   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4174   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4175   GL_DEBUG_TYPE_PORTABILITY         = $824F;
4176   GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4177   GL_DEBUG_TYPE_OTHER               = $8251;
4178   GL_DEBUG_TYPE_MARKER              = $8268;
4179   GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4180   GL_DEBUG_TYPE_POP_GROUP           = $826A;
4181   GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4182   GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4183   GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4184   GL_BUFFER                         = $82E0;
4185   GL_SHADER                         = $82E1;
4186   GL_PROGRAM                        = $82E2;
4187   GL_QUERY                          = $82E3;
4188   GL_PROGRAM_PIPELINE               = $82E4;
4189   GL_SAMPLER                        = $82E6;
4190   GL_DISPLAY_LIST                   = $82E7;
4191   GL_MAX_LABEL_LENGTH               = $82E8;
4192   GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4193   GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4194   GL_DEBUG_LOGGED_MESSAGES          = $9145;
4195   GL_DEBUG_SEVERITY_HIGH            = $9146;
4196   GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4197   GL_DEBUG_SEVERITY_LOW             = $9148;
4198   GL_DEBUG_OUTPUT                   = $92E0;
4199   GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4200   GL_COMPUTE_SHADER                 = $91B9;
4201   GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4202   GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4203   GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4204   GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4205   GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4206   GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4207   GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4208   GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4209   GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4210   GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4211   GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4212   GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4213   GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4214   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4215   GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4216   GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4217   GL_COMPUTE_SHADER_BIT             = $00000020;
4218   GL_COMPRESSED_RGB8_ETC2           = $9274;
4219   GL_COMPRESSED_SRGB8_ETC2          = $9275;
4220   GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4221   GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4222   GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4223   GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4224   GL_COMPRESSED_R11_EAC             = $9270;
4225   GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4226   GL_COMPRESSED_RG11_EAC            = $9272;
4227   GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4228   GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4229   GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4230   GL_MAX_ELEMENT_INDEX              = $8D6B;
4231       GL_MAX_UNIFORM_LOCATIONS          = $826E;
4232   GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4233   GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4234   GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4235   GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4236   GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4237   GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4238   GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4239   GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4240   GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4241         GL_INTERNALFORMAT_SUPPORTED       = $826F;
4242   GL_INTERNALFORMAT_PREFERRED       = $8270;
4243   GL_INTERNALFORMAT_RED_SIZE        = $8271;
4244   GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4245   GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4246   GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4247   GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4248   GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4249   GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4250   GL_INTERNALFORMAT_RED_TYPE        = $8278;
4251   GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4252   GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4253   GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4254   GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4255   GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4256   GL_MAX_WIDTH                      = $827E;
4257   GL_MAX_HEIGHT                     = $827F;
4258   GL_MAX_DEPTH                      = $8280;
4259   GL_MAX_LAYERS                     = $8281;
4260   GL_MAX_COMBINED_DIMENSIONS        = $8282;
4261   GL_COLOR_COMPONENTS               = $8283;
4262   GL_DEPTH_COMPONENTS               = $8284;
4263   GL_STENCIL_COMPONENTS             = $8285;
4264   GL_COLOR_RENDERABLE               = $8286;
4265   GL_DEPTH_RENDERABLE               = $8287;
4266   GL_STENCIL_RENDERABLE             = $8288;
4267   GL_FRAMEBUFFER_RENDERABLE         = $8289;
4268   GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4269   GL_FRAMEBUFFER_BLEND              = $828B;
4270   GL_READ_PIXELS                    = $828C;
4271   GL_READ_PIXELS_FORMAT             = $828D;
4272   GL_READ_PIXELS_TYPE               = $828E;
4273   GL_TEXTURE_IMAGE_FORMAT           = $828F;
4274   GL_TEXTURE_IMAGE_TYPE             = $8290;
4275   GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4276   GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4277   GL_MIPMAP                         = $8293;
4278   GL_MANUAL_GENERATE_MIPMAP         = $8294;
4279   GL_AUTO_GENERATE_MIPMAP           = $8295;
4280   GL_COLOR_ENCODING                 = $8296;
4281   GL_SRGB_READ                      = $8297;
4282   GL_SRGB_WRITE                     = $8298;
4283   GL_SRGB_DECODE_ARB                = $8299;
4284   GL_FILTER                         = $829A;
4285   GL_VERTEX_TEXTURE                 = $829B;
4286   GL_TESS_CONTROL_TEXTURE           = $829C;
4287   GL_TESS_EVALUATION_TEXTURE        = $829D;
4288   GL_GEOMETRY_TEXTURE               = $829E;
4289   GL_FRAGMENT_TEXTURE               = $829F;
4290   GL_COMPUTE_TEXTURE                = $82A0;
4291   GL_TEXTURE_SHADOW                 = $82A1;
4292   GL_TEXTURE_GATHER                 = $82A2;
4293   GL_TEXTURE_GATHER_SHADOW          = $82A3;
4294   GL_SHADER_IMAGE_LOAD              = $82A4;
4295   GL_SHADER_IMAGE_STORE             = $82A5;
4296   GL_SHADER_IMAGE_ATOMIC            = $82A6;
4297   GL_IMAGE_TEXEL_SIZE               = $82A7;
4298   GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4299   GL_IMAGE_PIXEL_FORMAT             = $82A9;
4300   GL_IMAGE_PIXEL_TYPE               = $82AA;
4301   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4302   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4303   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4304   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4305   GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4306   GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4307   GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4308   GL_CLEAR_BUFFER                   = $82B4;
4309   GL_TEXTURE_VIEW                   = $82B5;
4310   GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4311   GL_FULL_SUPPORT                   = $82B7;
4312   GL_CAVEAT_SUPPORT                 = $82B8;
4313   GL_IMAGE_CLASS_4_X_32             = $82B9;
4314   GL_IMAGE_CLASS_2_X_32             = $82BA;
4315   GL_IMAGE_CLASS_1_X_32             = $82BB;
4316   GL_IMAGE_CLASS_4_X_16             = $82BC;
4317   GL_IMAGE_CLASS_2_X_16             = $82BD;
4318   GL_IMAGE_CLASS_1_X_16             = $82BE;
4319   GL_IMAGE_CLASS_4_X_8              = $82BF;
4320   GL_IMAGE_CLASS_2_X_8              = $82C0;
4321   GL_IMAGE_CLASS_1_X_8              = $82C1;
4322   GL_IMAGE_CLASS_11_11_10           = $82C2;
4323   GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4324   GL_VIEW_CLASS_128_BITS            = $82C4;
4325   GL_VIEW_CLASS_96_BITS             = $82C5;
4326   GL_VIEW_CLASS_64_BITS             = $82C6;
4327   GL_VIEW_CLASS_48_BITS             = $82C7;
4328   GL_VIEW_CLASS_32_BITS             = $82C8;
4329   GL_VIEW_CLASS_24_BITS             = $82C9;
4330   GL_VIEW_CLASS_16_BITS             = $82CA;
4331   GL_VIEW_CLASS_8_BITS              = $82CB;
4332   GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4333   GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4334   GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4335   GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4336   GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4337   GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4338   GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4339   GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4340   GL_UNIFORM                        = $92E1;
4341   GL_UNIFORM_BLOCK                  = $92E2;
4342   GL_PROGRAM_INPUT                  = $92E3;
4343   GL_PROGRAM_OUTPUT                 = $92E4;
4344   GL_BUFFER_VARIABLE                = $92E5;
4345   GL_SHADER_STORAGE_BLOCK           = $92E6;
4346   GL_VERTEX_SUBROUTINE              = $92E8;
4347   GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4348   GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4349   GL_GEOMETRY_SUBROUTINE            = $92EB;
4350   GL_FRAGMENT_SUBROUTINE            = $92EC;
4351   GL_COMPUTE_SUBROUTINE             = $92ED;
4352   GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4353   GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4354   GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4355   GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4356   GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4357   GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4358   GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4359   GL_ACTIVE_RESOURCES               = $92F5;
4360   GL_MAX_NAME_LENGTH                = $92F6;
4361   GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4362   GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4363   GL_NAME_LENGTH                    = $92F9;
4364   GL_TYPE                           = $92FA;
4365   GL_ARRAY_SIZE                     = $92FB;
4366   GL_OFFSET                         = $92FC;
4367   GL_BLOCK_INDEX                    = $92FD;
4368   GL_ARRAY_STRIDE                   = $92FE;
4369   GL_MATRIX_STRIDE                  = $92FF;
4370   GL_IS_ROW_MAJOR                   = $9300;
4371   GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4372   GL_BUFFER_BINDING                 = $9302;
4373   GL_BUFFER_DATA_SIZE               = $9303;
4374   GL_NUM_ACTIVE_VARIABLES           = $9304;
4375   GL_ACTIVE_VARIABLES               = $9305;
4376   GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4377   GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4378   GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4379   GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4380   GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4381   GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4382   GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4383   GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4384   GL_LOCATION                       = $930E;
4385   GL_LOCATION_INDEX                 = $930F;
4386   GL_IS_PER_PATCH                   = $92E7;
4387   GL_SHADER_STORAGE_BUFFER          = $90D2;
4388   GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4389   GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4390   GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4391   GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4392   GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4393   GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4394   GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4395   GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4396   GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4397   GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4398   GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4399   GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4400   GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4401   GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4402   GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4403   GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4404
4405   GL_TEXTURE_BUFFER_OFFSET          = $919D;
4406   GL_TEXTURE_BUFFER_SIZE            = $919E;
4407   GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4408   GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4409   GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4410   GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4411   GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4412   GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4413   GL_VERTEX_ATTRIB_BINDING          = $82D4;
4414   GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4415   GL_VERTEX_BINDING_DIVISOR         = $82D6;
4416   GL_VERTEX_BINDING_OFFSET          = $82D7;
4417   GL_VERTEX_BINDING_STRIDE          = $82D8;
4418   GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4419   GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4420
4421   // GL 4.4
4422   GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4423   GL_MAP_PERSISTENT_BIT               = $0040;
4424   GL_MAP_COHERENT_BIT                 = $0080;
4425   GL_DYNAMIC_STORAGE_BIT              = $0100;
4426   GL_CLIENT_STORAGE_BIT               = $0200;
4427   GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4428   GL_BUFFER_IMMUTABLE_STORAGE           = $821F;
4429   GL_BUFFER_STORAGE_FLAGS               = $8220;
4430   GL_CLEAR_TEXTURE                      = $9365;
4431   GL_LOCATION_COMPONENT                 = $934A;
4432   GL_TRANSFORM_FEEDBACK_BUFFER_INDEX    = $934B;
4433   GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4434   GL_QUERY_BUFFER                       = $9192;
4435   GL_QUERY_BUFFER_BARRIER_BIT           = $00008000;
4436   GL_QUERY_BUFFER_BINDING               = $9193;
4437   GL_QUERY_RESULT_NO_WAIT               = $9194;
4438   GL_MIRROR_CLAMP_TO_EDGE               = $8743;
4439
4440   // GL 4.5
4441   GL_CONTEXT_LOST                   = $0507;
4442   GL_NEGATIVE_ONE_TO_ONE            = $935E;
4443   GL_ZERO_TO_ONE                    = $935F;
4444   GL_CLIP_ORIGIN                    = $935C;
4445   GL_CLIP_DEPTH_MODE                = $935D;
4446   GL_QUERY_WAIT_INVERTED            = $8E17;
4447   GL_QUERY_NO_WAIT_INVERTED         = $8E18;
4448   GL_QUERY_BY_REGION_WAIT_INVERTED  = $8E19;
4449   GL_QUERY_BY_REGION_NO_WAIT_INVERTED = $8E1A;
4450   GL_MAX_CULL_DISTANCES             = $82F9;
4451   GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = $82FA;
4452   GL_TEXTURE_TARGET                 = $1006;
4453   GL_QUERY_TARGET                   = $82EA;
4454   GL_TEXTURE_BINDING                = $82EB;
4455   GL_GUILTY_CONTEXT_RESET           = $8253;
4456   GL_INNOCENT_CONTEXT_RESET         = $8254;
4457   GL_UNKNOWN_CONTEXT_RESET          = $8255;
4458   GL_RESET_NOTIFICATION_STRATEGY    = $8256;
4459   GL_LOSE_CONTEXT_ON_RESET          = $8252;
4460   GL_NO_RESET_NOTIFICATION          = $8261;
4461   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = $00000004;
4462   GL_CONTEXT_RELEASE_BEHAVIOR       = $82FB;
4463   GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = $82FC;
4464
4465   // GL_ATI_draw_buffers
4466   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4467   GL_DRAW_BUFFER0_ATI = $8825;
4468   GL_DRAW_BUFFER1_ATI = $8826;
4469   GL_DRAW_BUFFER2_ATI = $8827;
4470   GL_DRAW_BUFFER3_ATI = $8828;
4471   GL_DRAW_BUFFER4_ATI = $8829;
4472   GL_DRAW_BUFFER5_ATI = $882A;
4473   GL_DRAW_BUFFER6_ATI = $882B;
4474   GL_DRAW_BUFFER7_ATI = $882C;
4475   GL_DRAW_BUFFER8_ATI = $882D;
4476   GL_DRAW_BUFFER9_ATI = $882E;
4477   GL_DRAW_BUFFER10_ATI = $882F;
4478   GL_DRAW_BUFFER11_ATI = $8830;
4479   GL_DRAW_BUFFER12_ATI = $8831;
4480   GL_DRAW_BUFFER13_ATI = $8832;
4481   GL_DRAW_BUFFER14_ATI = $8833;
4482   GL_DRAW_BUFFER15_ATI = $8834;
4483
4484   // GL_ATI_element_array
4485   GL_ELEMENT_ARRAY_ATI = $8768;
4486   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4487   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4488
4489   // GL_ATI_envmap_bumpmap
4490   GL_BUMP_ROT_MATRIX_ATI = $8775;
4491   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4492   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4493   GL_BUMP_TEX_UNITS_ATI = $8778;
4494   GL_DUDV_ATI = $8779;
4495   GL_DU8DV8_ATI = $877A;
4496   GL_BUMP_ENVMAP_ATI = $877B;
4497   GL_BUMP_TARGET_ATI = $877C;
4498
4499   // GL_ATI_fragment_shader
4500   GL_FRAGMENT_SHADER_ATI = $8920;
4501   GL_REG_0_ATI = $8921;
4502   GL_REG_1_ATI = $8922;
4503   GL_REG_2_ATI = $8923;
4504   GL_REG_3_ATI = $8924;
4505   GL_REG_4_ATI = $8925;
4506   GL_REG_5_ATI = $8926;
4507   GL_REG_6_ATI = $8927;
4508   GL_REG_7_ATI = $8928;
4509   GL_REG_8_ATI = $8929;
4510   GL_REG_9_ATI = $892A;
4511   GL_REG_10_ATI = $892B;
4512   GL_REG_11_ATI = $892C;
4513   GL_REG_12_ATI = $892D;
4514   GL_REG_13_ATI = $892E;
4515   GL_REG_14_ATI = $892F;
4516   GL_REG_15_ATI = $8930;
4517   GL_REG_16_ATI = $8931;
4518   GL_REG_17_ATI = $8932;
4519   GL_REG_18_ATI = $8933;
4520   GL_REG_19_ATI = $8934;
4521   GL_REG_20_ATI = $8935;
4522   GL_REG_21_ATI = $8936;
4523   GL_REG_22_ATI = $8937;
4524   GL_REG_23_ATI = $8938;
4525   GL_REG_24_ATI = $8939;
4526   GL_REG_25_ATI = $893A;
4527   GL_REG_26_ATI = $893B;
4528   GL_REG_27_ATI = $893C;
4529   GL_REG_28_ATI = $893D;
4530   GL_REG_29_ATI = $893E;
4531   GL_REG_30_ATI = $893F;
4532   GL_REG_31_ATI = $8940;
4533   GL_CON_0_ATI = $8941;
4534   GL_CON_1_ATI = $8942;
4535   GL_CON_2_ATI = $8943;
4536   GL_CON_3_ATI = $8944;
4537   GL_CON_4_ATI = $8945;
4538   GL_CON_5_ATI = $8946;
4539   GL_CON_6_ATI = $8947;
4540   GL_CON_7_ATI = $8948;
4541   GL_CON_8_ATI = $8949;
4542   GL_CON_9_ATI = $894A;
4543   GL_CON_10_ATI = $894B;
4544   GL_CON_11_ATI = $894C;
4545   GL_CON_12_ATI = $894D;
4546   GL_CON_13_ATI = $894E;
4547   GL_CON_14_ATI = $894F;
4548   GL_CON_15_ATI = $8950;
4549   GL_CON_16_ATI = $8951;
4550   GL_CON_17_ATI = $8952;
4551   GL_CON_18_ATI = $8953;
4552   GL_CON_19_ATI = $8954;
4553   GL_CON_20_ATI = $8955;
4554   GL_CON_21_ATI = $8956;
4555   GL_CON_22_ATI = $8957;
4556   GL_CON_23_ATI = $8958;
4557   GL_CON_24_ATI = $8959;
4558   GL_CON_25_ATI = $895A;
4559   GL_CON_26_ATI = $895B;
4560   GL_CON_27_ATI = $895C;
4561   GL_CON_28_ATI = $895D;
4562   GL_CON_29_ATI = $895E;
4563   GL_CON_30_ATI = $895F;
4564   GL_CON_31_ATI = $8960;
4565   GL_MOV_ATI = $8961;
4566   GL_ADD_ATI = $8963;
4567   GL_MUL_ATI = $8964;
4568   GL_SUB_ATI = $8965;
4569   GL_DOT3_ATI = $8966;
4570   GL_DOT4_ATI = $8967;
4571   GL_MAD_ATI = $8968;
4572   GL_LERP_ATI = $8969;
4573   GL_CND_ATI = $896A;
4574   GL_CND0_ATI = $896B;
4575   GL_DOT2_ADD_ATI = $896C;
4576   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4577   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4578   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4579   GL_NUM_PASSES_ATI = $8970;
4580   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4581   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4582   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4583   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4584   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4585   GL_SWIZZLE_STR_ATI = $8976;
4586   GL_SWIZZLE_STQ_ATI = $8977;
4587   GL_SWIZZLE_STR_DR_ATI = $8978;
4588   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4589   GL_SWIZZLE_STRQ_ATI = $897A;
4590   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4591   GL_RED_BIT_ATI = $00000001;
4592   GL_GREEN_BIT_ATI = $00000002;
4593   GL_BLUE_BIT_ATI = $00000004;
4594   GL_2X_BIT_ATI = $00000001;
4595   GL_4X_BIT_ATI = $00000002;
4596   GL_8X_BIT_ATI = $00000004;
4597   GL_HALF_BIT_ATI = $00000008;
4598   GL_QUARTER_BIT_ATI = $00000010;
4599   GL_EIGHTH_BIT_ATI = $00000020;
4600   GL_SATURATE_BIT_ATI = $00000040;
4601   GL_COMP_BIT_ATI = $00000002;
4602   GL_NEGATE_BIT_ATI = $00000004;
4603   GL_BIAS_BIT_ATI = $00000008;
4604
4605   // GL_ATI_pn_triangles
4606   GL_PN_TRIANGLES_ATI = $87F0;
4607   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4608   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4609   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4610   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4611   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4612   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4613   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4614   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4615
4616   // GL_ATI_separate_stencil
4617   GL_STENCIL_BACK_FUNC_ATI = $8800;
4618   GL_STENCIL_BACK_FAIL_ATI = $8801;
4619   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4620   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4621
4622   // GL_ATI_text_fragment_shader
4623   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4624
4625   // GL_ATI_texture_env_combine3
4626   GL_MODULATE_ADD_ATI = $8744;
4627   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4628   GL_MODULATE_SUBTRACT_ATI = $8746;
4629
4630   // GL_ATI_texture_float
4631   GL_RGBA_FLOAT32_ATI = $8814;
4632   GL_RGB_FLOAT32_ATI = $8815;
4633   GL_ALPHA_FLOAT32_ATI = $8816;
4634   GL_INTENSITY_FLOAT32_ATI = $8817;
4635   GL_LUMINANCE_FLOAT32_ATI = $8818;
4636   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4637   GL_RGBA_FLOAT16_ATI = $881A;
4638   GL_RGB_FLOAT16_ATI = $881B;
4639   GL_ALPHA_FLOAT16_ATI = $881C;
4640   GL_INTENSITY_FLOAT16_ATI = $881D;
4641   GL_LUMINANCE_FLOAT16_ATI = $881E;
4642   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4643
4644   // GL_ATI_texture_mirror_once
4645   GL_MIRROR_CLAMP_ATI = $8742;
4646   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4647
4648   // GL_ATI_vertex_array_object
4649   GL_STATIC_ATI = $8760;
4650   GL_DYNAMIC_ATI = $8761;
4651   GL_PRESERVE_ATI = $8762;
4652   GL_DISCARD_ATI = $8763;
4653   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4654   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4655   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4656   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4657
4658   // GL_ATI_vertex_streams
4659   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4660   GL_VERTEX_STREAM0_ATI = $876C;
4661   GL_VERTEX_STREAM1_ATI = $876D;
4662   GL_VERTEX_STREAM2_ATI = $876E;
4663   GL_VERTEX_STREAM3_ATI = $876F;
4664   GL_VERTEX_STREAM4_ATI = $8770;
4665   GL_VERTEX_STREAM5_ATI = $8771;
4666   GL_VERTEX_STREAM6_ATI = $8772;
4667   GL_VERTEX_STREAM7_ATI = $8773;
4668   GL_VERTEX_SOURCE_ATI = $8774;
4669
4670   // GL_ATI_meminfo
4671   GL_VBO_FREE_MEMORY_ATI = $87FB;
4672   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4673   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4674
4675   // GL_AMD_performance_monitor
4676   GL_COUNTER_TYPE_AMD = $8BC0;
4677   GL_COUNTER_RANGE_AMD = $8BC1;
4678   GL_UNSIGNED_INT64_AMD = $8BC2;
4679   GL_PERCENTAGE_AMD = $8BC3;
4680   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4681   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4682   GL_PERFMON_RESULT_AMD = $8BC6;
4683
4684   // GL_AMD_vertex_shader_tesselator
4685   GL_SAMPLER_BUFFER_AMD = $9001;
4686   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4687   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4688   GL_TESSELLATION_MODE_AMD = $9004;
4689   GL_TESSELLATION_FACTOR_AMD = $9005;
4690   GL_DISCRETE_AMD = $9006;
4691   GL_CONTINUOUS_AMD = $9007;
4692
4693   // GL_AMD_seamless_cubemap_per_texture
4694   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4695
4696   // GL_AMD_name_gen_delete
4697   GL_DATA_BUFFER_AMD = $9151;
4698   GL_PERFORMANCE_MONITOR_AMD = $9152;
4699   GL_QUERY_OBJECT_AMD = $9153;
4700   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
4701   GL_SAMPLER_OBJECT_AMD = $9155;
4702
4703   // GL_AMD_debug_output
4704   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
4705   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
4706   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
4707   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
4708   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
4709   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
4710   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
4711   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
4712   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
4713   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
4714   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
4715   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
4716   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
4717
4718   // GL_AMD_depth_clamp_separate
4719   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
4720   GL_DEPTH_CLAMP_FAR_AMD = $901F;
4721
4722   // GL_EXT_422_pixels
4723   GL_422_EXT = $80CC;
4724   GL_422_REV_EXT = $80CD;
4725   GL_422_AVERAGE_EXT = $80CE;
4726   GL_422_REV_AVERAGE_EXT = $80CF;
4727
4728   // GL_EXT_abgr
4729   GL_ABGR_EXT = $8000;
4730
4731   // GL_EXT_bgra
4732   GL_BGR_EXT = $80E0;
4733   GL_BGRA_EXT = $80E1;
4734
4735   // GL_EXT_blend_color
4736   GL_CONSTANT_COLOR_EXT = $8001;
4737   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
4738   GL_CONSTANT_ALPHA_EXT = $8003;
4739   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
4740   GL_BLEND_COLOR_EXT = $8005;
4741
4742   // GL_EXT_blend_func_separate
4743   GL_BLEND_DST_RGB_EXT = $80C8;
4744   GL_BLEND_SRC_RGB_EXT = $80C9;
4745   GL_BLEND_DST_ALPHA_EXT = $80CA;
4746   GL_BLEND_SRC_ALPHA_EXT = $80CB;
4747
4748   // GL_EXT_blend_minmax
4749   GL_FUNC_ADD_EXT = $8006;
4750   GL_MIN_EXT = $8007;
4751   GL_MAX_EXT = $8008;
4752   GL_BLEND_EQUATION_EXT = $8009;
4753
4754   // GL_EXT_blend_subtract
4755   GL_FUNC_SUBTRACT_EXT = $800A;
4756   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
4757
4758   // GL_EXT_clip_volume_hint
4759   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
4760
4761   // GL_EXT_cmyka
4762   GL_CMYK_EXT = $800C;
4763   GL_CMYKA_EXT = $800D;
4764   GL_PACK_CMYK_HINT_EXT = $800E;
4765   GL_UNPACK_CMYK_HINT_EXT = $800F;
4766
4767   // GL_EXT_compiled_vertex_array
4768   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
4769   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
4770
4771   // GL_EXT_convolution
4772   GL_CONVOLUTION_1D_EXT = $8010;
4773   GL_CONVOLUTION_2D_EXT = $8011;
4774   GL_SEPARABLE_2D_EXT = $8012;
4775   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
4776   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
4777   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
4778   GL_REDUCE_EXT = $8016;
4779   GL_CONVOLUTION_FORMAT_EXT = $8017;
4780   GL_CONVOLUTION_WIDTH_EXT = $8018;
4781   GL_CONVOLUTION_HEIGHT_EXT = $8019;
4782   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
4783   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
4784   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
4785   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
4786   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
4787   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
4788   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
4789   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
4790   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
4791   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
4792
4793   // GL_EXT_coordinate_frame
4794   GL_TANGENT_ARRAY_EXT = $8439;
4795   GL_BINORMAL_ARRAY_EXT = $843A;
4796   GL_CURRENT_TANGENT_EXT = $843B;
4797   GL_CURRENT_BINORMAL_EXT = $843C;
4798   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
4799   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
4800   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
4801   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
4802   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
4803   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
4804   GL_MAP1_TANGENT_EXT = $8444;
4805   GL_MAP2_TANGENT_EXT = $8445;
4806   GL_MAP1_BINORMAL_EXT = $8446;
4807   GL_MAP2_BINORMAL_EXT = $8447;
4808
4809   // GL_EXT_cull_vertex
4810   GL_CULL_VERTEX_EXT = $81AA;
4811   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
4812   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
4813
4814   // GL_EXT_draw_range_elements
4815   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
4816   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
4817
4818   // GL_EXT_fog_coord
4819   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
4820   GL_FOG_COORDINATE_EXT = $8451;
4821   GL_FRAGMENT_DEPTH_EXT = $8452;
4822   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
4823   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
4824   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
4825   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
4826   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
4827
4828   // GL_EXT_framebuffer_object
4829   GL_FRAMEBUFFER_EXT = $8D40;
4830   GL_RENDERBUFFER_EXT = $8D41;
4831   GL_STENCIL_INDEX_EXT = $8D45;
4832   GL_STENCIL_INDEX1_EXT = $8D46;
4833   GL_STENCIL_INDEX4_EXT = $8D47;
4834   GL_STENCIL_INDEX8_EXT = $8D48;
4835   GL_STENCIL_INDEX16_EXT = $8D49;
4836   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
4837   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
4838   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
4839   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
4840   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
4841   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
4842   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
4843   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
4844   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
4845   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
4846   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
4847   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
4848   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
4849   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
4850   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
4851   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
4852   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
4853   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
4854   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
4855   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
4856   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
4857   GL_COLOR_ATTACHMENT13_EXT = $8CED;
4858   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
4859   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
4860   GL_DEPTH_ATTACHMENT_EXT = $8D00;
4861   GL_STENCIL_ATTACHMENT_EXT = $8D20;
4862   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
4863   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
4864   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
4865   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
4866   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
4867   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
4868   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
4869   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
4870   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
4871   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
4872   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
4873   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
4874   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
4875   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
4876   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
4877
4878   // GL_EXT_histogram
4879   GL_HISTOGRAM_EXT = $8024;
4880   GL_PROXY_HISTOGRAM_EXT = $8025;
4881   GL_HISTOGRAM_WIDTH_EXT = $8026;
4882   GL_HISTOGRAM_FORMAT_EXT = $8027;
4883   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
4884   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
4885   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
4886   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
4887   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
4888   GL_HISTOGRAM_SINK_EXT = $802D;
4889   GL_MINMAX_EXT = $802E;
4890   GL_MINMAX_FORMAT_EXT = $802F;
4891   GL_MINMAX_SINK_EXT = $8030;
4892   GL_TABLE_TOO_LARGE_EXT = $8031;
4893
4894   // GL_EXT_index_array_formats
4895   GL_IUI_V2F_EXT = $81AD;
4896   GL_IUI_V3F_EXT = $81AE;
4897   GL_IUI_N3F_V2F_EXT = $81AF;
4898   GL_IUI_N3F_V3F_EXT = $81B0;
4899   GL_T2F_IUI_V2F_EXT = $81B1;
4900   GL_T2F_IUI_V3F_EXT = $81B2;
4901   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
4902   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
4903
4904   // GL_EXT_index_func
4905   GL_INDEX_TEST_EXT = $81B5;
4906   GL_INDEX_TEST_FUNC_EXT = $81B6;
4907   GL_INDEX_TEST_REF_EXT = $81B7;
4908
4909   // GL_EXT_index_material
4910   GL_INDEX_MATERIAL_EXT = $81B8;
4911   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
4912   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
4913
4914   // GL_EXT_light_texture
4915   GL_FRAGMENT_MATERIAL_EXT = $8349;
4916   GL_FRAGMENT_NORMAL_EXT = $834A;
4917   GL_FRAGMENT_COLOR_EXT = $834C;
4918   GL_ATTENUATION_EXT = $834D;
4919   GL_SHADOW_ATTENUATION_EXT = $834E;
4920   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
4921   GL_TEXTURE_LIGHT_EXT = $8350;
4922   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
4923   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
4924
4925   // GL_EXT_multisample
4926   GL_MULTISAMPLE_EXT = $809D;
4927   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
4928   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
4929   GL_SAMPLE_MASK_EXT = $80A0;
4930   GL_1PASS_EXT = $80A1;
4931   GL_2PASS_0_EXT = $80A2;
4932   GL_2PASS_1_EXT = $80A3;
4933   GL_4PASS_0_EXT = $80A4;
4934   GL_4PASS_1_EXT = $80A5;
4935   GL_4PASS_2_EXT = $80A6;
4936   GL_4PASS_3_EXT = $80A7;
4937   GL_SAMPLE_BUFFERS_EXT = $80A8;
4938   GL_SAMPLES_EXT = $80A9;
4939   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
4940   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
4941   GL_SAMPLE_PATTERN_EXT = $80AC;
4942   GL_MULTISAMPLE_BIT_EXT = $20000000;
4943
4944   // GL_EXT_packed_pixels
4945   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
4946   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
4947   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
4948   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
4949   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
4950
4951   // GL_EXT_paletted_texture
4952   GL_COLOR_INDEX1_EXT = $80E2;
4953   GL_COLOR_INDEX2_EXT = $80E3;
4954   GL_COLOR_INDEX4_EXT = $80E4;
4955   GL_COLOR_INDEX8_EXT = $80E5;
4956   GL_COLOR_INDEX12_EXT = $80E6;
4957   GL_COLOR_INDEX16_EXT = $80E7;
4958   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
4959
4960   // GL_EXT_pixel_transform
4961   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
4962   GL_PIXEL_MAG_FILTER_EXT = $8331;
4963   GL_PIXEL_MIN_FILTER_EXT = $8332;
4964   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
4965   GL_CUBIC_EXT = $8334;
4966   GL_AVERAGE_EXT = $8335;
4967   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
4968   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
4969   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
4970
4971   // GL_EXT_point_parameters
4972   GL_POINT_SIZE_MIN_EXT = $8126;
4973   GL_POINT_SIZE_MAX_EXT = $8127;
4974   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
4975   GL_DISTANCE_ATTENUATION_EXT = $8129;
4976
4977   // GL_EXT_polygon_offset
4978   GL_POLYGON_OFFSET_EXT = $8037;
4979   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
4980   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
4981
4982   // GL_EXT_rescale_normal
4983   GL_RESCALE_NORMAL_EXT = $803A;
4984
4985   // GL_EXT_secondary_color
4986   GL_COLOR_SUM_EXT = $8458;
4987   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
4988   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
4989   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
4990   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
4991   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
4992   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
4993
4994   // GL_EXT_separate_specular_color
4995   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
4996   GL_SINGLE_COLOR_EXT = $81F9;
4997   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
4998
4999   // GL_EXT_shared_texture_palette
5000   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
5001
5002   // GL_EXT_stencil_two_side
5003   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
5004   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
5005
5006   // GL_EXT_stencil_wrap
5007   GL_INCR_WRAP_EXT = $8507;
5008   GL_DECR_WRAP_EXT = $8508;
5009
5010   // GL_EXT_texture
5011   GL_ALPHA4_EXT = $803B;
5012   GL_ALPHA8_EXT = $803C;
5013   GL_ALPHA12_EXT = $803D;
5014   GL_ALPHA16_EXT = $803E;
5015   GL_LUMINANCE4_EXT = $803F;
5016   GL_LUMINANCE8_EXT = $8040;
5017   GL_LUMINANCE12_EXT = $8041;
5018   GL_LUMINANCE16_EXT = $8042;
5019   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5020   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5021   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5022   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5023   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5024   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5025   GL_INTENSITY_EXT = $8049;
5026   GL_INTENSITY4_EXT = $804A;
5027   GL_INTENSITY8_EXT = $804B;
5028   GL_INTENSITY12_EXT = $804C;
5029   GL_INTENSITY16_EXT = $804D;
5030   GL_RGB2_EXT = $804E;
5031   GL_RGB4_EXT = $804F;
5032   GL_RGB5_EXT = $8050;
5033   GL_RGB8_EXT = $8051;
5034   GL_RGB10_EXT = $8052;
5035   GL_RGB12_EXT = $8053;
5036   GL_RGB16_EXT = $8054;
5037   GL_RGBA2_EXT = $8055;
5038   GL_RGBA4_EXT = $8056;
5039   GL_RGB5_A1_EXT = $8057;
5040   GL_RGBA8_EXT = $8058;
5041   GL_RGB10_A2_EXT = $8059;
5042   GL_RGBA12_EXT = $805A;
5043   GL_RGBA16_EXT = $805B;
5044   GL_TEXTURE_RED_SIZE_EXT = $805C;
5045   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5046   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5047   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5048   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5049   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5050   GL_REPLACE_EXT = $8062;
5051   GL_PROXY_TEXTURE_1D_EXT = $8063;
5052   GL_PROXY_TEXTURE_2D_EXT = $8064;
5053   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5054
5055   // GL_EXT_texture3D
5056   GL_PACK_SKIP_IMAGES_EXT = $806B;
5057   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5058   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5059   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5060   GL_TEXTURE_3D_EXT = $806F;
5061   GL_PROXY_TEXTURE_3D_EXT = $8070;
5062   GL_TEXTURE_DEPTH_EXT = $8071;
5063   GL_TEXTURE_WRAP_R_EXT = $8072;
5064   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5065
5066   // GL_EXT_texture_compression_s3tc
5067   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5068   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5069   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5070   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5071
5072   // GL_EXT_texture_cube_map
5073   GL_NORMAL_MAP_EXT = $8511;
5074   GL_REFLECTION_MAP_EXT = $8512;
5075   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5076   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5077   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5078   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5079   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5080   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5081   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5082   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5083   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5084   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5085
5086   // GL_EXT_texture_edge_clamp
5087   GL_CLAMP_TO_EDGE_EXT = $812F;
5088
5089   // GL_EXT_texture_env_combine
5090   GL_COMBINE_EXT = $8570;
5091   GL_COMBINE_RGB_EXT = $8571;
5092   GL_COMBINE_ALPHA_EXT = $8572;
5093   GL_RGB_SCALE_EXT = $8573;
5094   GL_ADD_SIGNED_EXT = $8574;
5095   GL_INTERPOLATE_EXT = $8575;
5096   GL_CONSTANT_EXT = $8576;
5097   GL_PRIMARY_COLOR_EXT = $8577;
5098   GL_PREVIOUS_EXT = $8578;
5099   GL_SOURCE0_RGB_EXT = $8580;
5100   GL_SOURCE1_RGB_EXT = $8581;
5101   GL_SOURCE2_RGB_EXT = $8582;
5102   GL_SOURCE0_ALPHA_EXT = $8588;
5103   GL_SOURCE1_ALPHA_EXT = $8589;
5104   GL_SOURCE2_ALPHA_EXT = $858A;
5105   GL_OPERAND0_RGB_EXT = $8590;
5106   GL_OPERAND1_RGB_EXT = $8591;
5107   GL_OPERAND2_RGB_EXT = $8592;
5108   GL_OPERAND0_ALPHA_EXT = $8598;
5109   GL_OPERAND1_ALPHA_EXT = $8599;
5110   GL_OPERAND2_ALPHA_EXT = $859A;
5111
5112   // GL_EXT_texture_env_dot3
5113   GL_DOT3_RGB_EXT = $8740;
5114   GL_DOT3_RGBA_EXT = $8741;
5115
5116   // GL_EXT_texture_filter_anisotropic
5117   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5118   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5119
5120   // GL_EXT_texture_lod_bias
5121   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5122   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5123   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5124
5125   // GL_EXT_texture_object
5126   GL_TEXTURE_PRIORITY_EXT = $8066;
5127   GL_TEXTURE_RESIDENT_EXT = $8067;
5128   GL_TEXTURE_1D_BINDING_EXT = $8068;
5129   GL_TEXTURE_2D_BINDING_EXT = $8069;
5130   GL_TEXTURE_3D_BINDING_EXT = $806A;
5131
5132   // GL_EXT_texture_perturb_normal
5133   GL_PERTURB_EXT = $85AE;
5134   GL_TEXTURE_NORMAL_EXT = $85AF;
5135
5136   // GL_EXT_texture_rectangle
5137   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5138   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5139   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5140   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5141
5142   // GL_EXT_vertex_array
5143   GL_VERTEX_ARRAY_EXT = $8074;
5144   GL_NORMAL_ARRAY_EXT = $8075;
5145   GL_COLOR_ARRAY_EXT = $8076;
5146   GL_INDEX_ARRAY_EXT = $8077;
5147   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5148   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5149   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5150   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5151   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5152   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5153   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5154   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5155   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5156   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5157   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5158   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5159   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5160   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5161   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5162   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5163   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5164   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5165   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5166   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5167   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5168   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5169   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5170   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5171   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5172   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5173   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5174   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5175
5176   // GL_EXT_vertex_shader
5177   GL_VERTEX_SHADER_EXT = $8780;
5178   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5179   GL_OP_INDEX_EXT = $8782;
5180   GL_OP_NEGATE_EXT = $8783;
5181   GL_OP_DOT3_EXT = $8784;
5182   GL_OP_DOT4_EXT = $8785;
5183   GL_OP_MUL_EXT = $8786;
5184   GL_OP_ADD_EXT = $8787;
5185   GL_OP_MADD_EXT = $8788;
5186   GL_OP_FRAC_EXT = $8789;
5187   GL_OP_MAX_EXT = $878A;
5188   GL_OP_MIN_EXT = $878B;
5189   GL_OP_SET_GE_EXT = $878C;
5190   GL_OP_SET_LT_EXT = $878D;
5191   GL_OP_CLAMP_EXT = $878E;
5192   GL_OP_FLOOR_EXT = $878F;
5193   GL_OP_ROUND_EXT = $8790;
5194   GL_OP_EXP_BASE_2_EXT = $8791;
5195   GL_OP_LOG_BASE_2_EXT = $8792;
5196   GL_OP_POWER_EXT = $8793;
5197   GL_OP_RECIP_EXT = $8794;
5198   GL_OP_RECIP_SQRT_EXT = $8795;
5199   GL_OP_SUB_EXT = $8796;
5200   GL_OP_CROSS_PRODUCT_EXT = $8797;
5201   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5202   GL_OP_MOV_EXT = $8799;
5203   GL_OUTPUT_VERTEX_EXT = $879A;
5204   GL_OUTPUT_COLOR0_EXT = $879B;
5205   GL_OUTPUT_COLOR1_EXT = $879C;
5206   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5207   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5208   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5209   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5210   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5211   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5212   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5213   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5214   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5215   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5216   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5217   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5218   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5219   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5220   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5221   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5222   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5223   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5224   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5225   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5226   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5227   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5228   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5229   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5230   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5231   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5232   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5233   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5234   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5235   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5236   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5237   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5238   GL_OUTPUT_FOG_EXT = $87BD;
5239   GL_SCALAR_EXT = $87BE;
5240   GL_VECTOR_EXT = $87BF;
5241   GL_MATRIX_EXT = $87C0;
5242   GL_VARIANT_EXT = $87C1;
5243   GL_INVARIANT_EXT = $87C2;
5244   GL_LOCAL_CONSTANT_EXT = $87C3;
5245   GL_LOCAL_EXT = $87C4;
5246   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5247   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5248   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5249   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5250   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5251   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5252   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5253   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5254   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5255   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5256   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5257   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5258   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5259   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5260   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5261   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5262   GL_X_EXT = $87D5;
5263   GL_Y_EXT = $87D6;
5264   GL_Z_EXT = $87D7;
5265   GL_W_EXT = $87D8;
5266   GL_NEGATIVE_X_EXT = $87D9;
5267   GL_NEGATIVE_Y_EXT = $87DA;
5268   GL_NEGATIVE_Z_EXT = $87DB;
5269   GL_NEGATIVE_W_EXT = $87DC;
5270   GL_ZERO_EXT = $87DD;
5271   GL_ONE_EXT = $87DE;
5272   GL_NEGATIVE_ONE_EXT = $87DF;
5273   GL_NORMALIZED_RANGE_EXT = $87E0;
5274   GL_FULL_RANGE_EXT = $87E1;
5275   GL_CURRENT_VERTEX_EXT = $87E2;
5276   GL_MVP_MATRIX_EXT = $87E3;
5277   GL_VARIANT_VALUE_EXT = $87E4;
5278   GL_VARIANT_DATATYPE_EXT = $87E5;
5279   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5280   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5281   GL_VARIANT_ARRAY_EXT = $87E8;
5282   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5283   GL_INVARIANT_VALUE_EXT = $87EA;
5284   GL_INVARIANT_DATATYPE_EXT = $87EB;
5285   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5286   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5287
5288   // GL_EXT_vertex_weighting
5289   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5290   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5291   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5292   GL_MODELVIEW1_MATRIX_EXT = $8506;
5293   GL_VERTEX_WEIGHTING_EXT = $8509;
5294   GL_MODELVIEW0_EXT = $1700;
5295   GL_MODELVIEW1_EXT = $850A;
5296   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5297   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5298   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5299   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5300   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5301   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5302
5303   // GL_EXT_depth_bounds_test
5304   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5305   GL_DEPTH_BOUNDS_EXT = $8891;
5306
5307   // GL_EXT_texture_mirror_clamp
5308   GL_MIRROR_CLAMP_EXT = $8742;
5309   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5310   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5311
5312   // GL_EXT_blend_equation_separate
5313   GL_BLEND_EQUATION_RGB_EXT = $8009;
5314   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5315
5316   // GL_EXT_pixel_buffer_object
5317   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5318   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5319   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5320   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5321
5322   // GL_EXT_stencil_clear_tag
5323   GL_STENCIL_TAG_BITS_EXT = $88F2;
5324   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5325
5326   // GL_EXT_packed_depth_stencil
5327   GL_DEPTH_STENCIL_EXT = $84F9;
5328   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5329   GL_DEPTH24_STENCIL8_EXT = $88F0;
5330   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5331
5332   // GL_EXT_texture_sRGB
5333   GL_SRGB_EXT = $8C40;
5334   GL_SRGB8_EXT = $8C41;
5335   GL_SRGB_ALPHA_EXT = $8C42;
5336   GL_SRGB8_ALPHA8_EXT = $8C43;
5337   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5338   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5339   GL_SLUMINANCE_EXT = $8C46;
5340   GL_SLUMINANCE8_EXT = $8C47;
5341   GL_COMPRESSED_SRGB_EXT = $8C48;
5342   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5343   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5344   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5345   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5346   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5347   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5348   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5349
5350   // GL_EXT_framebuffer_blit
5351   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5352   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5353   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5354   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5355
5356   // GL_EXT_framebuffer_multisample
5357   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5358   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5359   GL_MAX_SAMPLES_EXT = $8D57;
5360
5361   // GL_EXT_timer_query
5362   GL_TIME_ELAPSED_EXT = $88BF;
5363
5364   // GL_EXT_bindable_uniform
5365   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5366   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5367   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5368   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5369   GL_UNIFORM_BUFFER_EXT = $8DEE;
5370   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5371
5372   // GL_EXT_framebuffer_sRGB
5373   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5374   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5375   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5376   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5377
5378   // GL_EXT_geometry_shader4
5379   GL_GEOMETRY_SHADER_EXT = $8DD9;
5380   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5381   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5382   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5383   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5384   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5385   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5386   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5387   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5388   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5389   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5390   GL_LINES_ADJACENCY_EXT = $A;
5391   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5392   GL_TRIANGLES_ADJACENCY_EXT = $C;
5393   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5394   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5395   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5396   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5397   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5398   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5399
5400   // GL_EXT_gpu_shader4
5401   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5402   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5403   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5404   GL_SAMPLER_BUFFER_EXT = $8DC2;
5405   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5406   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5407   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5408   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5409   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5410   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5411   GL_INT_SAMPLER_1D_EXT = $8DC9;
5412   GL_INT_SAMPLER_2D_EXT = $8DCA;
5413   GL_INT_SAMPLER_3D_EXT = $8DCB;
5414   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5415   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5416   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5417   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5418   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5419   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5420   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5421   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5422   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5423   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5424   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5425   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5426   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5427   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5428   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5429
5430   // GL_EXT_packed_float
5431   GL_R11F_G11F_B10F_EXT = $8C3A;
5432   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5433   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5434   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5435   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5436   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5437
5438   // GL_EXT_texture_array
5439   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5440   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5441   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5442   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5443   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5444   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5445   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5446   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5447
5448   // GL_EXT_texture_buffer_object
5449   GL_TEXTURE_BUFFER_EXT = $8C2A;
5450   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5451   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5452   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5453   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5454
5455   // GL_EXT_texture_compression_latc
5456   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5457   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5458   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5459   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5460
5461   // GL_EXT_texture_compression_rgtc
5462   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5463   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5464   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5465   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5466
5467   // GL_EXT_texture_integer
5468   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5469   GL_RGBA32UI_EXT = $8D70;
5470   GL_RGB32UI_EXT = $8D71;
5471   GL_ALPHA32UI_EXT = $8D72;
5472   GL_INTENSITY32UI_EXT = $8D73;
5473   GL_LUMINANCE32UI_EXT = $8D74;
5474   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5475   GL_RGBA16UI_EXT = $8D76;
5476   GL_RGB16UI_EXT = $8D77;
5477   GL_ALPHA16UI_EXT = $8D78;
5478   GL_INTENSITY16UI_EXT = $8D79;
5479   GL_LUMINANCE16UI_EXT = $8D7A;
5480   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5481   GL_RGBA8UI_EXT = $8D7C;
5482   GL_RGB8UI_EXT = $8D7D;
5483   GL_ALPHA8UI_EXT = $8D7E;
5484   GL_INTENSITY8UI_EXT = $8D7F;
5485   GL_LUMINANCE8UI_EXT = $8D80;
5486   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5487   GL_RGBA32I_EXT = $8D82;
5488   GL_RGB32I_EXT = $8D83;
5489   GL_ALPHA32I_EXT = $8D84;
5490   GL_INTENSITY32I_EXT = $8D85;
5491   GL_LUMINANCE32I_EXT = $8D86;
5492   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5493   GL_RGBA16I_EXT = $8D88;
5494   GL_RGB16I_EXT = $8D89;
5495   GL_ALPHA16I_EXT = $8D8A;
5496   GL_INTENSITY16I_EXT = $8D8B;
5497   GL_LUMINANCE16I_EXT = $8D8C;
5498   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5499   GL_RGBA8I_EXT = $8D8E;
5500   GL_RGB8I_EXT = $8D8F;
5501   GL_ALPHA8I_EXT = $8D90;
5502   GL_INTENSITY8I_EXT = $8D91;
5503   GL_LUMINANCE8I_EXT = $8D92;
5504   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5505   GL_RED_INTEGER_EXT = $8D94;
5506   GL_GREEN_INTEGER_EXT = $8D95;
5507   GL_BLUE_INTEGER_EXT = $8D96;
5508   GL_ALPHA_INTEGER_EXT = $8D97;
5509   GL_RGB_INTEGER_EXT = $8D98;
5510   GL_RGBA_INTEGER_EXT = $8D99;
5511   GL_BGR_INTEGER_EXT = $8D9A;
5512   GL_BGRA_INTEGER_EXT = $8D9B;
5513   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5514   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5515
5516   // GL_EXT_texture_shared_exponent
5517   GL_RGB9_E5_EXT = $8C3D;
5518   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5519   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5520
5521   // GL_EXT_transform_feedback
5522   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5523   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5524   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5525   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5526   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5527   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5528   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5529   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5530   GL_RASTERIZER_DISCARD_EXT = $8C89;
5531   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5532   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5533   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5534   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5535   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5536   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5537
5538   // GL_EXT_direct_state_access
5539   GL_PROGRAM_MATRIX_EXT = $8E2D;
5540   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5541   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5542
5543   // GL_EXT_texture_swizzle
5544   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5545   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5546   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5547   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5548   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5549
5550   // GL_EXT_provoking_vertex
5551   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5552   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5553   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5554   GL_PROVOKING_VERTEX_EXT = $8E4F;
5555
5556   // GL_EXT_texture_snorm
5557   GL_ALPHA_SNORM = $9010;
5558   GL_LUMINANCE_SNORM = $9011;
5559   GL_LUMINANCE_ALPHA_SNORM = $9012;
5560   GL_INTENSITY_SNORM = $9013;
5561   GL_ALPHA8_SNORM = $9014;
5562   GL_LUMINANCE8_SNORM = $9015;
5563   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5564   GL_INTENSITY8_SNORM = $9017;
5565   GL_ALPHA16_SNORM = $9018;
5566   GL_LUMINANCE16_SNORM = $9019;
5567   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5568   GL_INTENSITY16_SNORM = $901B;
5569   { reuse GL_RED_SNORM }
5570   { reuse GL_RG_SNORM }
5571   { reuse GL_RGB_SNORM }
5572   { reuse GL_RGBA_SNORM }
5573   { reuse GL_R8_SNORM }
5574   { reuse GL_RG8_SNORM }
5575   { reuse GL_RGB8_SNORM }
5576   { reuse GL_RGBA8_SNORM }
5577   { reuse GL_R16_SNORM }
5578   { reuse GL_RG16_SNORM }
5579   { reuse GL_RGB16_SNORM }
5580   { reuse GL_RGBA16_SNORM }
5581   { reuse GL_SIGNED_NORMALIZED }
5582
5583   // GL_EXT_separate_shader_objects
5584   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5585
5586   // GL_EXT_shader_image_load_store
5587   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5588   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5589   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5590   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5591   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5592   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5593   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5594   GL_IMAGE_1D_EXT = $904C;
5595   GL_IMAGE_2D_EXT = $904D;
5596   GL_IMAGE_3D_EXT = $904E;
5597   GL_IMAGE_2D_RECT_EXT = $904F;
5598   GL_IMAGE_CUBE_EXT = $9050;
5599   GL_IMAGE_BUFFER_EXT = $9051;
5600   GL_IMAGE_1D_ARRAY_EXT = $9052;
5601   GL_IMAGE_2D_ARRAY_EXT = $9053;
5602   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5603   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5604   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5605   GL_INT_IMAGE_1D_EXT = $9057;
5606   GL_INT_IMAGE_2D_EXT = $9058;
5607   GL_INT_IMAGE_3D_EXT = $9059;
5608   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5609   GL_INT_IMAGE_CUBE_EXT = $905B;
5610   GL_INT_IMAGE_BUFFER_EXT = $905C;
5611   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5612   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5613   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5614   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5615   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5616   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5617   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5618   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5619   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5620   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5621   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5622   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5623   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5624   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5625   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5626   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5627   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5628   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5629   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5630   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5631   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5632   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5633   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5634   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5635   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5636   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5637   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5638   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5639   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5640   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5641   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5642
5643   // GL_EXT_vertex_attrib_64bit
5644   { reuse GL_DOUBLE }
5645   GL_DOUBLE_VEC2_EXT = $8FFC;
5646   GL_DOUBLE_VEC3_EXT = $8FFD;
5647   GL_DOUBLE_VEC4_EXT = $8FFE;
5648   GL_DOUBLE_MAT2_EXT = $8F46;
5649   GL_DOUBLE_MAT3_EXT = $8F47;
5650   GL_DOUBLE_MAT4_EXT = $8F48;
5651   GL_DOUBLE_MAT2x3_EXT = $8F49;
5652   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5653   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5654   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5655   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5656   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5657
5658   // GL_EXT_texture_sRGB_decode
5659   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5660   GL_DECODE_EXT = $8A49;
5661   GL_SKIP_DECODE_EXT = $8A4A;
5662
5663   // GL_NV_texture_multisample
5664   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5665   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5666
5667   // GL_AMD_blend_minmax_factor
5668   GL_FACTOR_MIN_AMD                 = $901C;
5669   GL_FACTOR_MAX_AMD                 = $901D;
5670
5671   // GL_AMD_sample_positions
5672   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5673
5674   // GL_EXT_x11_sync_object
5675   GL_SYNC_X11_FENCE_EXT             = $90E1;
5676
5677   // GL_EXT_framebuffer_multisample_blit_scaled
5678   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5679   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5680
5681   // (4.3) GL_NV_path_rendering
5682         GL_PATH_FORMAT_SVG_NV            = $9070;
5683         GL_PATH_FORMAT_PS_NV             = $9071;
5684         GL_STANDARD_FONT_NAME_NV         = $9072;
5685         GL_SYSTEM_FONT_NAME_NV           = $9073;
5686         GL_FILE_NAME_NV                  = $9074;
5687         GL_PATH_STROKE_WIDTH_NV          = $9075;
5688         GL_PATH_END_CAPS_NV              = $9076;
5689         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5690         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5691         GL_PATH_JOIN_STYLE_NV            = $9079;
5692         GL_PATH_MITER_LIMIT_NV           = $907A;
5693         GL_PATH_DASH_CAPS_NV             = $907B;
5694         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5695         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5696         GL_PATH_DASH_OFFSET_NV           = $907E;
5697         GL_PATH_CLIENT_LENGTH_NV         = $907F;
5698         GL_PATH_FILL_MODE_NV             = $9080;
5699         GL_PATH_FILL_MASK_NV             = $9081;
5700         GL_PATH_FILL_COVER_MODE_NV       = $9082;
5701         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
5702         GL_PATH_STROKE_MASK_NV           = $9084;
5703         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
5704         GL_PATH_STROKE_BOUND_NV          = $9086;
5705         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
5706         GL_COUNT_UP_NV                   = $9088;
5707         GL_COUNT_DOWN_NV                 = $9089;
5708         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
5709         GL_CONVEX_HULL_NV                = $908B;
5710         GL_MULTI_HULLS_NV                = $908C;
5711         GL_BOUNDING_BOX_NV               = $908D;
5712         GL_TRANSLATE_X_NV                = $908E;
5713         GL_TRANSLATE_Y_NV                = $908F;
5714         GL_TRANSLATE_2D_NV               = $9090;
5715         GL_TRANSLATE_3D_NV               = $9091;
5716         GL_AFFINE_2D_NV                  = $9092;
5717         GL_PROJECTIVE_2D_NV              = $9093;
5718         GL_AFFINE_3D_NV                  = $9094;
5719         GL_PROJECTIVE_3D_NV              = $9095;
5720         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
5721         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
5722         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
5723         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
5724         GL_UTF8_NV                       = $909A;
5725         GL_UTF16_NV                      = $909B;
5726         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
5727         GL_PATH_COMMAND_COUNT_NV         = $909D;
5728         GL_PATH_COORD_COUNT_NV           = $909E;
5729   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
5730   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
5731   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
5732   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
5733   GL_SQUARE_NV                     = $90A3;
5734   GL_ROUND_NV                      = $90A4;
5735   GL_TRIANGULAR_NV                 = $90A5;
5736   GL_BEVEL_NV                      = $90A6;
5737   GL_MITER_REVERT_NV               = $90A7;
5738   GL_MITER_TRUNCATE_NV             = $90A8;
5739   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
5740   GL_USE_MISSING_GLYPH_NV          = $90AA;
5741   GL_PATH_ERROR_POSITION_NV        = $90AB;
5742   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
5743   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
5744   GL_ADJACENT_PAIRS_NV             = $90AE;
5745   GL_FIRST_TO_REST_NV              = $90AF;
5746   GL_PATH_GEN_MODE_NV              = $90B0;
5747   GL_PATH_GEN_COEFF_NV             = $90B1;
5748   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
5749   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
5750   GL_PATH_STENCIL_FUNC_NV          = $90B7;
5751   GL_PATH_STENCIL_REF_NV           = $90B8;
5752   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
5753   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
5754   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
5755   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
5756   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
5757   GL_MOVE_TO_RESETS_NV             = $90B5;
5758   GL_MOVE_TO_CONTINUES_NV          = $90B6;
5759   GL_CLOSE_PATH_NV                 = $00;
5760   GL_MOVE_TO_NV                    = $02;
5761   GL_RELATIVE_MOVE_TO_NV           = $03;
5762   GL_LINE_TO_NV                    = $04;
5763   GL_RELATIVE_LINE_TO_NV           = $05;
5764   GL_HORIZONTAL_LINE_TO_NV         = $06;
5765   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
5766   GL_VERTICAL_LINE_TO_NV           = $08;
5767   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
5768   GL_QUADRATIC_CURVE_TO_NV         = $0A;
5769   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
5770   GL_CUBIC_CURVE_TO_NV             = $0C;
5771   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
5772   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
5773   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
5774   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
5775   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
5776   GL_SMALL_CCW_ARC_TO_NV           = $12;
5777   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
5778   GL_SMALL_CW_ARC_TO_NV            = $14;
5779   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
5780   GL_LARGE_CCW_ARC_TO_NV           = $16;
5781   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
5782   GL_LARGE_CW_ARC_TO_NV            = $18;
5783   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
5784   GL_RESTART_PATH_NV               = $F0;
5785   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
5786   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
5787   GL_RECT_NV                       = $F6;
5788   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
5789   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
5790   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
5791   GL_ARC_TO_NV                     = $FE;
5792   GL_RELATIVE_ARC_TO_NV            = $FF;
5793   GL_BOLD_BIT_NV                   = $01;
5794   GL_ITALIC_BIT_NV                 = $02;
5795   GL_GLYPH_WIDTH_BIT_NV            = $01;
5796   GL_GLYPH_HEIGHT_BIT_NV           = $02;
5797   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
5798   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
5799   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
5800   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
5801   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
5802   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
5803   GL_GLYPH_HAS_KERNING_NV          = $100;
5804   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
5805   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
5806   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
5807   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
5808   GL_FONT_UNITS_PER_EM_NV          = $00100000;
5809   GL_FONT_ASCENDER_NV              = $00200000;
5810   GL_FONT_DESCENDER_NV             = $00400000;
5811   GL_FONT_HEIGHT_NV                = $00800000;
5812   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
5813   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
5814   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
5815   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
5816   GL_FONT_HAS_KERNING_NV           = $10000000;
5817
5818   // (4.3) GL_AMD_pinned_memory
5819   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
5820
5821   // (4.3) GL_AMD_stencil_operation_extended
5822   GL_SET_AMD                       = $874A;
5823   GL_REPLACE_VALUE_AMD             = $874B;
5824   GL_STENCIL_OP_VALUE_AMD          = $874C;
5825   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
5826
5827   // (4.3) GL_AMD_vertex_shader_viewport_index
5828
5829   // (4.3) GL_AMD_vertex_shader_layer
5830
5831   // (4.3) GL_NV_bindless_texture
5832
5833   // (4.3) GL_NV_shader_atomic_float
5834
5835   // (4.3) GL_AMD_query_buffer_object
5836   GL_QUERY_BUFFER_AMD              = $9192;
5837   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
5838   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
5839
5840   // GL_FfdMaskSGIX
5841   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
5842   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
5843
5844   // GL_HP_convolution_border_modes
5845   GL_IGNORE_BORDER_HP = $8150;
5846   GL_CONSTANT_BORDER_HP = $8151;
5847   GL_REPLICATE_BORDER_HP = $8153;
5848   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
5849
5850   // GL_HP_image_transform
5851   GL_IMAGE_SCALE_X_HP = $8155;
5852   GL_IMAGE_SCALE_Y_HP = $8156;
5853   GL_IMAGE_TRANSLATE_X_HP = $8157;
5854   GL_IMAGE_TRANSLATE_Y_HP = $8158;
5855   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
5856   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
5857   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
5858   GL_IMAGE_MAG_FILTER_HP = $815C;
5859   GL_IMAGE_MIN_FILTER_HP = $815D;
5860   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
5861   GL_CUBIC_HP = $815F;
5862   GL_AVERAGE_HP = $8160;
5863   GL_IMAGE_TRANSFORM_2D_HP = $8161;
5864   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
5865   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
5866
5867   // GL_HP_occlusion_test
5868   GL_OCCLUSION_TEST_HP = $8165;
5869   GL_OCCLUSION_TEST_RESULT_HP = $8166;
5870
5871   // GL_HP_texture_lighting
5872   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
5873   GL_TEXTURE_POST_SPECULAR_HP = $8168;
5874   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
5875
5876   // GL_IBM_cull_vertex
5877   GL_CULL_VERTEX_IBM = 103050;
5878
5879   // GL_IBM_rasterpos_clip
5880   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
5881
5882   // GL_IBM_texture_mirrored_repeat
5883   GL_MIRRORED_REPEAT_IBM = $8370;
5884
5885   // GL_IBM_vertex_array_lists
5886   GL_VERTEX_ARRAY_LIST_IBM = 103070;
5887   GL_NORMAL_ARRAY_LIST_IBM = 103071;
5888   GL_COLOR_ARRAY_LIST_IBM = 103072;
5889   GL_INDEX_ARRAY_LIST_IBM = 103073;
5890   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
5891   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
5892   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
5893   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
5894   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
5895   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
5896   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
5897   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
5898   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
5899   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
5900   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
5901   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
5902
5903   // GL_INGR_color_clamp
5904   GL_RED_MIN_CLAMP_INGR = $8560;
5905   GL_GREEN_MIN_CLAMP_INGR = $8561;
5906   GL_BLUE_MIN_CLAMP_INGR = $8562;
5907   GL_ALPHA_MIN_CLAMP_INGR = $8563;
5908   GL_RED_MAX_CLAMP_INGR = $8564;
5909   GL_GREEN_MAX_CLAMP_INGR = $8565;
5910   GL_BLUE_MAX_CLAMP_INGR = $8566;
5911   GL_ALPHA_MAX_CLAMP_INGR = $8567;
5912
5913   // GL_INGR_interlace_read
5914   GL_INTERLACE_READ_INGR = $8568;
5915
5916   // GL_INTEL_parallel_arrays
5917   GL_PARALLEL_ARRAYS_INTEL = $83F4;
5918   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
5919   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
5920   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
5921   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
5922
5923   // GL_NV_copy_depth_to_color
5924   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
5925   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
5926
5927   // GL_NV_depth_clamp
5928   GL_DEPTH_CLAMP_NV = $864F;
5929
5930   // GL_NV_evaluators
5931   GL_EVAL_2D_NV = $86C0;
5932   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
5933   GL_MAP_TESSELLATION_NV = $86C2;
5934   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
5935   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
5936   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
5937   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
5938   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
5939   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
5940   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
5941   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
5942   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
5943   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
5944   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
5945   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
5946   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
5947   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
5948   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
5949   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
5950   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
5951   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
5952   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
5953   GL_MAX_MAP_TESSELLATION_NV = $86D6;
5954   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
5955
5956   // GL_NV_fence
5957   GL_ALL_COMPLETED_NV = $84F2;
5958   GL_FENCE_STATUS_NV = $84F3;
5959   GL_FENCE_CONDITION_NV = $84F4;
5960
5961   // GL_NV_float_buffer
5962   GL_FLOAT_R_NV = $8880;
5963   GL_FLOAT_RG_NV = $8881;
5964   GL_FLOAT_RGB_NV = $8882;
5965   GL_FLOAT_RGBA_NV = $8883;
5966   GL_FLOAT_R16_NV = $8884;
5967   GL_FLOAT_R32_NV = $8885;
5968   GL_FLOAT_RG16_NV = $8886;
5969   GL_FLOAT_RG32_NV = $8887;
5970   GL_FLOAT_RGB16_NV = $8888;
5971   GL_FLOAT_RGB32_NV = $8889;
5972   GL_FLOAT_RGBA16_NV = $888A;
5973   GL_FLOAT_RGBA32_NV = $888B;
5974   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
5975   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
5976   GL_FLOAT_RGBA_MODE_NV = $888E;
5977
5978   // GL_NV_fog_distance
5979   GL_FOG_DISTANCE_MODE_NV = $855A;
5980   GL_EYE_RADIAL_NV = $855B;
5981   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
5982
5983   // GL_NV_fragment_program
5984   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
5985   GL_FRAGMENT_PROGRAM_NV = $8870;
5986   GL_MAX_TEXTURE_COORDS_NV = $8871;
5987   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
5988   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
5989   GL_PROGRAM_ERROR_STRING_NV = $8874;
5990
5991   // GL_NV_half_float
5992   GL_HALF_FLOAT_NV = $140B;
5993
5994   // GL_NV_light_max_exponent
5995   GL_MAX_SHININESS_NV = $8504;
5996   GL_MAX_SPOT_EXPONENT_NV = $8505;
5997
5998   // GL_NV_multisample_filter_hint
5999   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
6000
6001   // GL_NV_occlusion_query
6002   GL_PIXEL_COUNTER_BITS_NV = $8864;
6003   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
6004   GL_PIXEL_COUNT_NV = $8866;
6005   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
6006
6007   // GL_NV_packed_depth_stencil
6008   GL_DEPTH_STENCIL_NV = $84F9;
6009   GL_UNSIGNED_INT_24_8_NV = $84FA;
6010
6011   // GL_NV_pixel_data_range
6012   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
6013   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
6014   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
6015   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6016   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6017   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6018
6019   // GL_NV_point_sprite
6020   GL_POINT_SPRITE_NV = $8861;
6021   GL_COORD_REPLACE_NV = $8862;
6022   GL_POINT_SPRITE_R_MODE_NV = $8863;
6023
6024   // GL_NV_primitive_restart
6025   GL_PRIMITIVE_RESTART_NV = $8558;
6026   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6027
6028   // GL_NV_register_combiners
6029   GL_REGISTER_COMBINERS_NV = $8522;
6030   GL_VARIABLE_A_NV = $8523;
6031   GL_VARIABLE_B_NV = $8524;
6032   GL_VARIABLE_C_NV = $8525;
6033   GL_VARIABLE_D_NV = $8526;
6034   GL_VARIABLE_E_NV = $8527;
6035   GL_VARIABLE_F_NV = $8528;
6036   GL_VARIABLE_G_NV = $8529;
6037   GL_CONSTANT_COLOR0_NV = $852A;
6038   GL_CONSTANT_COLOR1_NV = $852B;
6039   GL_PRIMARY_COLOR_NV = $852C;
6040   GL_SECONDARY_COLOR_NV = $852D;
6041   GL_SPARE0_NV = $852E;
6042   GL_SPARE1_NV = $852F;
6043   GL_DISCARD_NV = $8530;
6044   GL_E_TIMES_F_NV = $8531;
6045   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6046   GL_UNSIGNED_IDENTITY_NV = $8536;
6047   GL_UNSIGNED_INVERT_NV = $8537;
6048   GL_EXPAND_NORMAL_NV = $8538;
6049   GL_EXPAND_NEGATE_NV = $8539;
6050   GL_HALF_BIAS_NORMAL_NV = $853A;
6051   GL_HALF_BIAS_NEGATE_NV = $853B;
6052   GL_SIGNED_IDENTITY_NV = $853C;
6053   GL_SIGNED_NEGATE_NV = $853D;
6054   GL_SCALE_BY_TWO_NV = $853E;
6055   GL_SCALE_BY_FOUR_NV = $853F;
6056   GL_SCALE_BY_ONE_HALF_NV = $8540;
6057   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6058   GL_COMBINER_INPUT_NV = $8542;
6059   GL_COMBINER_MAPPING_NV = $8543;
6060   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6061   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6062   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6063   GL_COMBINER_MUX_SUM_NV = $8547;
6064   GL_COMBINER_SCALE_NV = $8548;
6065   GL_COMBINER_BIAS_NV = $8549;
6066   GL_COMBINER_AB_OUTPUT_NV = $854A;
6067   GL_COMBINER_CD_OUTPUT_NV = $854B;
6068   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6069   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6070   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6071   GL_COLOR_SUM_CLAMP_NV = $854F;
6072   GL_COMBINER0_NV = $8550;
6073   GL_COMBINER1_NV = $8551;
6074   GL_COMBINER2_NV = $8552;
6075   GL_COMBINER3_NV = $8553;
6076   GL_COMBINER4_NV = $8554;
6077   GL_COMBINER5_NV = $8555;
6078   GL_COMBINER6_NV = $8556;
6079   GL_COMBINER7_NV = $8557;
6080
6081   // GL_NV_register_combiners2
6082   GL_PER_STAGE_CONSTANTS_NV = $8535;
6083
6084   // GL_NV_texgen_emboss
6085   GL_EMBOSS_LIGHT_NV = $855D;
6086   GL_EMBOSS_CONSTANT_NV = $855E;
6087   GL_EMBOSS_MAP_NV = $855F;
6088
6089   // GL_NV_texgen_reflection
6090   GL_NORMAL_MAP_NV = $8511;
6091   GL_REFLECTION_MAP_NV = $8512;
6092
6093   // GL_NV_texture_env_combine4
6094   GL_COMBINE4_NV = $8503;
6095   GL_SOURCE3_RGB_NV = $8583;
6096   GL_SOURCE3_ALPHA_NV = $858B;
6097   GL_OPERAND3_RGB_NV = $8593;
6098   GL_OPERAND3_ALPHA_NV = $859B;
6099
6100   // GL_NV_texture_expand_normal
6101   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6102
6103   // GL_NV_texture_rectangle
6104   GL_TEXTURE_RECTANGLE_NV = $84F5;
6105   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6106   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6107   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6108
6109   // GL_NV_texture_shader
6110   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6111   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6112   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6113   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6114   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6115   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6116   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6117   GL_SHADER_CONSISTENT_NV = $86DD;
6118   GL_TEXTURE_SHADER_NV = $86DE;
6119   GL_SHADER_OPERATION_NV = $86DF;
6120   GL_CULL_MODES_NV = $86E0;
6121   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6122   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6123   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6124   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6125   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6126   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6127   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6128   GL_CONST_EYE_NV = $86E5;
6129   GL_PASS_THROUGH_NV = $86E6;
6130   GL_CULL_FRAGMENT_NV = $86E7;
6131   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6132   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6133   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6134   GL_DOT_PRODUCT_NV = $86EC;
6135   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6136   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6137   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6138   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6139   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6140   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6141   GL_HILO_NV = $86F4;
6142   GL_DSDT_NV = $86F5;
6143   GL_DSDT_MAG_NV = $86F6;
6144   GL_DSDT_MAG_VIB_NV = $86F7;
6145   GL_HILO16_NV = $86F8;
6146   GL_SIGNED_HILO_NV = $86F9;
6147   GL_SIGNED_HILO16_NV = $86FA;
6148   GL_SIGNED_RGBA_NV = $86FB;
6149   GL_SIGNED_RGBA8_NV = $86FC;
6150   GL_SIGNED_RGB_NV = $86FE;
6151   GL_SIGNED_RGB8_NV = $86FF;
6152   GL_SIGNED_LUMINANCE_NV = $8701;
6153   GL_SIGNED_LUMINANCE8_NV = $8702;
6154   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6155   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6156   GL_SIGNED_ALPHA_NV = $8705;
6157   GL_SIGNED_ALPHA8_NV = $8706;
6158   GL_SIGNED_INTENSITY_NV = $8707;
6159   GL_SIGNED_INTENSITY8_NV = $8708;
6160   GL_DSDT8_NV = $8709;
6161   GL_DSDT8_MAG8_NV = $870A;
6162   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6163   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6164   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6165   GL_HI_SCALE_NV = $870E;
6166   GL_LO_SCALE_NV = $870F;
6167   GL_DS_SCALE_NV = $8710;
6168   GL_DT_SCALE_NV = $8711;
6169   GL_MAGNITUDE_SCALE_NV = $8712;
6170   GL_VIBRANCE_SCALE_NV = $8713;
6171   GL_HI_BIAS_NV = $8714;
6172   GL_LO_BIAS_NV = $8715;
6173   GL_DS_BIAS_NV = $8716;
6174   GL_DT_BIAS_NV = $8717;
6175   GL_MAGNITUDE_BIAS_NV = $8718;
6176   GL_VIBRANCE_BIAS_NV = $8719;
6177   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6178   GL_TEXTURE_HI_SIZE_NV = $871B;
6179   GL_TEXTURE_LO_SIZE_NV = $871C;
6180   GL_TEXTURE_DS_SIZE_NV = $871D;
6181   GL_TEXTURE_DT_SIZE_NV = $871E;
6182   GL_TEXTURE_MAG_SIZE_NV = $871F;
6183
6184   // GL_NV_texture_shader2
6185   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6186
6187   // GL_NV_texture_shader3
6188   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6189   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6190   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6191   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6192   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6193   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6194   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6195   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6196   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6197   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6198   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6199   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6200   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6201   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6202   GL_HILO8_NV = $885E;
6203   GL_SIGNED_HILO8_NV = $885F;
6204   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6205
6206   // GL_NV_vertex_array_range
6207   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6208   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6209   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6210   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6211   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6212
6213   // GL_NV_vertex_array_range2
6214   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6215
6216   // GL_NV_vertex_program
6217   GL_VERTEX_PROGRAM_NV = $8620;
6218   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6219   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6220   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6221   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6222   GL_CURRENT_ATTRIB_NV = $8626;
6223   GL_PROGRAM_LENGTH_NV = $8627;
6224   GL_PROGRAM_STRING_NV = $8628;
6225   GL_MODELVIEW_PROJECTION_NV = $8629;
6226   GL_IDENTITY_NV = $862A;
6227   GL_INVERSE_NV = $862B;
6228   GL_TRANSPOSE_NV = $862C;
6229   GL_INVERSE_TRANSPOSE_NV = $862D;
6230   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6231   GL_MAX_TRACK_MATRICES_NV = $862F;
6232   GL_MATRIX0_NV = $8630;
6233   GL_MATRIX1_NV = $8631;
6234   GL_MATRIX2_NV = $8632;
6235   GL_MATRIX3_NV = $8633;
6236   GL_MATRIX4_NV = $8634;
6237   GL_MATRIX5_NV = $8635;
6238   GL_MATRIX6_NV = $8636;
6239   GL_MATRIX7_NV = $8637;
6240   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6241   GL_CURRENT_MATRIX_NV = $8641;
6242   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6243   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6244   GL_PROGRAM_PARAMETER_NV = $8644;
6245   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6246   GL_PROGRAM_TARGET_NV = $8646;
6247   GL_PROGRAM_RESIDENT_NV = $8647;
6248   GL_TRACK_MATRIX_NV = $8648;
6249   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6250   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6251   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6252   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6253   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6254   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6255   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6256   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6257   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6258   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6259   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6260   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6261   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6262   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6263   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6264   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6265   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6266   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6267   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6268   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6269   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6270   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6271   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6272   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6273   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6274   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6275   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6276   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6277   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6278   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6279   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6280   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6281   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6282   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6283   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6284   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6285   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6286   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6287   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6288   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6289   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6290   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6291   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6292   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6293   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6294   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6295   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6296   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6297   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6298   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6299   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6300
6301   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6302   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6303   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6304
6305   // GL_NV_fragment_program2
6306   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6307   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6308   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6309
6310   // GL_NV_vertex_program3
6311   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6312
6313   // GL_NV_depth_buffer_float
6314   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6315   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6316
6317   // GL_NV_framebuffer_multisample_coverage
6318   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6319   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6320
6321   // GL_NV_geometry_program4
6322   GL_GEOMETRY_PROGRAM_NV = $8C26;
6323   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6324   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6325
6326   // GL_NV_gpu_program4
6327   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6328   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6329   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6330   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6331   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6332   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6333
6334   // GL_NV_parameter_buffer_object
6335   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6336   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6337   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6338   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6339   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6340
6341   // GL_NV_transform_feedback
6342   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6343   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6344   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6345   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6346   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6347   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6348   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6349   GL_PRIMITIVES_GENERATED_NV = $8C87;
6350   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6351   GL_RASTERIZER_DISCARD_NV = $8C89;
6352   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6353   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6354   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6355   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6356   GL_ACTIVE_VARYINGS_NV = $8C81;
6357   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6358   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6359   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6360   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6361   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6362   GL_TEXTURE_COORD_NV = $8C79;
6363   GL_CLIP_DISTANCE_NV = $8C7A;
6364   GL_VERTEX_ID_NV = $8C7B;
6365   GL_PRIMITIVE_ID_NV = $8C7C;
6366   GL_GENERIC_ATTRIB_NV = $8C7D;
6367   GL_LAYER_NV = $8DAA;
6368   GL_NEXT_BUFFER_NV = -2;
6369   GL_SKIP_COMPONENTS4_NV = -3;
6370   GL_SKIP_COMPONENTS3_NV = -4;
6371   GL_SKIP_COMPONENTS2_NV = -5;
6372   GL_SKIP_COMPONENTS1_NV = -6;
6373
6374   // GL_NV_conditional_render
6375   GL_QUERY_WAIT_NV = $8E13;
6376   GL_QUERY_NO_WAIT_NV = $8E14;
6377   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6378   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6379
6380   // GL_NV_present_video
6381   GL_FRAME_NV = $8E26;
6382   GL_FIELDS_NV = $8E27;
6383   GL_CURRENT_TIME_NV = $8E28;
6384   GL_NUM_FILL_STREAMS_NV = $8E29;
6385   GL_PRESENT_TIME_NV = $8E2A;
6386   GL_PRESENT_DURATION_NV = $8E2B;
6387
6388   // GL_NV_explicit_multisample
6389   GL_SAMPLE_POSITION_NV = $8E50;
6390   GL_SAMPLE_MASK_NV = $8E51;
6391   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6392   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6393   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6394   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6395   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6396   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6397   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6398   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6399
6400   // GL_NV_transform_feedback2
6401   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6402   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6403   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6404   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6405
6406   // GL_NV_video_capture
6407   GL_VIDEO_BUFFER_NV = $9020;
6408   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6409   GL_FIELD_UPPER_NV = $9022;
6410   GL_FIELD_LOWER_NV = $9023;
6411   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6412   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6413   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6414   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6415   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6416   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6417   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6418   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6419   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6420   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6421   GL_PARTIAL_SUCCESS_NV = $902E;
6422   GL_SUCCESS_NV = $902F;
6423   GL_FAILURE_NV = $9030;
6424   GL_YCBYCR8_422_NV = $9031;
6425   GL_YCBAYCR8A_4224_NV = $9032;
6426   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6427   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6428   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6429   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6430   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6431   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6432   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6433   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6434   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6435   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6436
6437   // GL_NV_shader_buffer_load
6438   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6439   GL_GPU_ADDRESS_NV = $8F34;
6440   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6441
6442   // GL_NV_vertex_buffer_unified_memory
6443   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6444   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6445   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6446   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6447   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6448   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6449   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6450   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6451   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6452   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6453   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6454   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6455   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6456   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6457   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6458   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6459   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6460   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6461   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6462   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6463   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6464   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6465   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6466   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6467   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6468
6469   // GL_NV_gpu_program5
6470   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6471   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6472   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6473   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6474   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6475   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6476   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6477   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6478
6479   // GL_NV_gpu_shader5
6480   GL_INT64_NV = $140E;
6481   GL_UNSIGNED_INT64_NV = $140F;
6482   GL_INT8_NV = $8FE0;
6483   GL_INT8_VEC2_NV = $8FE1;
6484   GL_INT8_VEC3_NV = $8FE2;
6485   GL_INT8_VEC4_NV = $8FE3;
6486   GL_INT16_NV = $8FE4;
6487   GL_INT16_VEC2_NV = $8FE5;
6488   GL_INT16_VEC3_NV = $8FE6;
6489   GL_INT16_VEC4_NV = $8FE7;
6490   GL_INT64_VEC2_NV = $8FE9;
6491   GL_INT64_VEC3_NV = $8FEA;
6492   GL_INT64_VEC4_NV = $8FEB;
6493   GL_UNSIGNED_INT8_NV = $8FEC;
6494   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6495   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6496   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6497   GL_UNSIGNED_INT16_NV = $8FF0;
6498   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6499   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6500   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6501   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6502   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6503   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6504   GL_FLOAT16_NV = $8FF8;
6505   GL_FLOAT16_VEC2_NV = $8FF9;
6506   GL_FLOAT16_VEC3_NV = $8FFA;
6507   GL_FLOAT16_VEC4_NV = $8FFB;
6508   { reuse GL_PATCHES }
6509
6510   // GL_NV_shader_buffer_store
6511   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6512   { reuse GL_READ_WRITE }
6513   { reuse GL_WRITE_ONLY }
6514
6515   // GL_NV_tessellation_program5
6516   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6517   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6518   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6519   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6520   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6521
6522   // GL_NV_vertex_attrib_integer_64bit
6523   { reuse GL_INT64_NV }
6524   { reuse GL_UNSIGNED_INT64_NV }
6525
6526   // GL_NV_multisample_coverage
6527   GL_COVERAGE_SAMPLES_NV = $80A9;
6528   GL_COLOR_SAMPLES_NV = $8E20;
6529
6530   // GL_NV_vdpau_interop
6531   GL_SURFACE_STATE_NV = $86EB;
6532   GL_SURFACE_REGISTERED_NV = $86FD;
6533   GL_SURFACE_MAPPED_NV = $8700;
6534   GL_WRITE_DISCARD_NV = $88BE;
6535
6536   // GL_OML_interlace
6537   GL_INTERLACE_OML = $8980;
6538   GL_INTERLACE_READ_OML = $8981;
6539
6540   // GL_OML_resample
6541   GL_PACK_RESAMPLE_OML = $8984;
6542   GL_UNPACK_RESAMPLE_OML = $8985;
6543   GL_RESAMPLE_REPLICATE_OML = $8986;
6544   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6545   GL_RESAMPLE_AVERAGE_OML = $8988;
6546   GL_RESAMPLE_DECIMATE_OML = $8989;
6547
6548   // GL_OML_subsample
6549   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6550   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6551
6552   // GL_PGI_misc_hints
6553   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6554   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6555   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6556   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6557   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6558   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6559   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6560   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6561   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6562   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6563   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6564   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6565   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6566   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6567   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6568   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6569   GL_CLIP_NEAR_HINT_PGI = $1A220;
6570   GL_CLIP_FAR_HINT_PGI = $1A221;
6571   GL_WIDE_LINE_HINT_PGI = $1A222;
6572   GL_BACK_NORMALS_HINT_PGI = $1A223;
6573
6574   // GL_PGI_vertex_hints
6575   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6576   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6577   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6578   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6579   GL_COLOR3_BIT_PGI = $00010000;
6580   GL_COLOR4_BIT_PGI = $00020000;
6581   GL_EDGEFLAG_BIT_PGI = $00040000;
6582   GL_INDEX_BIT_PGI = $00080000;
6583   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6584   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6585   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6586   GL_MAT_EMISSION_BIT_PGI = $00800000;
6587   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6588   GL_MAT_SHININESS_BIT_PGI = $02000000;
6589   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6590   GL_NORMAL_BIT_PGI = $08000000;
6591   GL_TEXCOORD1_BIT_PGI = $10000000;
6592   GL_TEXCOORD2_BIT_PGI = $20000000;
6593   GL_TEXCOORD3_BIT_PGI = $40000000;
6594   GL_TEXCOORD4_BIT_PGI = $80000000;
6595   GL_VERTEX23_BIT_PGI = $00000004;
6596   GL_VERTEX4_BIT_PGI = $00000008;
6597
6598   // GL_REND_screen_coordinates
6599   GL_SCREEN_COORDINATES_REND = $8490;
6600   GL_INVERTED_SCREEN_W_REND = $8491;
6601
6602   // GL_S3_s3tc
6603   GL_RGB_S3TC = $83A0;
6604   GL_RGB4_S3TC = $83A1;
6605   GL_RGBA_S3TC = $83A2;
6606   GL_RGBA4_S3TC = $83A3;
6607
6608   // GL_SGIS_detail_texture
6609   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6610   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6611   GL_LINEAR_DETAIL_SGIS = $8097;
6612   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6613   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6614   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6615   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6616   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6617
6618   // GL_SGIS_fog_function
6619   GL_FOG_FUNC_SGIS = $812A;
6620   GL_FOG_FUNC_POINTS_SGIS = $812B;
6621   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6622
6623   // GL_SGIS_generate_mipmap
6624   GL_GENERATE_MIPMAP_SGIS = $8191;
6625   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6626
6627   // GL_SGIS_multisample
6628   GL_MULTISAMPLE_SGIS = $809D;
6629   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6630   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6631   GL_SAMPLE_MASK_SGIS = $80A0;
6632   GL_1PASS_SGIS = $80A1;
6633   GL_2PASS_0_SGIS = $80A2;
6634   GL_2PASS_1_SGIS = $80A3;
6635   GL_4PASS_0_SGIS = $80A4;
6636   GL_4PASS_1_SGIS = $80A5;
6637   GL_4PASS_2_SGIS = $80A6;
6638   GL_4PASS_3_SGIS = $80A7;
6639   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6640   GL_SAMPLES_SGIS = $80A9;
6641   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6642   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6643   GL_SAMPLE_PATTERN_SGIS = $80AC;
6644
6645   // GL_SGIS_pixel_texture
6646   GL_PIXEL_TEXTURE_SGIS = $8353;
6647   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6648   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6649   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6650
6651   // GL_SGIS_point_line_texgen
6652   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6653   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6654   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6655   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6656   GL_EYE_POINT_SGIS = $81F4;
6657   GL_OBJECT_POINT_SGIS = $81F5;
6658   GL_EYE_LINE_SGIS = $81F6;
6659   GL_OBJECT_LINE_SGIS = $81F7;
6660
6661   // GL_SGIS_point_parameters
6662   GL_POINT_SIZE_MIN_SGIS = $8126;
6663   GL_POINT_SIZE_MAX_SGIS = $8127;
6664   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6665   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6666
6667   // GL_SGIS_sharpen_texture
6668   GL_LINEAR_SHARPEN_SGIS = $80AD;
6669   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6670   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6671   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6672
6673   // GL_SGIS_texture4D
6674   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6675   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6676   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6677   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6678   GL_TEXTURE_4D_SGIS = $8134;
6679   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6680   GL_TEXTURE_4DSIZE_SGIS = $8136;
6681   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6682   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6683   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6684
6685   // GL_SGIS_texture_color_mask
6686   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6687
6688   // GL_SGIS_texture_edge_clamp
6689   GL_CLAMP_TO_EDGE_SGIS = $812F;
6690
6691   // GL_SGIS_texture_filter4
6692   GL_FILTER4_SGIS = $8146;
6693   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6694
6695   // GL_SGIS_texture_lod
6696   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6697   GL_TEXTURE_MAX_LOD_SGIS = $813B;
6698   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
6699   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
6700
6701   // GL_SGIS_texture_select
6702   GL_DUAL_ALPHA4_SGIS = $8110;
6703   GL_DUAL_ALPHA8_SGIS = $8111;
6704   GL_DUAL_ALPHA12_SGIS = $8112;
6705   GL_DUAL_ALPHA16_SGIS = $8113;
6706   GL_DUAL_LUMINANCE4_SGIS = $8114;
6707   GL_DUAL_LUMINANCE8_SGIS = $8115;
6708   GL_DUAL_LUMINANCE12_SGIS = $8116;
6709   GL_DUAL_LUMINANCE16_SGIS = $8117;
6710   GL_DUAL_INTENSITY4_SGIS = $8118;
6711   GL_DUAL_INTENSITY8_SGIS = $8119;
6712   GL_DUAL_INTENSITY12_SGIS = $811A;
6713   GL_DUAL_INTENSITY16_SGIS = $811B;
6714   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
6715   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
6716   GL_QUAD_ALPHA4_SGIS = $811E;
6717   GL_QUAD_ALPHA8_SGIS = $811F;
6718   GL_QUAD_LUMINANCE4_SGIS = $8120;
6719   GL_QUAD_LUMINANCE8_SGIS = $8121;
6720   GL_QUAD_INTENSITY4_SGIS = $8122;
6721   GL_QUAD_INTENSITY8_SGIS = $8123;
6722   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
6723   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
6724
6725   // GL_SGIX_async
6726   GL_ASYNC_MARKER_SGIX = $8329;
6727
6728   // GL_SGIX_async_histogram
6729   GL_ASYNC_HISTOGRAM_SGIX = $832C;
6730   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
6731
6732   // GL_SGIX_async_pixel
6733   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
6734   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
6735   GL_ASYNC_READ_PIXELS_SGIX = $835E;
6736   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
6737   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
6738   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
6739
6740   // GL_SGIX_blend_alpha_minmax
6741   GL_ALPHA_MIN_SGIX = $8320;
6742   GL_ALPHA_MAX_SGIX = $8321;
6743
6744   // GL_SGIX_calligraphic_fragment
6745   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
6746
6747   // GL_SGIX_clipmap
6748   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
6749   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
6750   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
6751   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
6752   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
6753   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
6754   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
6755   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
6756   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
6757   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
6758   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
6759   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
6760
6761   // GL_SGIX_convolution_accuracy
6762   GL_CONVOLUTION_HINT_SGIX = $8316;
6763
6764   // GL_SGIX_depth_texture
6765   GL_DEPTH_COMPONENT16_SGIX = $81A5;
6766   GL_DEPTH_COMPONENT24_SGIX = $81A6;
6767   GL_DEPTH_COMPONENT32_SGIX = $81A7;
6768
6769   // GL_SGIX_fog_offset
6770   GL_FOG_OFFSET_SGIX = $8198;
6771   GL_FOG_OFFSET_VALUE_SGIX = $8199;
6772
6773   // GL_SGIX_fog_scale
6774   GL_FOG_SCALE_SGIX = $81FC;
6775   GL_FOG_SCALE_VALUE_SGIX = $81FD;
6776
6777   // GL_SGIX_fragment_lighting
6778   GL_FRAGMENT_LIGHTING_SGIX = $8400;
6779   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
6780   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
6781   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
6782   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
6783   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
6784   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
6785   GL_LIGHT_ENV_MODE_SGIX = $8407;
6786   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
6787   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
6788   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
6789   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
6790   GL_FRAGMENT_LIGHT0_SGIX = $840C;
6791   GL_FRAGMENT_LIGHT1_SGIX = $840D;
6792   GL_FRAGMENT_LIGHT2_SGIX = $840E;
6793   GL_FRAGMENT_LIGHT3_SGIX = $840F;
6794   GL_FRAGMENT_LIGHT4_SGIX = $8410;
6795   GL_FRAGMENT_LIGHT5_SGIX = $8411;
6796   GL_FRAGMENT_LIGHT6_SGIX = $8412;
6797   GL_FRAGMENT_LIGHT7_SGIX = $8413;
6798
6799   // GL_SGIX_framezoom
6800   GL_FRAMEZOOM_SGIX = $818B;
6801   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
6802   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
6803
6804   // GL_SGIX_impact_pixel_texture
6805   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
6806   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
6807   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
6808   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
6809   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
6810   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
6811   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
6812
6813   // GL_SGIX_instruments
6814   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
6815   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
6816
6817   // GL_SGIX_interlace
6818   GL_INTERLACE_SGIX = $8094;
6819
6820   // GL_SGIX_ir_instrument1
6821   GL_IR_INSTRUMENT1_SGIX = $817F;
6822
6823   // GL_SGIX_list_priority
6824   GL_LIST_PRIORITY_SGIX = $8182;
6825
6826   // GL_SGIX_pixel_texture
6827   GL_PIXEL_TEX_GEN_SGIX = $8139;
6828   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
6829
6830   // GL_SGIX_pixel_tiles
6831   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
6832   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
6833   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
6834   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
6835   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
6836   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
6837   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
6838   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
6839
6840   // GL_SGIX_polynomial_ffd
6841   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
6842   GL_TEXTURE_DEFORMATION_SGIX = $8195;
6843   GL_DEFORMATIONS_MASK_SGIX = $8196;
6844   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
6845
6846   // GL_SGIX_reference_plane
6847   GL_REFERENCE_PLANE_SGIX = $817D;
6848   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
6849
6850   // GL_SGIX_resample
6851   GL_PACK_RESAMPLE_SGIX = $842C;
6852   GL_UNPACK_RESAMPLE_SGIX = $842D;
6853   GL_RESAMPLE_REPLICATE_SGIX = $842E;
6854   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
6855   GL_RESAMPLE_DECIMATE_SGIX = $8430;
6856
6857   // GL_SGIX_scalebias_hint
6858   GL_SCALEBIAS_HINT_SGIX = $8322;
6859
6860   // GL_SGIX_shadow
6861   GL_TEXTURE_COMPARE_SGIX = $819A;
6862   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
6863   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
6864   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
6865
6866   // GL_SGIX_shadow_ambient
6867   GL_SHADOW_AMBIENT_SGIX = $80BF;
6868
6869   // GL_SGIX_sprite
6870   GL_SPRITE_SGIX = $8148;
6871   GL_SPRITE_MODE_SGIX = $8149;
6872   GL_SPRITE_AXIS_SGIX = $814A;
6873   GL_SPRITE_TRANSLATION_SGIX = $814B;
6874   GL_SPRITE_AXIAL_SGIX = $814C;
6875   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
6876   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
6877
6878   // GL_SGIX_subsample
6879   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
6880   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
6881   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
6882   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
6883   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
6884
6885   // GL_SGIX_texture_add_env
6886   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
6887
6888   // GL_SGIX_texture_coordinate_clamp
6889   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
6890   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
6891   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
6892
6893   // GL_SGIX_texture_lod_bias
6894   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
6895   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
6896   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
6897
6898   // GL_SGIX_texture_multi_buffer
6899   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
6900
6901   // GL_SGIX_texture_scale_bias
6902   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
6903   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
6904   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
6905   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
6906
6907   // GL_SGIX_vertex_preclip
6908   GL_VERTEX_PRECLIP_SGIX = $83EE;
6909   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
6910
6911   // GL_SGIX_ycrcb
6912   GL_YCRCB_422_SGIX = $81BB;
6913   GL_YCRCB_444_SGIX = $81BC;
6914
6915   // GL_SGIX_ycrcba
6916   GL_YCRCB_SGIX = $8318;
6917   GL_YCRCBA_SGIX = $8319;
6918
6919   // GL_SGI_color_matrix
6920   GL_COLOR_MATRIX_SGI = $80B1;
6921   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
6922   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
6923   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
6924   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
6925   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
6926   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
6927   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
6928   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
6929   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
6930   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
6931
6932   // GL_SGI_color_table
6933   GL_COLOR_TABLE_SGI = $80D0;
6934   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
6935   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
6936   GL_PROXY_COLOR_TABLE_SGI = $80D3;
6937   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
6938   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
6939   GL_COLOR_TABLE_SCALE_SGI = $80D6;
6940   GL_COLOR_TABLE_BIAS_SGI = $80D7;
6941   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
6942   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
6943   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
6944   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
6945   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
6946   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
6947   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
6948   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
6949
6950   // GL_SGI_depth_pass_instrument
6951   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
6952   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
6953   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
6954
6955   // GL_SGI_texture_color_table
6956   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
6957   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
6958
6959   // GL_SUNX_constant_data
6960   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
6961   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
6962
6963   // GL_SUN_convolution_border_modes
6964   GL_WRAP_BORDER_SUN = $81D4;
6965
6966   // GL_SUN_global_alpha
6967   GL_GLOBAL_ALPHA_SUN = $81D9;
6968   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
6969
6970   // GL_SUN_mesh_array
6971   GL_QUAD_MESH_SUN = $8614;
6972   GL_TRIANGLE_MESH_SUN = $8615;
6973
6974   // GL_SUN_slice_accum
6975   GL_SLICE_ACCUM_SUN = $85CC;
6976
6977   // GL_SUN_triangle_list
6978   GL_RESTART_SUN = $0001;
6979   GL_REPLACE_MIDDLE_SUN = $0002;
6980   GL_REPLACE_OLDEST_SUN = $0003;
6981   GL_TRIANGLE_LIST_SUN = $81D7;
6982   GL_REPLACEMENT_CODE_SUN = $81D8;
6983   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
6984   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
6985   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
6986   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
6987   GL_R1UI_V3F_SUN = $85C4;
6988   GL_R1UI_C4UB_V3F_SUN = $85C5;
6989   GL_R1UI_C3F_V3F_SUN = $85C6;
6990   GL_R1UI_N3F_V3F_SUN = $85C7;
6991   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
6992   GL_R1UI_T2F_V3F_SUN = $85C9;
6993   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
6994   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
6995
6996   // GL_WIN_phong_shading
6997   GL_PHONG_WIN = $80EA;
6998   GL_PHONG_HINT_WIN = $80EB;
6999
7000   // GL_WIN_specular_fog
7001   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
7002
7003   // GL_ARB_vertex_shader
7004   GL_VERTEX_SHADER_ARB = $8B31;
7005   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
7006   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
7007   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
7008   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
7009   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
7010   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
7011
7012   // GL_KHR_blend_equation_advanced
7013   GL_MULTIPLY_KHR = $9294;
7014   GL_SCREEN_KHR = $9295;
7015   GL_OVERLAY_KHR = $9296;
7016   GL_DARKEN_KHR = $9297;
7017   GL_LIGHTEN_KHR = $9298;
7018   GL_COLORDODGE_KHR = $9299;
7019   GL_COLORBURN_KHR = $929A;
7020   GL_HARDLIGHT_KHR = $929B;
7021   GL_SOFTLIGHT_KHR = $929C;
7022   GL_DIFFERENCE_KHR = $929E;
7023   GL_EXCLUSION_KHR = $92A0;
7024   GL_HSL_HUE_KHR = $92AD;
7025   GL_HSL_SATURATION_KHR = $92AE;
7026   GL_HSL_COLOR_KHR = $92AF;
7027   GL_HSL_LUMINOSITY_KHR = $92B0;
7028
7029   // GL_KHR_blend_equation_advanced_coherent
7030   GL_BLEND_ADVANCED_COHERENT_KHR = $9285;
7031
7032   // GL_KHR_robustness
7033   GL_CONTEXT_ROBUST_ACCESS = $90F3;
7034
7035   // GL_ARB_fragment_shader
7036   GL_FRAGMENT_SHADER_ARB = $8B30;
7037   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7038   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7039
7040   // GL_ARB_occlusion_query
7041   GL_SAMPLES_PASSED_ARB = $8914;
7042   GL_QUERY_COUNTER_BITS_ARB = $8864;
7043   GL_CURRENT_QUERY_ARB = $8865;
7044   GL_QUERY_RESULT_ARB = $8866;
7045   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7046
7047   // GL_ARB_pipeline_statistics_query
7048   GL_VERTICES_SUBMITTED_ARB         = $82EE;
7049   GL_PRIMITIVES_SUBMITTED_ARB       = $82EF;
7050   GL_VERTEX_SHADER_INVOCATIONS_ARB  = $82F0;
7051   GL_TESS_CONTROL_SHADER_PATCHES_ARB = $82F1;
7052   GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = $82F2;
7053   GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = $82F3;
7054   GL_FRAGMENT_SHADER_INVOCATIONS_ARB = $82F4;
7055   GL_COMPUTE_SHADER_INVOCATIONS_ARB = $82F5;
7056   GL_CLIPPING_INPUT_PRIMITIVES_ARB  = $82F6;
7057   GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = $82F7;
7058
7059   // GL_ARB_point_sprite
7060   GL_POINT_SPRITE_ARB = $8861;
7061   GL_COORD_REPLACE_ARB = $8862;
7062
7063   // GL_ARB_shading_language_100
7064   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7065
7066   // GL_ARB_shader_objects
7067   GL_PROGRAM_OBJECT_ARB = $8B40;
7068
7069   GL_OBJECT_TYPE_ARB = $8B4E;
7070   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7071   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7072   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7073   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7074   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7075   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7076   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7077   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7078   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7079   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7080
7081   GL_SHADER_OBJECT_ARB = $8B48;
7082
7083   GL_FLOAT_VEC2_ARB = $8B50;
7084   GL_FLOAT_VEC3_ARB = $8B51;
7085   GL_FLOAT_VEC4_ARB = $8B52;
7086   GL_INT_VEC2_ARB = $8B53;
7087   GL_INT_VEC3_ARB = $8B54;
7088   GL_INT_VEC4_ARB = $8B55;
7089   GL_BOOL_ARB = $8B56;
7090   GL_BOOL_VEC2_ARB = $8B57;
7091   GL_BOOL_VEC3_ARB = $8B58;
7092   GL_BOOL_VEC4_ARB = $8B59;
7093   GL_FLOAT_MAT2_ARB = $8B5A;
7094   GL_FLOAT_MAT3_ARB = $8B5B;
7095   GL_FLOAT_MAT4_ARB = $8B5C;
7096   GL_SAMPLER_1D_ARB = $8B5D;
7097   GL_SAMPLER_2D_ARB = $8B5E;
7098   GL_SAMPLER_3D_ARB = $8B5F;
7099   GL_SAMPLER_CUBE_ARB = $8B60;
7100   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7101   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7102   GL_SAMPLER_2D_RECT_ARB = $8B63;
7103   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7104
7105   // WGL_3DFX_multisample
7106   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7107   WGL_SAMPLES_3DFX = $2061;
7108
7109   // WGL_ARB_buffer_region
7110   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7111   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7112   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7113   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7114
7115   // WGL_ARB_context_flush_control
7116   WGL_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7117   WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7118   WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7119
7120   // WGL_ARB_make_current_read
7121   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7122   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7123
7124   // WGL_ARB_multisample
7125   WGL_SAMPLE_BUFFERS_ARB = $2041;
7126   WGL_SAMPLES_ARB = $2042;
7127
7128   // WGL_ARB_pbuffer
7129   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7130   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7131   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7132   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7133   WGL_PBUFFER_LARGEST_ARB = $2033;
7134   WGL_PBUFFER_WIDTH_ARB = $2034;
7135   WGL_PBUFFER_HEIGHT_ARB = $2035;
7136   WGL_PBUFFER_LOST_ARB = $2036;
7137
7138   // WGL_ARB_pixel_format
7139   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7140   WGL_DRAW_TO_WINDOW_ARB = $2001;
7141   WGL_DRAW_TO_BITMAP_ARB = $2002;
7142   WGL_ACCELERATION_ARB = $2003;
7143   WGL_NEED_PALETTE_ARB = $2004;
7144   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7145   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7146   WGL_SWAP_METHOD_ARB = $2007;
7147   WGL_NUMBER_OVERLAYS_ARB = $2008;
7148   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7149   WGL_TRANSPARENT_ARB = $200A;
7150   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7151   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7152   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7153   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7154   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7155   WGL_SHARE_DEPTH_ARB = $200C;
7156   WGL_SHARE_STENCIL_ARB = $200D;
7157   WGL_SHARE_ACCUM_ARB = $200E;
7158   WGL_SUPPORT_GDI_ARB = $200F;
7159   WGL_SUPPORT_OPENGL_ARB = $2010;
7160   WGL_DOUBLE_BUFFER_ARB = $2011;
7161   WGL_STEREO_ARB = $2012;
7162   WGL_PIXEL_TYPE_ARB = $2013;
7163   WGL_COLOR_BITS_ARB = $2014;
7164   WGL_RED_BITS_ARB = $2015;
7165   WGL_RED_SHIFT_ARB = $2016;
7166   WGL_GREEN_BITS_ARB = $2017;
7167   WGL_GREEN_SHIFT_ARB = $2018;
7168   WGL_BLUE_BITS_ARB = $2019;
7169   WGL_BLUE_SHIFT_ARB = $201A;
7170   WGL_ALPHA_BITS_ARB = $201B;
7171   WGL_ALPHA_SHIFT_ARB = $201C;
7172   WGL_ACCUM_BITS_ARB = $201D;
7173   WGL_ACCUM_RED_BITS_ARB = $201E;
7174   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7175   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7176   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7177   WGL_DEPTH_BITS_ARB = $2022;
7178   WGL_STENCIL_BITS_ARB = $2023;
7179   WGL_AUX_BUFFERS_ARB = $2024;
7180   WGL_NO_ACCELERATION_ARB = $2025;
7181   WGL_GENERIC_ACCELERATION_ARB = $2026;
7182   WGL_FULL_ACCELERATION_ARB = $2027;
7183   WGL_SWAP_EXCHANGE_ARB = $2028;
7184   WGL_SWAP_COPY_ARB = $2029;
7185   WGL_SWAP_UNDEFINED_ARB = $202A;
7186   WGL_TYPE_RGBA_ARB = $202B;
7187   WGL_TYPE_COLORINDEX_ARB = $202C;
7188
7189   // WGL_ARB_pixel_format_float
7190   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7191   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7192   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7193   WGL_CLAMP_READ_COLOR_ARB = $891C;
7194   WGL_FIXED_ONLY_ARB = $891D;
7195
7196   // WGL_ARB_render_texture
7197   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7198   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7199   WGL_TEXTURE_FORMAT_ARB = $2072;
7200   WGL_TEXTURE_TARGET_ARB = $2073;
7201   WGL_MIPMAP_TEXTURE_ARB = $2074;
7202   WGL_TEXTURE_RGB_ARB = $2075;
7203   WGL_TEXTURE_RGBA_ARB = $2076;
7204   WGL_NO_TEXTURE_ARB = $2077;
7205   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7206   WGL_TEXTURE_1D_ARB = $2079;
7207   WGL_TEXTURE_2D_ARB = $207A;
7208   WGL_MIPMAP_LEVEL_ARB = $207B;
7209   WGL_CUBE_MAP_FACE_ARB = $207C;
7210   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7211   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7212   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7213   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7214   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7215   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7216   WGL_FRONT_LEFT_ARB = $2083;
7217   WGL_FRONT_RIGHT_ARB = $2084;
7218   WGL_BACK_LEFT_ARB = $2085;
7219   WGL_BACK_RIGHT_ARB = $2086;
7220   WGL_AUX0_ARB = $2087;
7221   WGL_AUX1_ARB = $2088;
7222   WGL_AUX2_ARB = $2089;
7223   WGL_AUX3_ARB = $208A;
7224   WGL_AUX4_ARB = $208B;
7225   WGL_AUX5_ARB = $208C;
7226   WGL_AUX6_ARB = $208D;
7227   WGL_AUX7_ARB = $208E;
7228   WGL_AUX8_ARB = $208F;
7229   WGL_AUX9_ARB = $2090;
7230
7231   // WGL_ARB_robustness_application_isolation
7232   WGL_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7233
7234   // WGL_ARB_create_context
7235   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7236   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7237   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7238   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7239   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7240   WGL_CONTEXT_FLAGS_ARB = $2094;
7241   ERROR_INVALID_VERSION_ARB = $2095;
7242
7243   // WGL_ARB_create_context_profile
7244   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7245   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7246   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7247   ERROR_INVALID_PROFILE_ARB = $2096;
7248
7249   // WGL_ARB_framebuffer_sRGB
7250   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7251
7252   // WGL_ARB_create_context_robustness
7253   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7254   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7255   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7256   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7257
7258   // WGL_ATI_pixel_format_float
7259   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7260   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7261   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7262
7263   // WGL_AMD_gpu_association
7264   WGL_GPU_VENDOR_AMD = $1F00;
7265   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7266   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7267   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7268   WGL_GPU_RAM_AMD = $21A3;
7269   WGL_GPU_CLOCK_AMD = $21A4;
7270   WGL_GPU_NUM_PIPES_AMD = $21A5;
7271   WGL_GPU_NUM_SIMD_AMD = $21A6;
7272   WGL_GPU_NUM_RB_AMD = $21A7;
7273   WGL_GPU_NUM_SPI_AMD = $21A8;
7274
7275   // WGL_EXT_depth_float
7276   WGL_DEPTH_FLOAT_EXT = $2040;
7277
7278   // WGL_EXT_make_current_read
7279   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7280
7281   // WGL_EXT_multisample
7282   WGL_SAMPLE_BUFFERS_EXT = $2041;
7283   WGL_SAMPLES_EXT = $2042;
7284
7285   // WGL_EXT_pbuffer
7286   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7287   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7288   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7289   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7290   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7291   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7292   WGL_PBUFFER_LARGEST_EXT = $2033;
7293   WGL_PBUFFER_WIDTH_EXT = $2034;
7294   WGL_PBUFFER_HEIGHT_EXT = $2035;
7295
7296   // WGL_EXT_pixel_format
7297   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7298   WGL_DRAW_TO_WINDOW_EXT = $2001;
7299   WGL_DRAW_TO_BITMAP_EXT = $2002;
7300   WGL_ACCELERATION_EXT = $2003;
7301   WGL_NEED_PALETTE_EXT = $2004;
7302   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7303   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7304   WGL_SWAP_METHOD_EXT = $2007;
7305   WGL_NUMBER_OVERLAYS_EXT = $2008;
7306   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7307   WGL_TRANSPARENT_EXT = $200A;
7308   WGL_TRANSPARENT_VALUE_EXT = $200B;
7309   WGL_SHARE_DEPTH_EXT = $200C;
7310   WGL_SHARE_STENCIL_EXT = $200D;
7311   WGL_SHARE_ACCUM_EXT = $200E;
7312   WGL_SUPPORT_GDI_EXT = $200F;
7313   WGL_SUPPORT_OPENGL_EXT = $2010;
7314   WGL_DOUBLE_BUFFER_EXT = $2011;
7315   WGL_STEREO_EXT = $2012;
7316   WGL_PIXEL_TYPE_EXT = $2013;
7317   WGL_COLOR_BITS_EXT = $2014;
7318   WGL_RED_BITS_EXT = $2015;
7319   WGL_RED_SHIFT_EXT = $2016;
7320   WGL_GREEN_BITS_EXT = $2017;
7321   WGL_GREEN_SHIFT_EXT = $2018;
7322   WGL_BLUE_BITS_EXT = $2019;
7323   WGL_BLUE_SHIFT_EXT = $201A;
7324   WGL_ALPHA_BITS_EXT = $201B;
7325   WGL_ALPHA_SHIFT_EXT = $201C;
7326   WGL_ACCUM_BITS_EXT = $201D;
7327   WGL_ACCUM_RED_BITS_EXT = $201E;
7328   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7329   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7330   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7331   WGL_DEPTH_BITS_EXT = $2022;
7332   WGL_STENCIL_BITS_EXT = $2023;
7333   WGL_AUX_BUFFERS_EXT = $2024;
7334   WGL_NO_ACCELERATION_EXT = $2025;
7335   WGL_GENERIC_ACCELERATION_EXT = $2026;
7336   WGL_FULL_ACCELERATION_EXT = $2027;
7337   WGL_SWAP_EXCHANGE_EXT = $2028;
7338   WGL_SWAP_COPY_EXT = $2029;
7339   WGL_SWAP_UNDEFINED_EXT = $202A;
7340   WGL_TYPE_RGBA_EXT = $202B;
7341   WGL_TYPE_COLORINDEX_EXT = $202C;
7342
7343   // WGL_I3D_digital_video_control
7344   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7345   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7346   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7347   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7348
7349   // WGL_I3D_gamma
7350   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7351   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7352
7353   // WGL_I3D_genlock
7354   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7355   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7356   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7357   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7358   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7359   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7360   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7361   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7362   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7363
7364   // WGL_I3D_image_buffer
7365   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7366   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7367
7368   // WGL_NV_float_buffer
7369   WGL_FLOAT_COMPONENTS_NV = $20B0;
7370   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7371   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7372   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7373   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7374   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7375   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7376   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7377   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7378
7379   // WGL_NV_render_depth_texture
7380   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7381   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7382   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7383   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7384   WGL_DEPTH_COMPONENT_NV = $20A7;
7385
7386   // WGL_NV_render_texture_rectangle
7387   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7388   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7389   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7390
7391   // WGL_NV_present_video
7392   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7393
7394   // WGL_NV_video_output
7395   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7396   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7397   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7398   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7399   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7400   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7401   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7402   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7403   WGL_VIDEO_OUT_FRAME = $20C8;
7404   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7405   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7406   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7407   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7408
7409   // WGL_NV_gpu_affinity
7410   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7411   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7412
7413   // WGL_NV_video_capture
7414   WGL_UNIQUE_ID_NV = $20CE;
7415   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7416
7417   // WGL_NV_multisample_coverage
7418   WGL_COVERAGE_SAMPLES_NV = $2042;
7419   WGL_COLOR_SAMPLES_NV = $20B9;
7420
7421   // WGL_EXT_create_context_es2_profile
7422   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7423
7424   // WGL_NV_DX_interop
7425   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7426   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7427   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7428
7429   // WIN_draw_range_elements
7430   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7431   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7432
7433   // GLX 1.1 and later:
7434   GLX_VENDOR = 1;
7435   GLX_VERSION = 2;
7436   GLX_EXTENSIONS = 3;
7437
7438   GLX_USE_GL = 1;
7439   GLX_BUFFER_SIZE = 2;
7440   GLX_LEVEL = 3;
7441   GLX_RGBA = 4;
7442   GLX_DOUBLEBUFFER = 5;
7443   GLX_STEREO = 6;
7444   GLX_AUX_BUFFERS = 7;
7445   GLX_RED_SIZE = 8;
7446   GLX_GREEN_SIZE = 9;
7447   GLX_BLUE_SIZE = 10;
7448   GLX_ALPHA_SIZE = 11;
7449   GLX_DEPTH_SIZE = 12;
7450   GLX_STENCIL_SIZE = 13;
7451   GLX_ACCUM_RED_SIZE = 14;
7452   GLX_ACCUM_GREEN_SIZE = 15;
7453   GLX_ACCUM_BLUE_SIZE = 16;
7454   GLX_ACCUM_ALPHA_SIZE = 17;
7455
7456   // GLX_VERSION_1_3
7457   GLX_WINDOW_BIT = $00000001;
7458   GLX_PIXMAP_BIT = $00000002;
7459   GLX_PBUFFER_BIT = $00000004;
7460   GLX_RGBA_BIT = $00000001;
7461   GLX_COLOR_INDEX_BIT = $00000002;
7462   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7463   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7464   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7465   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7466   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7467   GLX_AUX_BUFFERS_BIT = $00000010;
7468   GLX_DEPTH_BUFFER_BIT = $00000020;
7469   GLX_STENCIL_BUFFER_BIT = $00000040;
7470   GLX_ACCUM_BUFFER_BIT = $00000080;
7471   GLX_CONFIG_CAVEAT = $20;
7472   GLX_X_VISUAL_TYPE = $22;
7473   GLX_TRANSPARENT_TYPE = $23;
7474   GLX_TRANSPARENT_INDEX_VALUE = $24;
7475   GLX_TRANSPARENT_RED_VALUE = $25;
7476   GLX_TRANSPARENT_GREEN_VALUE = $26;
7477   GLX_TRANSPARENT_BLUE_VALUE = $27;
7478   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7479   GLX_DONT_CARE = $FFFFFFFF;
7480   GLX_NONE = $8000;
7481   GLX_SLOW_CONFIG = $8001;
7482   GLX_TRUE_COLOR = $8002;
7483   GLX_DIRECT_COLOR = $8003;
7484   GLX_PSEUDO_COLOR = $8004;
7485   GLX_STATIC_COLOR = $8005;
7486   GLX_GRAY_SCALE = $8006;
7487   GLX_STATIC_GRAY = $8007;
7488   GLX_TRANSPARENT_RGB = $8008;
7489   GLX_TRANSPARENT_INDEX = $8009;
7490   GLX_VISUAL_ID = $800B;
7491   GLX_SCREEN = $800C;
7492   GLX_NON_CONFORMANT_CONFIG = $800D;
7493   GLX_DRAWABLE_TYPE = $8010;
7494   GLX_RENDER_TYPE = $8011;
7495   GLX_X_RENDERABLE = $8012;
7496   GLX_FBCONFIG_ID = $8013;
7497   GLX_RGBA_TYPE = $8014;
7498   GLX_COLOR_INDEX_TYPE = $8015;
7499   GLX_MAX_PBUFFER_WIDTH = $8016;
7500   GLX_MAX_PBUFFER_HEIGHT = $8017;
7501   GLX_MAX_PBUFFER_PIXELS = $8018;
7502   GLX_PRESERVED_CONTENTS = $801B;
7503   GLX_LARGEST_PBUFFER = $801C;
7504   GLX_WIDTH = $801D;
7505   GLX_HEIGHT = $801E;
7506   GLX_EVENT_MASK = $801F;
7507   GLX_DAMAGED = $8020;
7508   GLX_SAVED = $8021;
7509   GLX_WINDOW = $8022;
7510   GLX_PBUFFER = $8023;
7511   GLX_PBUFFER_HEIGHT = $8040;
7512   GLX_PBUFFER_WIDTH = $8041;
7513
7514   // GLX_VERSION_1_4
7515   GLX_SAMPLE_BUFFERS = 100000;
7516   GLX_SAMPLES = 100001;
7517
7518   // GLX_ARB_multisample
7519   GLX_SAMPLE_BUFFERS_ARB = 100000;
7520   GLX_SAMPLES_ARB = 100001;
7521
7522   // GLX_ARB_robustness_application_isolation
7523   GLX_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7524
7525   // GLX_ARB_fbconfig_float
7526   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7527   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7528
7529   // GLX_ARB_context_flush_control
7530   GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7531   GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7532   GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7533
7534   // GLX_ARB_create_context
7535   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7536   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7537   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7538   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7539   GLX_CONTEXT_FLAGS_ARB = $2094;
7540
7541   // GLX_ARB_create_context_profile
7542   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7543   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7544   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7545
7546   // GLX_ARB_vertex_buffer_object
7547   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7548
7549   // GLX_ARB_framebuffer_sRGB
7550   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7551
7552   // GLX_ARB_create_context_robustness
7553   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7554   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7555   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7556   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7557
7558   // GLX_EXT_visual_info
7559   GLX_X_VISUAL_TYPE_EXT = $22;
7560   GLX_TRANSPARENT_TYPE_EXT = $23;
7561   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7562   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7563   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7564   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7565   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7566   GLX_NONE_EXT = $8000;
7567   GLX_TRUE_COLOR_EXT = $8002;
7568   GLX_DIRECT_COLOR_EXT = $8003;
7569   GLX_PSEUDO_COLOR_EXT = $8004;
7570   GLX_STATIC_COLOR_EXT = $8005;
7571   GLX_GRAY_SCALE_EXT = $8006;
7572   GLX_STATIC_GRAY_EXT = $8007;
7573   GLX_TRANSPARENT_RGB_EXT = $8008;
7574   GLX_TRANSPARENT_INDEX_EXT = $8009;
7575
7576   // GLX_EXT_visual_rating
7577   GLX_VISUAL_CAVEAT_EXT = $20;
7578   GLX_SLOW_VISUAL_EXT = $8001;
7579   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7580   (* reuse GLX_NONE_EXT *)
7581
7582   // GLX_EXT_import_context
7583   GLX_SHARE_CONTEXT_EXT = $800A;
7584   GLX_VISUAL_ID_EXT = $800B;
7585   GLX_SCREEN_EXT = $800C;
7586
7587   // GLX_EXT_fbconfig_packed_float
7588 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7589 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7590
7591   // GLX_EXT_framebuffer_sRGB
7592 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7593
7594   // GLX_EXT_texture_from_pixmap
7595   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7596   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7597   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7598   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7599   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7600   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7601   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7602   GLX_Y_INVERTED_EXT = $20D4;
7603   GLX_TEXTURE_FORMAT_EXT = $20D5;
7604   GLX_TEXTURE_TARGET_EXT = $20D6;
7605   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7606   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7607   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7608   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7609   GLX_TEXTURE_1D_EXT = $20DB;
7610   GLX_TEXTURE_2D_EXT = $20DC;
7611   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7612   GLX_FRONT_LEFT_EXT = $20DE;
7613   GLX_FRONT_RIGHT_EXT = $20DF;
7614   GLX_BACK_LEFT_EXT = $20E0;
7615   GLX_BACK_RIGHT_EXT = $20E1;
7616   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7617   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7618   GLX_AUX0_EXT = $20E2;
7619   GLX_AUX1_EXT = $20E3;
7620   GLX_AUX2_EXT = $20E4;
7621   GLX_AUX3_EXT = $20E5;
7622   GLX_AUX4_EXT = $20E6;
7623   GLX_AUX5_EXT = $20E7;
7624   GLX_AUX6_EXT = $20E8;
7625   GLX_AUX7_EXT = $20E9;
7626   GLX_AUX8_EXT = $20EA;
7627   GLX_AUX9_EXT = $20EB;
7628
7629   // GLX_EXT_swap_control
7630   GLX_SWAP_INTERVAL_EXT = $20F1;
7631   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7632
7633   // GLX_EXT_create_context_es2_profile
7634   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7635
7636   // GL_EXT_Late_Swaps
7637   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7638
7639   // GLU
7640   GLU_INVALID_ENUM = 100900;
7641   GLU_INVALID_VALUE = 100901;
7642   GLU_OUT_OF_MEMORY = 100902;
7643   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7644   GLU_VERSION = 100800;
7645   GLU_EXTENSIONS = 100801;
7646   GLU_TRUE: ByteBool = True;
7647   GLU_FALSE: ByteBool = False;
7648   GLU_SMOOTH = 100000;
7649   GLU_FLAT = 100001;
7650   GLU_NONE = 100002;
7651   GLU_POINT = 100010;
7652   GLU_LINE = 100011;
7653   GLU_FILL = 100012;
7654   GLU_SILHOUETTE = 100013;
7655   GLU_OUTSIDE = 100020;
7656   GLU_INSIDE = 100021;
7657   GLU_TESS_MAX_COORD = 1.0E150;
7658   GLU_TESS_WINDING_RULE = 100140;
7659   GLU_TESS_BOUNDARY_ONLY = 100141;
7660   GLU_TESS_TOLERANCE = 100142;
7661   GLU_TESS_WINDING_ODD = 100130;
7662   GLU_TESS_WINDING_NONZERO = 100131;
7663   GLU_TESS_WINDING_POSITIVE = 100132;
7664   GLU_TESS_WINDING_NEGATIVE = 100133;
7665   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7666   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7667   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7668   GLU_TESS_END = 100102; // TGLUTessEndProc
7669   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7670   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7671   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7672   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7673   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7674   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7675   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7676   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7677   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7678   GLU_TESS_ERROR1 = 100151;
7679   GLU_TESS_ERROR2 = 100152;
7680   GLU_TESS_ERROR3 = 100153;
7681   GLU_TESS_ERROR4 = 100154;
7682   GLU_TESS_ERROR5 = 100155;
7683   GLU_TESS_ERROR6 = 100156;
7684   GLU_TESS_ERROR7 = 100157;
7685   GLU_TESS_ERROR8 = 100158;
7686   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7687   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7688   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7689   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7690   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7691   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7692   GLU_AUTO_LOAD_MATRIX = 100200;
7693   GLU_CULLING = 100201;
7694   GLU_SAMPLING_TOLERANCE = 100203;
7695   GLU_DISPLAY_MODE = 100204;
7696   GLU_PARAMETRIC_TOLERANCE = 100202;
7697   GLU_SAMPLING_METHOD = 100205;
7698   GLU_U_STEP = 100206;
7699   GLU_V_STEP = 100207;
7700   GLU_PATH_LENGTH = 100215;
7701   GLU_PARAMETRIC_ERROR = 100216;
7702   GLU_DOMAIN_DISTANCE = 100217;
7703   GLU_MAP1_TRIM_2 = 100210;
7704   GLU_MAP1_TRIM_3 = 100211;
7705   GLU_OUTLINE_POLYGON = 100240;
7706   GLU_OUTLINE_PATCH = 100241;
7707   GLU_NURBS_ERROR1 = 100251;
7708   GLU_NURBS_ERROR2 = 100252;
7709   GLU_NURBS_ERROR3 = 100253;
7710   GLU_NURBS_ERROR4 = 100254;
7711   GLU_NURBS_ERROR5 = 100255;
7712   GLU_NURBS_ERROR6 = 100256;
7713   GLU_NURBS_ERROR7 = 100257;
7714   GLU_NURBS_ERROR8 = 100258;
7715   GLU_NURBS_ERROR9 = 100259;
7716   GLU_NURBS_ERROR10 = 100260;
7717   GLU_NURBS_ERROR11 = 100261;
7718   GLU_NURBS_ERROR12 = 100262;
7719   GLU_NURBS_ERROR13 = 100263;
7720   GLU_NURBS_ERROR14 = 100264;
7721   GLU_NURBS_ERROR15 = 100265;
7722   GLU_NURBS_ERROR16 = 100266;
7723   GLU_NURBS_ERROR17 = 100267;
7724   GLU_NURBS_ERROR18 = 100268;
7725   GLU_NURBS_ERROR19 = 100269;
7726   GLU_NURBS_ERROR20 = 100270;
7727   GLU_NURBS_ERROR21 = 100271;
7728   GLU_NURBS_ERROR22 = 100272;
7729   GLU_NURBS_ERROR23 = 100273;
7730   GLU_NURBS_ERROR24 = 100274;
7731   GLU_NURBS_ERROR25 = 100275;
7732   GLU_NURBS_ERROR26 = 100276;
7733   GLU_NURBS_ERROR27 = 100277;
7734   GLU_NURBS_ERROR28 = 100278;
7735   GLU_NURBS_ERROR29 = 100279;
7736   GLU_NURBS_ERROR30 = 100280;
7737   GLU_NURBS_ERROR31 = 100281;
7738   GLU_NURBS_ERROR32 = 100282;
7739   GLU_NURBS_ERROR33 = 100283;
7740   GLU_NURBS_ERROR34 = 100284;
7741   GLU_NURBS_ERROR35 = 100285;
7742   GLU_NURBS_ERROR36 = 100286;
7743   GLU_NURBS_ERROR37 = 100287;
7744   GLU_CW = 100120;
7745   GLU_CCW = 100121;
7746   GLU_INTERIOR = 100122;
7747   GLU_EXTERIOR = 100123;
7748   GLU_UNKNOWN = 100124;
7749   GLU_BEGIN = GLU_TESS_BEGIN;
7750   GLU_VERTEX = GLU_TESS_VERTEX;
7751   GLU_END = GLU_TESS_END;
7752   GLU_ERROR = GLU_TESS_ERROR;
7753   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7754
7755 type
7756   // GL_VERSION_1_0
7757   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7758   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7759   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7760   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7761   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7762   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7763   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7764   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7765   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7766   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7767   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7768   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}
7769   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}
7770   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7771   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7772   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7773   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7774   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7775   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7776   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7777   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7778   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7779   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7780   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7781   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7782   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7783   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7784   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7785   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7786   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7787   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7788   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7789   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7790   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7791   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7792   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7793   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7794   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7795   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7796   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7797   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7798   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7799   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7800   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7801   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7802   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7803   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7804   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7805
7806   // GL_VERSION_1_1
7807   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7808   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7809   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7810   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7811   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7812   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}
7813   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7814   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}
7815   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7816   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}
7817   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7818   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7819   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7820
7821 {$ifdef DGL_DEPRECATED}
7822   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7823   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7824   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7825   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7826   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
7827   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7828   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7829   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7830   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7831   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7832   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7833   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7834   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7835   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7836   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7837   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7838   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7839   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7840   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7841   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7842   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7843   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7844   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7845   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7846   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7847   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7848   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7849   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7850   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7851   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7852   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7853   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7854   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7855   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7856   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7857   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7858   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7859   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7860   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7861   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7862   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7863   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7864   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7865   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7866   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7867   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7868   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7869   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7870   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7871   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7872   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7873   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7874   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7875   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7876   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7877   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7878   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7879   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7880   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7881   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7882   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7883   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7884   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7885   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7886   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7887   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7888   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7889   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7890   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7891   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7892   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7893   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7894   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7895   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7896   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7897   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7898   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7899   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7900   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7901   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7902   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7903   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7904   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7905   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7906   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7907   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7908   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7909   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7910   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7911   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7912   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7913   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7914   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7915   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7916   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7917   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7918   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7919   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7920   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7921   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7922   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7923   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7924   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7925   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7926   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7927   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7928   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7929   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7930   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7931   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7932   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7933   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7934   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7935   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7936   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7937   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7938   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7939   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7940   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7941   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7942   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7943   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7944   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7945   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}
7946   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}
7947   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7948   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7949   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7950   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7951   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7952   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7953   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7954   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7955   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7956   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7957   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7958   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7959   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7960   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7961   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7962   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7963   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7964   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7965   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7966   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7967   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7968   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7969   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7970   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7971   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7972   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7973   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7974   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7975   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7976   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7977   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7978   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7979   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7980   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7981   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7982   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7983   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7984   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7985   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7986   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7987   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7988   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7999   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8000   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8001   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8037   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8052   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8057   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8058   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8064   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8065   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8066   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070
8071
8072   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8073   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8078   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8084   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8085   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8086   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8093   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8094   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8095   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099 {$endif}
8100
8101   // GL_VERSION_1_2
8102   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8103   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   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}
8106   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}
8107   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}
8108 {$ifdef DGL_DEPRECATED}
8109   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8125   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8126   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8128   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8129   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   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}
8131   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8132   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8135   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8136   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8137   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8138   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8141 {$endif}
8142
8143   // GL_VERSION_1_3
8144   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8145   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146   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}
8147   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}
8148   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8149   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}
8150   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}
8151   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8152   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153 {$ifdef DGL_DEPRECATED}
8154   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8176   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8177   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8178   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8185   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8186   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8187   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191 {$endif}
8192
8193   // GL_VERSION_1_4
8194   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8195   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201 {$ifdef DGL_DEPRECATED}
8202   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8234   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8235   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8236   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240 {$endif}
8241
8242   // GL_VERSION_1_5
8243   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8256   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8257   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8258   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262
8263   // GL_VERSION_2_0
8264   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8265   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   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}
8280   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}
8281   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8302   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8331   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8332   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8336   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8337   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8338   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8339   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8350   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8351   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8352   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8353   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356
8357   // GL_VERSION_2_1
8358   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8359   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8360   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8361   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8362   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8363   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8364
8365   // GL_VERSION_3_0
8366   { OpenGL 3.0 also reuses entry points from these extensions: }
8367   { ARB_framebuffer_object }
8368   { ARB_map_buffer_range }
8369   { ARB_vertex_array_object }
8370   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8373   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8374   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8378   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8381   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8382   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8413   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8414   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8421   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8422   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8423   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8424   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8425   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8427   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8428
8429   // GL_VERSION_2_1
8430   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8431   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8432   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}
8433
8434   // GL_VERSION_3_1
8435   { OpenGL 3.1 also reuses entry points from these extensions: }
8436   { ARB_copy_buffer }
8437   { ARB_uniform_buffer_object }
8438   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8439   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8440   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8441   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8442
8443   // GL_VERSION_3_2
8444   { OpenGL 3.2 also reuses entry points from these extensions: }
8445   { ARB_draw_elements_base_vertex }
8446   { ARB_provoking_vertex }
8447   { ARB_sync }
8448   { ARB_texture_multisample }
8449   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8450   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8451   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8452 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8453
8454   // GL_VERSION_3_3
8455   { OpenGL 3.3 also reuses entry points from these extensions: }
8456   { ARB_blend_func_extended }
8457   { ARB_sampler_objects }
8458   { ARB_explicit_attrib_location, but it has none }
8459   { ARB_occlusion_query2 (no entry points) }
8460   { ARB_shader_bit_encoding (no entry points) }
8461   { ARB_texture_rgb10_a2ui (no entry points) }
8462   { ARB_texture_swizzle (no entry points) }
8463   { ARB_timer_query }
8464   { ARB_vertex_type_2_10_10_10_rev }
8465   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8466
8467   // GL_VERSION_4_0
8468   { OpenGL 4.0 also reuses entry points from these extensions: }
8469   { ARB_texture_query_lod (no entry points) }
8470   { ARB_draw_indirect }
8471   { ARB_gpu_shader5 (no entry points) }
8472   { ARB_gpu_shader_fp64 }
8473   { ARB_shader_subroutine }
8474   { ARB_tessellation_shader }
8475   { ARB_texture_buffer_object_rgb32 (no entry points) }
8476   { ARB_texture_cube_map_array (no entry points) }
8477   { ARB_texture_gather (no entry points) }
8478   { ARB_transform_feedback2 }
8479   { ARB_transform_feedback3 }
8480   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8481   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8482   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8483   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8484   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8485
8486   // GL_VERSION_4_1
8487   { OpenGL 4.1 also reuses entry points from these extensions: }
8488   { ARB_ES2_compatibility }
8489   { ARB_get_program_binary }
8490   { ARB_separate_shader_objects }
8491   { ARB_shader_precision (no entry points) }
8492   { ARB_vertex_attrib_64bit }
8493   { ARB_viewport_array }
8494
8495   // GL_3DFX_tbuffer
8496   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8497
8498   // GL_APPLE_element_array
8499   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8500   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8504
8505   // GL_APPLE_fence
8506   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8508   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8509   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8510   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8511   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8514
8515   // GL_APPLE_vertex_array_object
8516   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8517   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8519   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8520
8521   // GL_APPLE_vertex_array_range
8522   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8523   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8524   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8525
8526   // GL_APPLE_texture_range
8527   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8528   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8529
8530   // GL_APPLE_vertex_program_evaluators
8531   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8532   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8533   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8535   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8536   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}
8537   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}
8538
8539   // GL_APPLE_object_purgeable
8540   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543
8544   // GL_ARB_matrix_palette
8545   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8546   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8547   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8548   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8549   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550
8551   // GL_ARB_multisample
8552   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8553
8554   // GL_ARB_multitexture
8555   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8574   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8575   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8578   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8581   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8583   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8584   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8587   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8588   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8589
8590   // GL_ARB_point_parameters
8591   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8592   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8593
8594   // GL_ARB_texture_compression
8595   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}
8596   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}
8597   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8598   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}
8599   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}
8600   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8601   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8602
8603   // GL_ARB_transpose_matrix
8604   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8605   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8608
8609   // GL_ARB_vertex_blend
8610   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8614   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8615   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8616   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8618   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8619   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8620
8621   // GL_ARB_vertex_buffer_object
8622   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8627   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8628   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633
8634   // GL_ARB_vertex_program
8635   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8660   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8664   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8665   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8666   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8667   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8668   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8674   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8675   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8676   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8677   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8678   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8679   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8680   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8684   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8685   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8686   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8687   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8688   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8689   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8690   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8691   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8692   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8693   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8694   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8695   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8696   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8697
8698   // GL_ARB_window_pos
8699   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8700   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8701   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8702   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8703   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8704   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8705   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8706   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8707   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8708   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8709   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8710   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8711   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8712   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8713   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8714   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8715
8716   // GL_ARB_draw_buffers
8717   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8718
8719   // GL_ARB_color_buffer_float
8720   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8721
8722   // GL_ARB_vertex_shader
8723   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}
8724   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8725   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8726
8727   // GL_ARB_shader_objects
8728   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8729   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8730   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8736   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8737   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8742   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8745   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8746   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8747   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8752   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8753   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8756   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8757   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8758   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8760   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8761   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8762   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8763   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}
8764   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8766   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8767
8768   // GL_ARB_Occlusion_Query
8769   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8770   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8771   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8772   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8773   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8775   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8776   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8777
8778   // GL_ARB_draw_instanced
8779   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8780   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8781
8782   // GL_ARB_framebuffer_object
8783   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8784   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8785   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8788   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8789   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8791   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8795   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8796   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8797   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8798   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8799   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   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}
8801   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8802   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8803
8804   // GL_ARB_geometry_shader4
8805   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8806   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8807   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8808   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809
8810   // GL_ARB_instanced_arrays
8811   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8812
8813   // GL_ARB_map_buffer_range
8814   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8815   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8816
8817   // GL_ARB_texture_buffer_object
8818   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8819
8820   // GL_ARB_vertex_array_object
8821   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8822   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8823   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8824   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8825
8826   // GL_ARB_uniform_buffer_object
8827   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8828   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8829   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8830   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8831   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8832   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8833   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8834
8835   // GL_ARB_copy_buffer
8836   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8837
8838   // GL_ARB_draw_elements_base_vertex
8839   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8840   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8841   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8842   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843
8844   // GL_ARB_provoking_vertex
8845   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8846
8847   // GL_ARB_sync
8848   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8849   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8850   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8851   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8852   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8853   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8854   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8855
8856   // GL_ARB_texture_multisample
8857   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8858   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8860   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8861
8862   // GL_ARB_draw_buffers_blend
8863   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8864   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8865   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8866   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8867
8868   // GL_ARB_sample_shading
8869   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8870
8871   // GL_ARB_shading_language_include
8872   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8873   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8876   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8877   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8878
8879   // GL_ARB_blend_func_extended
8880   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8881   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8882
8883   // GL_ARB_sampler_objects
8884   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8885   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8892   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8893   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8897   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8898
8899   // GL_ARB_timer_query
8900   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903
8904   // GL_ARB_vertex_type_2_10_10_10_rev
8905   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8928   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8929   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8937   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8938   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8941   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8942   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8943
8944   // GL_ARB_draw_indirect
8945   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8946   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8947
8948   // GL_ARB_gpu_shader_fp64
8949   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8950   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8952   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8953   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8954   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8957   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8958   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8961   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8962   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8963   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8966   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8967
8968   // GL_ARB_shader_subroutine
8969   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8970   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8971   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8972   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8973   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8975   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8976   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8977
8978   // GL_ARB_tessellation_shader
8979   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8980   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8981
8982   // GL_ARB_transform_feedback2
8983   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8984   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8985   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8988   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8989   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8990
8991   // GL_ARB_transform_feedback3
8992   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8993   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8994   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8995   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996
8997   // GL_ARB_ES2_compatibility
8998   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8999   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9002   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9003
9004   // GL_ARB_get_program_binary
9005   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9008
9009   // GL_ARB_separate_shader_objects
9010   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9013   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9034   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9035   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9041   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9044   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9048   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9049   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9050   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9051   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9052   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9055   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9056   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9057   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9061   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9062   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9064   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9065   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9066   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9067   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9068   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9069   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9070
9071   // GL_ARB_vertex_attrib_64bit
9072   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9073   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9074   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9075   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9076   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9077   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9078   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9079   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9080   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9081   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9082
9083   // GL_ARB_viewport_array
9084   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9085   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9086   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9087   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9088   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9089   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9090   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9091   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9092   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9093   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9094
9095   // GL 4.2
9096
9097   // GL_ARB_base_instance
9098   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9099   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9100   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9101
9102   // GL_ARB_transform_feedback_instanced
9103   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9104   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9105
9106   // GL_ARB_internalformat_query
9107   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9108
9109   // GL_ARB_shader_atomic_counters
9110   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9111
9112   /// GL_ARB_shader_image_load_store
9113   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9114   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9115
9116   // GL_ARB_texture_storage
9117   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9118   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9119   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9120   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9121   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9122   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9123
9124
9125   // GL 4.3
9126
9127   // GL_KHR_debug
9128   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9129   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9130   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9131   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}
9132   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9133   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9134   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9135   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9136   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9137   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9138
9139   // GL_ARB_clear_buffer_object
9140   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9141   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9142   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9143   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9144
9145   // GL_ARB_compute_shader
9146   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9147   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9148
9149   // GL_ARB_copy_image
9150   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}
9151
9152   // GL_ARB_debug_group
9153   // ARB_debug_group reuses entry points from KHR_debug
9154
9155   // GL_ARB_debug_label
9156   // ARB_debug_label reuses entry points from KHR_debug
9157
9158   // GL_ARB_debug_output2
9159
9160   // GL_ARB_ES3_compatibility
9161
9162   // GL_ARB_explicit_uniform_location
9163
9164   // GL_ARB_fragment_layer_viewport
9165
9166   // GL_ARB_framebuffer_no_attachments
9167   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9168   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9169   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9170   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9171
9172   // GL_ARB_internalformat_query2
9173   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9174
9175   // GL_ARB_invalidate_subdata
9176   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}
9177   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9178   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9179   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9180   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9181   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9182
9183   // GL_ARB_multi_draw_indirect
9184   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9185   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9186
9187   // GL_ARB_program_interface_query
9188   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9189   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9190   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9191   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}
9192   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9193   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9194
9195   // GL_ARB_robust_buffer_access_behavior
9196
9197   // GL_ARB_shader_image_size
9198
9199   // GL_ARB_shader_storage_buffer_object
9200   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9201
9202   // GL_ARB_stencil_texturing
9203
9204   // GL_ARB_texture_buffer_range
9205   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9206   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9207
9208   // GL_ARB_texture_query_levels
9209
9210   // GL_ARB_texture_storage_multisample
9211   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9212   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9213   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9214   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}
9215
9216   // GL 4.4
9217
9218   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9219   TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220   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}
9221   TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9222   TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9223   TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226   TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9227   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}
9228
9229   // GL 4.5
9230   TglClipControl = procedure(origin : GLenum; depth : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglCreateTransformFeedbacks = procedure(n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglTransformFeedbackBufferBase = procedure (xfb : GLuint; index : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233   TglTransformFeedbackBufferRange = procedure (xfb : GLuint; index : GLuint; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9234   TglGetTransformFeedbackiv = procedure (xfb : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9235   TglGetTransformFeedbacki_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglGetTransformFeedbacki64_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglCreateBuffers = procedure (n : GLsizei; buffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglNamedBufferStorage = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   TglNamedBufferData = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; usage : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9240   TglNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241   TglCopyNamedBufferSubData = procedure (readBuffer : GLuint; writeBuffer : GLuint; readOffset : GLintptr; writeOffset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglClearNamedBufferData = procedure (buffer : GLuint; internalformat : GLenum; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglClearNamedBufferSubData = procedure (buffer : GLuint; internalformat : GLenum; offset : GLintptr; size : GLsizei; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglMapNamedBuffer = function(buffer : GLuint; access : GLenum) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglMapNamedBufferRange = function(buffer : GLuint; offset : GLintptr; length : GLsizei; access : GLbitfield) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglUnmapNamedBuffer = function(buffer : GLuint) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglFlushMappedNamedBufferRange = procedure (buffer : GLuint; offset : GLintptr; length : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglGetNamedBufferParameteriv = procedure (buffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglGetNamedBufferParameteri64v = procedure (buffer : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglGetNamedBufferPointerv = procedure (buffer : GLuint; pname : GLenum; params : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglGetNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglCreateFramebuffers = procedure (n : GLsizei; framebuffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglNamedFramebufferRenderbuffer = procedure (framebuffer : GLuint; attachment : GLenum ; renderbuffertarget : GLEnum; renderbuffer : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglNamedFramebufferParameteri = procedure (framebuffer : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglNamedFramebufferTexture = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglNamedFramebufferTextureLayer = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint; layer : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglNamedFramebufferDrawBuffer = procedure (framebuffer : GLuint; buf : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglNamedFramebufferDrawBuffers = procedure (framebuffer : GLuint; n : GLsizei; bufs : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglNamedFramebufferReadBuffer = procedure (framebuffer : GLuint; src : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   TglInvalidateNamedFramebufferData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9261   TglInvalidateNamedFramebufferSubData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglClearNamedFramebufferiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglClearNamedFramebufferuiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   TglClearNamedFramebufferfv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9265   TglClearNamedFramebufferfi = procedure (framebuffer : GLuint; buffer : GLenum; const depth : GLfloat; stencil : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   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}
9267   TglCheckNamedFramebufferStatus = function(framebuffer : GLuint; target : GLenum) : GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9268   TglGetNamedFramebufferParameteriv = procedure (framebuffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9269   TglGetNamedFramebufferAttachmentParameteriv = procedure (framebuffer : GLuint; attachment : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglCreateRenderbuffers = procedure (n : GLsizei; renderbuffers : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglNamedRenderbufferStorage = procedure (renderbuffer : GLUInt; internalformat : GLenum ; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglNamedRenderbufferStorageMultisample = procedure (renderbuffer : GLUInt; samples : GLSizei; internalformat : GLenum ; width : GLSizei; height : GLSizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglGetNamedRenderbufferParameteriv = procedure (renderbuffer : GLUInt; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglCreateTextures = procedure (target : GLenum ; n : GLsizei; textures : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglTextureBuffer = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglTextureBufferRange = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglTextureStorage1D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglTextureStorage2D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglTextureStorage3D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglTextureStorage2DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   TglTextureStorage3DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9282   TglTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   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}
9284   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}
9285   TglCompressedTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9286   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}
9287   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}
9288   TglCopyTextureSubImage1D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; x : GLint; y : GLint; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9289   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}
9290   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}
9291   TglTextureParameterf = procedure (texture : GLuint; pname : GLenum; param : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglTextureParameterfv = procedure (texture : GLuint; pname : GLenum; const param : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglTextureParameteri = procedure (texture : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; const params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; const params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglTextureParameteriv = procedure (texture : GLuint; pname : GLenum; const param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglGenerateTextureMipmap = procedure(texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglBindTextureUnit = procedure (_unit : GLuint; texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglGetTextureImage = procedure (texture : GLuint; level : GLint ; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglGetCompressedTextureImage = procedure (texture : GLuint; level : GLint; bufSize : GLSizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301   TglGetTextureLevelParameterfv = procedure (texture : GLuint; level : GLint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9302   TglGetTextureLevelParameteriv = procedure (texture : GLuint; level : GLint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   TglGetTextureParameterfv = procedure (texture : GLuint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglGetTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglGetTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; params : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglGetTextureParameteriv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglCreateVertexArrays = procedure (n : GLsizei; arrays : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglDisableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglEnableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglVertexArrayElementBuffer = procedure (vaobj : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglVertexArrayVertexBuffer = procedure (vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   TglVertexArrayVertexBuffers = procedure (vaobj : GLuint; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : PGLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9313   TglVertexArrayAttribBinding = procedure (vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9314   TglVertexArrayAttribFormat = procedure(vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; normalized : GLboolean; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglVertexArrayAttribIFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglVertexArrayAttribLFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglVertexArrayBindingDivisor = procedure (vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglGetVertexArrayiv = procedure (vaobj : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   TglGetVertexArrayIndexediv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglGetVertexArrayIndexed64iv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321   TglCreateSamplers = procedure (n : GLsizei; samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   TglCreateProgramPipelines = procedure (n : GLsizei; pipelines : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9323   TglCreateQueries = procedure (target : GLenum; n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324   TglMemoryBarrierByRegion = procedure (barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9325   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}
9326   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}
9327   TglGetGraphicsResetStatus = function : GLEnum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9328   TglGetnCompressedTexImage = procedure (target : GLenum; lod : GLint; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9329   TglGetnTexImage = procedure (target : GLenum; level : GLint; format : GLenum; _type : GLenum; bufSize : GLSizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglGetnUniformdv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331   TglGetnUniformfv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9332   TglGetnUniformiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9333   TglGetnUniformuiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9334   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}
9335   TglGetnMapdv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9336   TglGetnMapfv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9337   TglGetnMapiv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9338   TglGetnPixelMapfv = procedure (map : GLenum; bufSize : GLsizei; values : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9339   TglGetnPixelMapuiv = procedure (map : GLenum; bufSize : GLsizei; values : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9340   TglGetnPixelMapusv = procedure (map : GLenum; bufSize : GLsizei; values : PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9341   TglGetnPolygonStipple = procedure (bufSize : GLsizei; pattern : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9342   TglGetnColorTable = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; table : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9343   TglGetnConvolutionFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; image : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9344   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}
9345   TglGetnHistogram = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9346   TglGetnMinmax = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9347   TglTextureBarrier = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9348
9349   // GL_ARB_sparse_buffer
9350   TglBufferPageCommitmentARB = procedure (target : GLenum; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9351   TglNamedBufferPageCommitmentEXT = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9352   TglNamedBufferPageCommitmentARB = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9353
9354   // GL_KHR_blend_equation_advanced
9355   TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9356
9357   // GL_ARB_texture_view
9358   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}
9359
9360   // GL_ARB_vertex_attrib_binding
9361   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9362   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9363   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9364   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9365   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9366   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9367   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9368   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9369   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9370   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9371   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9372   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9373
9374   // GL_ARB_robustness_isolation
9375
9376   //
9377
9378   // GL_ARB_cl_event
9379   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9380
9381   // GL_ARB_debug_output
9382   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9383   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9384   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9385   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}
9386
9387   // GL_ARB_robustness
9388   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9389   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9390   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9391   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9392   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9393   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9394   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9395   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9396   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9397   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   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}
9399   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9400   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9401   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9402   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}
9403   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9404   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9405   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9406   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9407   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9408
9409   // GL_ATI_draw_buffers
9410   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9411
9412   // GL_ATI_element_array
9413   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9414   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9415   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9416
9417   // GL_ATI_envmap_bumpmap
9418   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9419   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9421   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9422
9423   // GL_ATI_fragment_shader
9424   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9425   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9426   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9427   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9428   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9429   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9430   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9431   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9432   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}
9433   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}
9434   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9435   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}
9436   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}
9437   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9438
9439   // GL_ATI_map_object_buffer
9440   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9441   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9442
9443   // GL_ATI_pn_triangles
9444   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9445   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9446
9447   // GL_ATI_separate_stencil
9448   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9449   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9450
9451   // GL_ATI_vertex_array_object
9452   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9453   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9454   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9455   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9458   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9459   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9460   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9461   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9462   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9463   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9464
9465   // GL_ATI_vertex_attrib_array_object
9466   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9467   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9468   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9469
9470   // GL_ATI_vertex_streams
9471   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9472   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9479   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9480   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9481   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9482   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9483   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9484   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9485   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9486   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9487   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9491   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9492   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9501   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9502   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9503   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9504   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9508   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9509   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9510   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9511   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9512   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9513   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9514   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9515   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9516
9517   // GL_AMD_performance_monitor
9518   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9519   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9522   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9523   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9524   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9525   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9527   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9528   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9529
9530   // GL_AMD_vertex_shader_tesselator
9531   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9532   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9533
9534   // GL_AMD_draw_buffers_blend
9535   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9536   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9537   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9538   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9539
9540   // GL_AMD_name_gen_delete
9541   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9542   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9543   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9544
9545   // GL_AMD_debug_output
9546   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9547   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9548   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9549   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9550
9551   // GL_EXT_blend_color
9552   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9553
9554   // GL_EXT_blend_func_separate
9555   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9556
9557   // GL_EXT_blend_minmax
9558   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9559
9560   // GL_EXT_color_subtable
9561   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9562   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9563
9564   // GL_EXT_compiled_vertex_array
9565   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9566   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9567
9568   // GL_EXT_convolution
9569   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9570   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9571   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9574   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9575   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9576   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9577   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9578   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   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}
9582
9583   // GL_EXT_coordinate_frame
9584   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9585   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9591   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9592   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9593   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9596   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9597   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9598   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9599   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9600   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9601   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9602   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9605   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9606
9607   // GL_EXT_copy_texture
9608   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9609   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}
9610   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9611   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}
9612   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}
9613
9614   // GL_EXT_cull_vertex
9615   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9616   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617
9618   // GL_EXT_draw_range_elements
9619   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9620
9621   // GL_EXT_fog_coord
9622   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9623   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9626   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627
9628   // GL_EXT_framebuffer_object
9629   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9635   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9638   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9639   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9640   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9641   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9643   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9644   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9645   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9646
9647   // GL_EXT_histogram
9648   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9649   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9650   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9652   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9653   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9654   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9655   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9656   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9657   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9658
9659   // GL_EXT_index_func
9660   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9661
9662   // GL_EXT_index_material
9663   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9664
9665   // GL_EXT_light_texture
9666   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9667   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9668   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9669
9670   // GL_EXT_multi_draw_arrays
9671   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9672   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9673
9674   // GL_EXT_multisample
9675   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9676   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9677
9678   // GL_EXT_paletted_texture
9679   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9681   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9682   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9683
9684   // GL_EXT_pixel_transform
9685   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9686   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9687   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9688   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9689
9690   // GL_EXT_point_parameters
9691   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9692   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693
9694   // GL_EXT_polygon_offset
9695   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9696
9697   // GL_EXT_secondary_color
9698   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9700   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9701   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9703   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9704   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9706   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9709   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9710   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9711   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9712   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9713   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9714   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9715
9716   // GL_EXT_stencil_two_side
9717   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9718
9719   // GL_EXT_subtexture
9720   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9721   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}
9722
9723   // GL_EXT_texture3D
9724   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}
9725   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}
9726
9727   // GL_EXT_texture_object
9728   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9729   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9731   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9732   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9733   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9734
9735   // GL_EXT_texture_perturb_normal
9736   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9737
9738   // GL_EXT_vertex_array
9739   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9740   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9742   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9743   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9748
9749   // GL_EXT_vertex_shader
9750   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9751   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9752   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9764   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9767   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9770   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9771   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9774   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9775   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9776   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9777   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9778   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9779   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9780   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9782   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9783   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9785   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9786   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9787   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9788   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9789   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9790   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9791   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9792
9793   // GL_EXT_vertex_weighting
9794   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9795   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9796   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9797
9798   // GL_EXT_stencil_clear_tag
9799   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9800
9801   // GL_EXT_framebuffer_blit
9802   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}
9803
9804   // GL_EXT_framebuffer_multisample
9805   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9806
9807   // GL_EXT_timer_query
9808   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9809   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9810
9811   // GL_EXT_gpu_program_parameters
9812   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9813   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9814
9815   // GL_EXT_bindable_uniform
9816   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9817   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9818   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819
9820   // GL_EXT_draw_buffers2
9821   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9822   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9823   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9824   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9825   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9826   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9827
9828   // GL_EXT_draw_instanced
9829   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9830   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9831
9832   // GL_EXT_geometry_shader4
9833   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9834   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835
9836   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9837
9838   // GL_EXT_gpu_shader4
9839   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9840   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9843   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9844   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9851   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9852   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9853   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9854   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9855   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9858   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9859   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9862   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9865   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9866   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9867   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9868   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9870   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9871   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9872   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9873
9874   // GL_EXT_texture_array
9875   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9876
9877   // GL_EXT_texture_buffer_object
9878   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9879
9880   // GL_EXT_texture_integer
9881   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9882   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9883   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9886   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9887
9888   // GL_HP_image_transform
9889   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9890   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9892   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9893   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9894   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9895
9896   // GL_EXT_depth_bounds_test
9897   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9898
9899   // GL_EXT_blend_equation_separate
9900   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9901
9902   // GL_EXT_transform_feedback
9903   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9904   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9905   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9906   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9907   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9908   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9909   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9910
9911   // GL_EXT_direct_state_access
9912   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9913   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9916   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9917   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9919   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9920   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9921   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9923   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9924   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9925   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9926   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9929   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9930   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9931   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9932   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9933   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9934   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9935   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9936   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9937   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}
9938   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}
9939   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}
9940   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}
9941   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}
9942   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}
9943   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9944   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}
9945   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9946   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9947   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9949   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9950   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}
9951   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}
9952   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}
9953   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9954   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9955   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9956   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9957   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}
9958   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}
9959   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}
9960   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}
9961   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}
9962   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}
9963   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964   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}
9965   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9966   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   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}
9971   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}
9972   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}
9973   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9974   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9977   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9978   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9979   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9980   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9981   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9982   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9983   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9984   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9985   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9986   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9990   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9991   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9992   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9993   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9994   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9995   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}
9996   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}
9997   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}
9998   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}
9999   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}
10000   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}
10001   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10002   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}
10003   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}
10004   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}
10005   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}
10006   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}
10007   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}
10008   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10015   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10016   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10043   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10044   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10045   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10046   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10047   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10056   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10057   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10063   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10064   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10065   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10066   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10067   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10068   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10069   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10070   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10076   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10077   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10078   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10098   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10100   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10101   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10102   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10103   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10104   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10105   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10106   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10107   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10108   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10109   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10110   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10111   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10112   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10113   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10117   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10118
10119   // GL_EXT_separate_shader_objects
10120   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10121   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10122   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10123
10124   // GL_EXT_shader_image_load_store
10125   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10126   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10127
10128   // GL_EXT_vertex_attrib_64bit
10129   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10130   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10133   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10134   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10135   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10136   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10138   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10139   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10140
10141   // GL_IBM_multimode_draw_arrays
10142   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10143   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144
10145   // GL_IBM_vertex_array_lists
10146   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10148   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10149   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10151   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10152   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10153   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154
10155   // GL_INGR_blend_func_separate
10156   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10157
10158   // GL_INTEL_parallel_arrays
10159   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10160   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10161   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10162   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163
10164   // GL_MESA_resize_buffers
10165   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10166
10167   // GL_MESA_window_pos
10168   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10186   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10187   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10188   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10189   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10191   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10192
10193   // GL_NV_evaluators
10194   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}
10195   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10197   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10198   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10199   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203
10204   // GL_NV_fence
10205   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10206   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10207   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212
10213   // GL_NV_fragment_program
10214   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10215   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220
10221   // GL_NV_half_float
10222   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10223   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10224   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10229   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10233   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10246   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10247   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10250   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10251   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10256   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10260   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10261   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10262   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10263   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10264   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10267   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10268
10269   // GL_NV_occlusion_query
10270   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10271   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10272   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10273   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10275   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10276   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10277
10278   // GL_NV_pixel_data_range
10279   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10280   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10281
10282   // GL_NV_point_sprite
10283   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10284   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10285
10286   // GL_NV_primitive_restart
10287   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10288   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10289
10290   // GL_NV_register_combiners
10291   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10292   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10294   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10295   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296   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}
10297   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10298   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10299   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10300   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10302   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10303   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10304
10305   // GL_NV_register_combiners2
10306   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10307   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10308
10309   // GL_NV_vertex_array_range
10310   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10311   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312
10313   // GL_NV_vertex_program
10314   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10318   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10326   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10363   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10368   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10369   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10372   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10373   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10374   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10375   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10377   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10378
10379   // GL_NV_depth_buffer_float
10380   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10381   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10382   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10383
10384   // GL_NV_framebuffer_multisample_coverage
10385   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10386
10387   // GL_NV_geometry_program4
10388   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10389
10390   // GL_NV_gpu_program4
10391   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10392   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10395   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10396   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10397   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10401   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10402   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10405   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10406   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10407
10408   // GL_NV_parameter_buffer_object
10409   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10410   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10411   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10412
10413   // GL_NV_transform_feedback
10414   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10415   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10417   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10418   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10419   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10420   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10421   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10424   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10425   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10426
10427   // GL_NV_conditional_render
10428   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10429   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10430
10431   // GL_NV_present_video
10432   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}
10433   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}
10434   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10435   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10438 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10439
10440   // GL_NV_explicit_multisample
10441   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444
10445   // GL_NV_transform_feedback2
10446   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10447   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10448   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10449   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10452   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10453
10454   // GL_NV_video_capture
10455   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10456   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10461   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10462   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10464   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10465   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10466   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467
10468   // GL_NV_copy_image
10469   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}
10470
10471   // GL_NV_shader_buffer_load
10472   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10480   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10481   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10483   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10484   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10485   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10486
10487   // GL_NV_vertex_buffer_unified_memory
10488   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10489   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10490   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10492   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10494   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10495   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10496   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10498   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10499   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10500
10501   // GL_NV_gpu_program5
10502   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10503   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504
10505   // GL_NV_gpu_shader5
10506   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10507   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10512   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10513   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10514   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10517   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10518   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10519   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10532   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10533   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10534   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10535   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10536   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10537   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10538   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10539
10540   // GL_NV_vertex_attrib_integer_64bit
10541   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10545   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10546   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10550   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10551   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10554   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10555   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10556   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10558   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10559   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10560
10561   // GL_NV_vdpau_interop
10562   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10566   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10567   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10568   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10569   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10570   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10571   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10572
10573   // GL_NV_texture_barrier
10574   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10575
10576   // (4.3)
10577         // GL_NV_path_rendering
10578   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10581   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10582   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   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}
10584   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10585   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10586   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}
10587   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}
10588   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10589   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10592   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10595   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10596   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10597   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   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}
10602   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}
10603   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10604   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10605   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10606   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10607   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10608   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10609   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}
10610   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}
10611   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10612   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10613   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10614   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10615   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10617   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   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}
10619   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10620   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10621   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10622   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10623   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10624   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10625   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10626   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}
10627
10628   // GL_AMD_pinned_memory
10629
10630   // GL_AMD_stencil_operation_extended
10631   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10632
10633   // GL_AMD_vertex_shader_viewport_index
10634
10635   // GL_AMD_vertex_shader_layer
10636
10637   // GL_NV_bindless_texture
10638   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10645   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10646   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10647   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10650   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10651
10652   // GL_ARB_bindless_texture
10653
10654   TglGetTextureHandleARB = function (texture : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10655   TglGetTextureSamplerHandleARB = function (texture : GLuint; sampler : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10656   TglMakeTextureHandleResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657   TglMakeTextureHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10658   TglGetImageHandleARB = function (texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10659   TglMakeImageHandleResidentARB = procedure (handle : GLuint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglMakeImageHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661   TglUniformHandleui64ARB = procedure (location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10662   TglUniformHandleui64vARB = procedure (location : GLint; count : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663   TglProgramUniformHandleui64ARB = procedure (program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10664   TglProgramUniformHandleui64vARB = procedure (program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10665   TglIsTextureHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10666   TglIsImageHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10667   TglVertexAttribL1ui64ARB = procedure (index : GLuint; x : GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10668   TglVertexAttribL1ui64vARB = procedure (index : GLuint; const v : PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10669   TglGetVertexAttribLui64vARB = procedure (index : GLuint; pname : GLenum; params : PGLuint64EXT ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10670
10671         // GL_NV_shader_atomic_float
10672
10673         // GL_AMD_query_buffer_object
10674
10675   //
10676
10677   // GL_PGI_misc_hints
10678   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10679
10680   // GL_SGIS_detail_texture
10681   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10682   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10683
10684   // GL_SGIS_fog_function
10685   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10686   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10687
10688   // GL_SGIS_multisample
10689   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10690   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10691
10692   // GL_SGIS_pixel_texture
10693   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10694   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10695   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10697   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10698   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10699
10700   // GL_SGIS_point_parameters
10701   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10702   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10703
10704   // GL_SGIS_sharpen_texture
10705   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10706   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10707
10708   // GL_SGIS_texture4D
10709   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}
10710   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}
10711
10712   // GL_SGIS_texture_color_mask
10713   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10714
10715   // GL_SGIS_texture_filter4
10716   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10717   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718
10719   // GL_SGIX_async
10720   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10721   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10723   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10724   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10725   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726
10727   // GL_SGIX_flush_raster
10728   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10729
10730   // GL_SGIX_fragment_lighting
10731   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10732   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10733   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10734   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10735   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10737   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10738   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10739   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10740   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10741   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10742   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10743   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10744   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10746   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10747   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10748   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10749
10750   // GL_SGIX_framezoom
10751   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10752
10753   // GL_SGIX_igloo_interface
10754   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10755
10756   // GL_SGIX_instruments
10757   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10758   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10759   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10760   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10761   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10762   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10763
10764   // GL_SGIX_list_priority
10765   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10766   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10767   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10768   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10769   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10770   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10771
10772   // GL_SGIX_pixel_texture
10773   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10774
10775   // GL_SGIX_polynomial_ffd
10776   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}
10777   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}
10778   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10779   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10780
10781   // GL_SGIX_reference_plane
10782   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10783
10784   // GL_SGIX_sprite
10785   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10786   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10787   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10788   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10789
10790   // GL_SGIX_tag_sample_buffer
10791   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10792
10793   // GL_SGI_color_table
10794   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10795   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10796   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10797   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10798   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10799   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10800   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10801
10802   // GL_SUNX_constant_data
10803   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10804
10805   // GL_SUN_global_alpha
10806   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10807   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10808   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10809   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10811   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10812   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10813   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10814
10815   // GL_SUN_mesh_array
10816   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10817
10818   // GL_SUN_triangle_list
10819   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10820   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10821   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10825   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826
10827   // GL_SUN_vertex
10828   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10829   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10831   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10833   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10835   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10836   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}
10837   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10838   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10839   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10840   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}
10841   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10842   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}
10843   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   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}
10845   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10846   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}
10847   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10848   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}
10849   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10850   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}
10851   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10852   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10853   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10854   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}
10855   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10856   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10857   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10858   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10859   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10860   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}
10861   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10862   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10863   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10864   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}
10865   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10866   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}
10867   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10868
10869   // window support functions
10870 {$IFDEF DGL_WIN}
10871   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10872   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10873   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10874   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10875   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10876   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10877   TwglGetCurrentContext = function: HGLRC; stdcall;
10878   TwglGetCurrentDC = function: HDC; stdcall;
10879   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10880   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10881   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10882   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10883   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10884   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10885   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10886   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10887   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10888   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10889
10890   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10891   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10892   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10893
10894
10895   // WGL_ARB_buffer_region
10896   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10897   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10898   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10899   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10900
10901   // WGL_ARB_extensions_string
10902   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10903
10904   // WGL_ARB_make_current_read
10905   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10906   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10907
10908   // WGL_ARB_pbuffer
10909   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10910   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10911   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10912   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10913   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10914
10915   // WGL_ARB_pixel_format
10916   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10917   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10918   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
10919
10920   // WGL_ARB_color_buffer_float
10921   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
10922
10923   // WGL_ARB_render_texture
10924   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10925   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10926   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
10927
10928   // WGL_ARB_create_context
10929   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
10930
10931   // WGL_AMD_gpu_association
10932   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
10933   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
10934   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
10935   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
10936   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
10937   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
10938   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
10939   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
10940   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;
10941
10942   // WGL_EXT_display_color_table
10943   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10944   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
10945   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10946   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
10947
10948   // WGL_EXT_extensions_string
10949   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
10950
10951   // WGL_EXT_make_current_read
10952   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10953   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
10954
10955   // WGL_EXT_pbuffer
10956   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
10957   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
10958   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
10959   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
10960   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10961
10962   // WGL_EXT_pixel_format
10963   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10964   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10965   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
10966
10967   // WGL_EXT_swap_control
10968   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
10969   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
10970
10971   // WGL_I3D_digital_video_control
10972   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10973   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10974
10975   // WGL_I3D_gamma
10976   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10977   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10978   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
10979   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
10980
10981   // WGL_I3D_genlock
10982   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10983   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10984   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
10985   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
10986   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
10987   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
10988   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
10989   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
10990   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
10991   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
10992   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
10993   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
10994
10995   // WGL_I3D_image_buffer
10996   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
10997   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
10998   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
10999   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
11000
11001   // WGL_I3D_swap_frame_lock
11002   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
11003   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
11004   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
11005   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
11006
11007   // WGL_I3D_swap_frame_usage
11008   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
11009   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
11010   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
11011   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
11012
11013   // WGL_NV_vertex_array_range
11014   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
11015   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11016
11017   // WGL_NV_present_video
11018   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11019   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11020   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11021
11022   // WGL_NV_video_output
11023   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11024   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11025   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11026   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11027   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11028   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11029
11030   // WGL_NV_swap_group
11031   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11032   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11033   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11034   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11035   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11036   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11037
11038   // WGL_NV_gpu_affinity
11039   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11040   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11041   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11042   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11043   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11044
11045   // WGL_NV_video_capture
11046   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11047   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11048   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11049   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11050   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11051
11052   // WGL_NV_copy_image
11053   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;
11054
11055   // WGL_NV_DX_interop
11056   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11057   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11058   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11059   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11060   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11061   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11062   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11063   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11064
11065   // WGL_OML_sync_control
11066   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11067   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11068   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11069   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11070   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11071   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11072
11073   // WGL_3DL_stereo_control
11074   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11075
11076   // WIN_draw_range_elements
11077   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11078
11079   // WIN_swap_hint
11080   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11081 {$ENDIF}
11082
11083 {$IFDEF DGL_LINUX}
11084   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11085   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11086   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11087   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11088   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11089   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11090   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11091   TglXGetCurrentContext = function: GLXContext cdecl;
11092   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11093   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11094   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11095   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11096   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11097   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11098   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11099   TglXWaitGL = procedure; cdecl;
11100   TglXWaitX = procedure; cdecl;
11101
11102   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11103   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11104   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11105
11106   // GLX_VERSION_1_3
11107   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11108   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11109   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11110   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11111   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11112   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11113   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11114
11115   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11116   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11117   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11118   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11119   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11120   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11121   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11122   TglXGetCurreentDisplay = function: PDisplay;
11123
11124   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11125   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11126   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11127
11128   // GLX_VERSION_1_4
11129   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11130
11131   // GLX_ARB_get_proc_address
11132   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11133
11134   // GLX_ARB_create_context
11135   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11136
11137   // GLX_EXT_import_context
11138   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11139   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11140   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11141   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11142   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11143
11144   // GLX_EXT_texture_from_pixmap
11145   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11146   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11147
11148   TglXSwapIntervalEXT = procedure (dpy : PDisplay; drawable : GLXDrawable; interval : GLint); cdecl;
11149 {$ENDIF}
11150
11151   // GL utility functions and procedures
11152   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11153   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11154   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11155   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11156   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11157   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11158   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}
11159   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}
11160   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}
11161   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11162   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11163   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11164   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11165   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11166   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11167   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11168   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11169   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11170   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11171   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11172   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11173   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11174   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11175   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11176   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11177   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11178   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11179   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11180   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11181   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11182   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11183   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11184   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11185   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11186   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11187   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11188   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11189   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11190   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11191   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11192   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11193   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11194   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11195   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}
11196   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11197   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11198   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11199   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11200   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11201   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11202   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11203
11204 var
11205   // GL_VERSION_1_0
11206   glCullFace: TglCullFace;
11207   glFrontFace: TglFrontFace;
11208   glHint: TglHint;
11209   glLineWidth: TglLineWidth;
11210   glPointSize: TglPointSize;
11211   glPolygonMode: TglPolygonMode;
11212   glScissor: TglScissor;
11213   glTexParameterf: TglTexParameterf;
11214   glTexParameterfv: TglTexParameterfv;
11215   glTexParameteri: TglTexParameteri;
11216   glTexParameteriv: TglTexParameteriv;
11217   glTexImage1D: TglTexImage1D;
11218   glTexImage2D: TglTexImage2D;
11219   glDrawBuffer: TglDrawBuffer;
11220   glClear: TglClear;
11221   glClearColor: TglClearColor;
11222   glClearStencil: TglClearStencil;
11223   glClearDepth: TglClearDepth;
11224   glStencilMask: TglStencilMask;
11225   glColorMask: TglColorMask;
11226   glDepthMask: TglDepthMask;
11227   glDisable: TglDisable;
11228   glEnable: TglEnable;
11229   glFinish: TglFinish;
11230   glFlush: TglFlush;
11231   glBlendFunc: TglBlendFunc;
11232   glLogicOp: TglLogicOp;
11233   glStencilFunc: TglStencilFunc;
11234   glStencilOp: TglStencilOp;
11235   glDepthFunc: TglDepthFunc;
11236   glPixelStoref: TglPixelStoref;
11237   glPixelStorei: TglPixelStorei;
11238   glReadBuffer: TglReadBuffer;
11239   glReadPixels: TglReadPixels;
11240   glGetBooleanv: TglGetBooleanv;
11241   glGetDoublev: TglGetDoublev;
11242   glGetError: TglGetError;
11243   glGetFloatv: TglGetFloatv;
11244   glGetIntegerv: TglGetIntegerv;
11245   glGetString: TglGetString;
11246   glGetTexImage: TglGetTexImage;
11247   glGetTexParameteriv: TglGetTexParameteriv;
11248   glGetTexParameterfv: TglGetTexParameterfv;
11249   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11250   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11251   glIsEnabled: TglIsEnabled;
11252   glDepthRange: TglDepthRange;
11253   glViewport: TglViewport;
11254
11255   // GL_VERSION_1_1
11256   glDrawArrays: TglDrawArrays;
11257   glDrawElements: TglDrawElements;
11258   glGetPointerv: TglGetPointerv;
11259   glPolygonOffset: TglPolygonOffset;
11260   glCopyTexImage1D: TglCopyTexImage1D;
11261   glCopyTexImage2D: TglCopyTexImage2D;
11262   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11263   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11264   glTexSubImage1D: TglTexSubImage1D;
11265   glTexSubImage2D: TglTexSubImage2D;
11266   glBindTexture: TglBindTexture;
11267   glDeleteTextures: TglDeleteTextures;
11268   glGenTextures: TglGenTextures;
11269 {$ifdef DGL_DEPRECATED}
11270   glAccum: TglAccum;
11271   glAlphaFunc: TglAlphaFunc;
11272   glAreTexturesResident: TglAreTexturesResident;
11273   glArrayElement: TglArrayElement;
11274   glBegin: TglBegin;
11275   glBitmap: TglBitmap;
11276   glCallList: TglCallList;
11277   glCallLists: TglCallLists;
11278   glClearAccum: TglClearAccum;
11279   glClearIndex: TglClearIndex;
11280   glClipPlane: TglClipPlane;
11281   glColor3b: TglColor3b;
11282   glColor3bv: TglColor3bv;
11283   glColor3d: TglColor3d;
11284   glColor3dv: TglColor3dv;
11285   glColor3f: TglColor3f;
11286   glColor3fv: TglColor3fv;
11287   glColor3i: TglColor3i;
11288   glColor3iv: TglColor3iv;
11289   glColor3s: TglColor3s;
11290   glColor3sv: TglColor3sv;
11291   glColor3ub: TglColor3ub;
11292   glColor3ubv: TglColor3ubv;
11293   glColor3ui: TglColor3ui;
11294   glColor3uiv: TglColor3uiv;
11295   glColor3us: TglColor3us;
11296   glColor3usv: TglColor3usv;
11297   glColor4b: TglColor4b;
11298   glColor4bv: TglColor4bv;
11299   glColor4d: TglColor4d;
11300   glColor4dv: TglColor4dv;
11301   glColor4f: TglColor4f;
11302   glColor4fv: TglColor4fv;
11303   glColor4i: TglColor4i;
11304   glColor4iv: TglColor4iv;
11305   glColor4s: TglColor4s;
11306   glColor4sv: TglColor4sv;
11307   glColor4ub: TglColor4ub;
11308   glColor4ubv: TglColor4ubv;
11309   glColor4ui: TglColor4ui;
11310   glColor4uiv: TglColor4uiv;
11311   glColor4us: TglColor4us;
11312   glColor4usv: TglColor4usv;
11313   glColorMaterial: TglColorMaterial;
11314   glColorPointer: TglColorPointer;
11315   glCopyPixels: TglCopyPixels;
11316   glDeleteLists: TglDeleteLists;
11317   glDisableClientState: TglDisableClientState;
11318   glDrawPixels: TglDrawPixels;
11319   glEdgeFlag: TglEdgeFlag;
11320   glEdgeFlagPointer: TglEdgeFlagPointer;
11321   glEdgeFlagv: TglEdgeFlagv;
11322   glEnableClientState: TglEnableClientState;
11323   glEnd: TglEnd;
11324   glEndList: TglEndList;
11325   glEvalCoord1d: TglEvalCoord1d;
11326   glEvalCoord1dv: TglEvalCoord1dv;
11327   glEvalCoord1f: TglEvalCoord1f;
11328   glEvalCoord1fv: TglEvalCoord1fv;
11329   glEvalCoord2d: TglEvalCoord2d;
11330   glEvalCoord2dv: TglEvalCoord2dv;
11331   glEvalCoord2f: TglEvalCoord2f;
11332   glEvalCoord2fv: TglEvalCoord2fv;
11333   glEvalMesh1: TglEvalMesh1;
11334   glEvalMesh2: TglEvalMesh2;
11335   glEvalPoint1: TglEvalPoint1;
11336   glEvalPoint2: TglEvalPoint2;
11337   glFeedbackBuffer: TglFeedbackBuffer;
11338   glFogf: TglFogf;
11339   glFogfv: TglFogfv;
11340   glFogi: TglFogi;
11341   glFogiv: TglFogiv;
11342   glFrustum: TglFrustum;
11343   glGenLists: TglGenLists;
11344   glGetClipPlane: TglGetClipPlane;
11345   glGetLightfv: TglGetLightfv;
11346   glGetLightiv: TglGetLightiv;
11347   glGetMapdv: TglGetMapdv;
11348   glGetMapfv: TglGetMapfv;
11349   glGetMapiv: TglGetMapiv;
11350   glGetMaterialfv: TglGetMaterialfv;
11351   glGetMaterialiv: TglGetMaterialiv;
11352   glGetPixelMapfv: TglGetPixelMapfv;
11353   glGetPixelMapuiv: TglGetPixelMapuiv;
11354   glGetPixelMapusv: TglGetPixelMapusv;
11355   glGetPolygonStipple: TglGetPolygonStipple;
11356   glGetTexEnvfv: TglGetTexEnvfv;
11357   glGetTexEnviv: TglGetTexEnviv;
11358   glGetTexGendv: TglGetTexGendv;
11359   glGetTexGenfv: TglGetTexGenfv;
11360   glGetTexGeniv: TglGetTexGeniv;
11361   glIndexMask: TglIndexMask;
11362   glIndexPointer: TglIndexPointer;
11363   glIndexd: TglIndexd;
11364   glIndexdv: TglIndexdv;
11365   glIndexf: TglIndexf;
11366   glIndexfv: TglIndexfv;
11367   glIndexi: TglIndexi;
11368   glIndexiv: TglIndexiv;
11369   glIndexs: TglIndexs;
11370   glIndexsv: TglIndexsv;
11371   glIndexub: TglIndexub;
11372   glIndexubv: TglIndexubv;
11373   glInitNames: TglInitNames;
11374   glInterleavedArrays: TglInterleavedArrays;
11375   glIsList: TglIsList;
11376   glIsTexture: TglIsTexture;
11377   glLightModelf: TglLightModelf;
11378   glLightModelfv: TglLightModelfv;
11379   glLightModeli: TglLightModeli;
11380   glLightModeliv: TglLightModeliv;
11381   glLightf: TglLightf;
11382   glLightfv: TglLightfv;
11383   glLighti: TglLighti;
11384   glLightiv: TglLightiv;
11385   glLineStipple: TglLineStipple;
11386   glListBase: TglListBase;
11387   glLoadIdentity: TglLoadIdentity;
11388   glLoadMatrixd: TglLoadMatrixd;
11389   glLoadMatrixf: TglLoadMatrixf;
11390   glLoadName: TglLoadName;
11391   glMap1d: TglMap1d;
11392   glMap1f: TglMap1f;
11393   glMap2d: TglMap2d;
11394   glMap2f: TglMap2f;
11395   glMapGrid1d: TglMapGrid1d;
11396   glMapGrid1f: TglMapGrid1f;
11397   glMapGrid2d: TglMapGrid2d;
11398   glMapGrid2f: TglMapGrid2f;
11399   glMaterialf: TglMaterialf;
11400   glMaterialfv: TglMaterialfv;
11401   glMateriali: TglMateriali;
11402   glMaterialiv: TglMaterialiv;
11403   glMatrixMode: TglMatrixMode;
11404   glMultMatrixd: TglMultMatrixd;
11405   glMultMatrixf: TglMultMatrixf;
11406   glNewList: TglNewList;
11407   glNormal3b: TglNormal3b;
11408   glNormal3bv: TglNormal3bv;
11409   glNormal3d: TglNormal3d;
11410   glNormal3dv: TglNormal3dv;
11411   glNormal3f: TglNormal3f;
11412   glNormal3fv: TglNormal3fv;
11413   glNormal3i: TglNormal3i;
11414   glNormal3iv: TglNormal3iv;
11415   glNormal3s: TglNormal3s;
11416   glNormal3sv: TglNormal3sv;
11417   glNormalPointer: TglNormalPointer;
11418   glOrtho: TglOrtho;
11419   glPassThrough: TglPassThrough;
11420   glPixelMapfv: TglPixelMapfv;
11421   glPixelMapuiv: TglPixelMapuiv;
11422   glPixelMapusv: TglPixelMapusv;
11423   glPixelTransferf: TglPixelTransferf;
11424   glPixelTransferi: TglPixelTransferi;
11425   glPixelZoom: TglPixelZoom;
11426   glPolygonStipple: TglPolygonStipple;
11427   glPopAttrib: TglPopAttrib;
11428   glPopClientAttrib: TglPopClientAttrib;
11429   glPopMatrix: TglPopMatrix;
11430   glPopName: TglPopName;
11431   glPrioritizeTextures: TglPrioritizeTextures;
11432   glPushAttrib: TglPushAttrib;
11433   glPushClientAttrib: TglPushClientAttrib;
11434   glPushMatrix: TglPushMatrix;
11435   glPushName: TglPushName;
11436   glRasterPos2d: TglRasterPos2d;
11437   glRasterPos2dv: TglRasterPos2dv;
11438   glRasterPos2f: TglRasterPos2f;
11439   glRasterPos2fv: TglRasterPos2fv;
11440   glRasterPos2i: TglRasterPos2i;
11441   glRasterPos2iv: TglRasterPos2iv;
11442   glRasterPos2s: TglRasterPos2s;
11443   glRasterPos2sv: TglRasterPos2sv;
11444   glRasterPos3d: TglRasterPos3d;
11445   glRasterPos3dv: TglRasterPos3dv;
11446   glRasterPos3f: TglRasterPos3f;
11447   glRasterPos3fv: TglRasterPos3fv;
11448   glRasterPos3i: TglRasterPos3i;
11449   glRasterPos3iv: TglRasterPos3iv;
11450   glRasterPos3s: TglRasterPos3s;
11451   glRasterPos3sv: TglRasterPos3sv;
11452   glRasterPos4d: TglRasterPos4d;
11453   glRasterPos4dv: TglRasterPos4dv;
11454   glRasterPos4f: TglRasterPos4f;
11455   glRasterPos4fv: TglRasterPos4fv;
11456   glRasterPos4i: TglRasterPos4i;
11457   glRasterPos4iv: TglRasterPos4iv;
11458   glRasterPos4s: TglRasterPos4s;
11459   glRasterPos4sv: TglRasterPos4sv;
11460   glRectd: TglRectd;
11461   glRectdv: TglRectdv;
11462   glRectf: TglRectf;
11463   glRectfv: TglRectfv;
11464   glRecti: TglRecti;
11465   glRectiv: TglRectiv;
11466   glRects: TglRects;
11467   glRectsv: TglRectsv;
11468   glRenderMode: TglRenderMode;
11469   glRotated: TglRotated;
11470   glRotatef: TglRotatef;
11471   glScaled: TglScaled;
11472   glScalef: TglScalef;
11473   glSelectBuffer: TglSelectBuffer;
11474   glShadeModel: TglShadeModel;
11475   glTexCoord1d: TglTexCoord1d;
11476   glTexCoord1dv: TglTexCoord1dv;
11477   glTexCoord1f: TglTexCoord1f;
11478   glTexCoord1fv: TglTexCoord1fv;
11479   glTexCoord1i: TglTexCoord1i;
11480   glTexCoord1iv: TglTexCoord1iv;
11481   glTexCoord1s: TglTexCoord1s;
11482   glTexCoord1sv: TglTexCoord1sv;
11483   glTexCoord2d: TglTexCoord2d;
11484   glTexCoord2dv: TglTexCoord2dv;
11485   glTexCoord2f: TglTexCoord2f;
11486   glTexCoord2fv: TglTexCoord2fv;
11487   glTexCoord2i: TglTexCoord2i;
11488   glTexCoord2iv: TglTexCoord2iv;
11489   glTexCoord2s: TglTexCoord2s;
11490   glTexCoord2sv: TglTexCoord2sv;
11491   glTexCoord3d: TglTexCoord3d;
11492   glTexCoord3dv: TglTexCoord3dv;
11493   glTexCoord3f: TglTexCoord3f;
11494   glTexCoord3fv: TglTexCoord3fv;
11495   glTexCoord3i: TglTexCoord3i;
11496   glTexCoord3iv: TglTexCoord3iv;
11497   glTexCoord3s: TglTexCoord3s;
11498   glTexCoord3sv: TglTexCoord3sv;
11499   glTexCoord4d: TglTexCoord4d;
11500   glTexCoord4dv: TglTexCoord4dv;
11501   glTexCoord4f: TglTexCoord4f;
11502   glTexCoord4fv: TglTexCoord4fv;
11503   glTexCoord4i: TglTexCoord4i;
11504   glTexCoord4iv: TglTexCoord4iv;
11505   glTexCoord4s: TglTexCoord4s;
11506   glTexCoord4sv: TglTexCoord4sv;
11507   glTexCoordPointer: TglTexCoordPointer;
11508   glTexEnvf: TglTexEnvf;
11509   glTexEnvfv: TglTexEnvfv;
11510   glTexEnvi: TglTexEnvi;
11511   glTexEnviv: TglTexEnviv;
11512   glTexGend: TglTexGend;
11513   glTexGendv: TglTexGendv;
11514   glTexGenf: TglTexGenf;
11515   glTexGenfv: TglTexGenfv;
11516   glTexGeni: TglTexGeni;
11517   glTexGeniv: TglTexGeniv;
11518   glTranslated: TglTranslated;
11519   glTranslatef: TglTranslatef;
11520   glVertex2d: TglVertex2d;
11521   glVertex2dv: TglVertex2dv;
11522   glVertex2f: TglVertex2f;
11523   glVertex2fv: TglVertex2fv;
11524   glVertex2i: TglVertex2i;
11525   glVertex2iv: TglVertex2iv;
11526   glVertex2s: TglVertex2s;
11527   glVertex2sv: TglVertex2sv;
11528   glVertex3d: TglVertex3d;
11529   glVertex3dv: TglVertex3dv;
11530   glVertex3f: TglVertex3f;
11531   glVertex3fv: TglVertex3fv;
11532   glVertex3i: TglVertex3i;
11533   glVertex3iv: TglVertex3iv;
11534   glVertex3s: TglVertex3s;
11535   glVertex3sv: TglVertex3sv;
11536   glVertex4d: TglVertex4d;
11537   glVertex4dv: TglVertex4dv;
11538   glVertex4f: TglVertex4f;
11539   glVertex4fv: TglVertex4fv;
11540   glVertex4i: TglVertex4i;
11541   glVertex4iv: TglVertex4iv;
11542   glVertex4s: TglVertex4s;
11543   glVertex4sv: TglVertex4sv;
11544   glVertexPointer: TglVertexPointer;
11545 {$endif}
11546
11547   // GL_VERSION_1_2
11548   glBlendColor: TglBlendColor;
11549   glBlendEquation: TglBlendEquation;
11550   glDrawRangeElements: TglDrawRangeElements;
11551   glTexImage3D: TglTexImage3D;
11552   glTexSubImage3D: TglTexSubImage3D;
11553   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11554 {$ifdef DGL_DEPRECATED}
11555   glColorTable: TglColorTable;
11556   glColorTableParameterfv: TglColorTableParameterfv;
11557   glColorTableParameteriv: TglColorTableParameteriv;
11558   glCopyColorTable: TglCopyColorTable;
11559   glGetColorTable: TglGetColorTable;
11560   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11561   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11562   glColorSubTable: TglColorSubTable;
11563   glCopyColorSubTable: TglCopyColorSubTable;
11564   glConvolutionFilter1D: TglConvolutionFilter1D;
11565   glConvolutionFilter2D: TglConvolutionFilter2D;
11566   glConvolutionParameterf: TglConvolutionParameterf;
11567   glConvolutionParameterfv: TglConvolutionParameterfv;
11568   glConvolutionParameteri: TglConvolutionParameteri;
11569   glConvolutionParameteriv: TglConvolutionParameteriv;
11570   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11571   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11572   glGetConvolutionFilter: TglGetConvolutionFilter;
11573   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11574   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11575   glGetSeparableFilter: TglGetSeparableFilter;
11576   glSeparableFilter2D: TglSeparableFilter2D;
11577   glGetHistogram: TglGetHistogram;
11578   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11579   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11580   glGetMinmax: TglGetMinmax;
11581   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11582   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11583   glHistogram: TglHistogram;
11584   glMinmax: TglMinmax;
11585   glResetHistogram: TglResetHistogram;
11586   glResetMinmax: TglResetMinmax;
11587 {$endif}
11588
11589   // GL_VERSION_1_3
11590   glActiveTexture: TglActiveTexture;
11591   glSampleCoverage: TglSampleCoverage;
11592   glCompressedTexImage3D: TglCompressedTexImage3D;
11593   glCompressedTexImage2D: TglCompressedTexImage2D;
11594   glCompressedTexImage1D: TglCompressedTexImage1D;
11595   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11596   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11597   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11598   glGetCompressedTexImage: TglGetCompressedTexImage;
11599 {$ifdef DGL_DEPRECATED}
11600   glClientActiveTexture: TglClientActiveTexture;
11601   glMultiTexCoord1d: TglMultiTexCoord1d;
11602   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11603   glMultiTexCoord1f: TglMultiTexCoord1f;
11604   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11605   glMultiTexCoord1i: TglMultiTexCoord1i;
11606   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11607   glMultiTexCoord1s: TglMultiTexCoord1s;
11608   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11609   glMultiTexCoord2d: TglMultiTexCoord2d;
11610   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11611   glMultiTexCoord2f: TglMultiTexCoord2f;
11612   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11613   glMultiTexCoord2i: TglMultiTexCoord2i;
11614   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11615   glMultiTexCoord2s: TglMultiTexCoord2s;
11616   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11617   glMultiTexCoord3d: TglMultiTexCoord3d;
11618   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11619   glMultiTexCoord3f: TglMultiTexCoord3f;
11620   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11621   glMultiTexCoord3i: TglMultiTexCoord3i;
11622   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11623   glMultiTexCoord3s: TglMultiTexCoord3s;
11624   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11625   glMultiTexCoord4d: TglMultiTexCoord4d;
11626   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11627   glMultiTexCoord4f: TglMultiTexCoord4f;
11628   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11629   glMultiTexCoord4i: TglMultiTexCoord4i;
11630   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11631   glMultiTexCoord4s: TglMultiTexCoord4s;
11632   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11633   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11634   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11635   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11636   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11637 {$endif}
11638
11639   // GL_VERSION_1_4
11640   glBlendFuncSeparate: TglBlendFuncSeparate;
11641   glMultiDrawArrays: TglMultiDrawArrays;
11642   glMultiDrawElements: TglMultiDrawElements;
11643   glPointParameterf: TglPointParameterf;
11644   glPointParameterfv: TglPointParameterfv;
11645   glPointParameteri: TglPointParameteri;
11646   glPointParameteriv: TglPointParameteriv;
11647 {$ifdef DGL_DEPRECATED}
11648   glFogCoordf: TglFogCoordf;
11649   glFogCoordfv: TglFogCoordfv;
11650   glFogCoordd: TglFogCoordd;
11651   glFogCoorddv: TglFogCoorddv;
11652   glFogCoordPointer: TglFogCoordPointer;
11653   glSecondaryColor3b: TglSecondaryColor3b;
11654   glSecondaryColor3bv: TglSecondaryColor3bv;
11655   glSecondaryColor3d: TglSecondaryColor3d;
11656   glSecondaryColor3dv: TglSecondaryColor3dv;
11657   glSecondaryColor3f: TglSecondaryColor3f;
11658   glSecondaryColor3fv: TglSecondaryColor3fv;
11659   glSecondaryColor3i: TglSecondaryColor3i;
11660   glSecondaryColor3iv: TglSecondaryColor3iv;
11661   glSecondaryColor3s: TglSecondaryColor3s;
11662   glSecondaryColor3sv: TglSecondaryColor3sv;
11663   glSecondaryColor3ub: TglSecondaryColor3ub;
11664   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11665   glSecondaryColor3ui: TglSecondaryColor3ui;
11666   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11667   glSecondaryColor3us: TglSecondaryColor3us;
11668   glSecondaryColor3usv: TglSecondaryColor3usv;
11669   glSecondaryColorPointer: TglSecondaryColorPointer;
11670   glWindowPos2d: TglWindowPos2d;
11671   glWindowPos2dv: TglWindowPos2dv;
11672   glWindowPos2f: TglWindowPos2f;
11673   glWindowPos2fv: TglWindowPos2fv;
11674   glWindowPos2i: TglWindowPos2i;
11675   glWindowPos2iv: TglWindowPos2iv;
11676   glWindowPos2s: TglWindowPos2s;
11677   glWindowPos2sv: TglWindowPos2sv;
11678   glWindowPos3d: TglWindowPos3d;
11679   glWindowPos3dv: TglWindowPos3dv;
11680   glWindowPos3f: TglWindowPos3f;
11681   glWindowPos3fv: TglWindowPos3fv;
11682   glWindowPos3i: TglWindowPos3i;
11683   glWindowPos3iv: TglWindowPos3iv;
11684   glWindowPos3s: TglWindowPos3s;
11685   glWindowPos3sv: TglWindowPos3sv;
11686 {$endif}
11687
11688   // GL_VERSION_1_5
11689   glGenQueries: TglGenQueries;
11690   glDeleteQueries: TglDeleteQueries;
11691   glIsQuery: TglIsQuery;
11692   glBeginQuery: TglBeginQuery;
11693   glEndQuery: TglEndQuery;
11694   glGetQueryiv: TglGetQueryiv;
11695   glGetQueryObjectiv: TglGetQueryObjectiv;
11696   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11697   glBindBuffer: TglBindBuffer;
11698   glDeleteBuffers: TglDeleteBuffers;
11699   glGenBuffers: TglGenBuffers;
11700   glIsBuffer: TglIsBuffer;
11701   glBufferData: TglBufferData;
11702   glBufferSubData: TglBufferSubData;
11703   glGetBufferSubData: TglGetBufferSubData;
11704   glMapBuffer: TglMapBuffer;
11705   glUnmapBuffer: TglUnmapBuffer;
11706   glGetBufferParameteriv: TglGetBufferParameteriv;
11707   glGetBufferPointerv: TglGetBufferPointerv;
11708
11709   // GL_VERSION_2_0
11710   glBlendEquationSeparate: TglBlendEquationSeparate;
11711   glDrawBuffers: TglDrawBuffers;
11712   glStencilOpSeparate: TglStencilOpSeparate;
11713   glStencilFuncSeparate: TglStencilFuncSeparate;
11714   glStencilMaskSeparate: TglStencilMaskSeparate;
11715   glAttachShader: TglAttachShader;
11716   glBindAttribLocation: TglBindAttribLocation;
11717   glCompileShader: TglCompileShader;
11718   glCreateProgram: TglCreateProgram;
11719   glCreateShader: TglCreateShader;
11720   glDeleteProgram: TglDeleteProgram;
11721   glDeleteShader: TglDeleteShader;
11722   glDetachShader: TglDetachShader;
11723   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11724   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11725   glGetActiveAttrib: TglGetActiveAttrib;
11726   glGetActiveUniform: TglGetActiveUniform;
11727   glGetAttachedShaders: TglGetAttachedShaders;
11728   glGetAttribLocation: TglGetAttribLocation;
11729   glGetProgramiv: TglGetProgramiv;
11730   glGetProgramInfoLog: TglGetProgramInfoLog;
11731   glGetShaderiv: TglGetShaderiv;
11732   glGetShaderInfoLog: TglGetShaderInfoLog;
11733   glGetShaderSource: TglGetShaderSource;
11734   glGetUniformLocation: TglGetUniformLocation;
11735   glGetUniformfv: TglGetUniformfv;
11736   glGetUniformiv: TglGetUniformiv;
11737   glGetVertexAttribfv: TglGetVertexAttribfv;
11738   glGetVertexAttribiv: TglGetVertexAttribiv;
11739   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11740   glIsProgram: TglIsProgram;
11741   glIsShader: TglIsShader;
11742   glLinkProgram: TglLinkProgram;
11743   glShaderSource: TglShaderSource;
11744   glUseProgram: TglUseProgram;
11745   glUniform1f: TglUniform1f;
11746   glUniform2f: TglUniform2f;
11747   glUniform3f: TglUniform3f;
11748   glUniform4f: TglUniform4f;
11749   glUniform1i: TglUniform1i;
11750   glUniform2i: TglUniform2i;
11751   glUniform3i: TglUniform3i;
11752   glUniform4i: TglUniform4i;
11753   glUniform1fv: TglUniform1fv;
11754   glUniform2fv: TglUniform2fv;
11755   glUniform3fv: TglUniform3fv;
11756   glUniform4fv: TglUniform4fv;
11757   glUniform1iv: TglUniform1iv;
11758   glUniform2iv: TglUniform2iv;
11759   glUniform3iv: TglUniform3iv;
11760   glUniform4iv: TglUniform4iv;
11761   glUniformMatrix2fv: TglUniformMatrix2fv;
11762   glUniformMatrix3fv: TglUniformMatrix3fv;
11763   glUniformMatrix4fv: TglUniformMatrix4fv;
11764   glValidateProgram: TglValidateProgram;
11765   glVertexAttrib1d: TglVertexAttrib1d;
11766   glVertexAttrib1dv: TglVertexAttrib1dv;
11767   glVertexAttrib1f: TglVertexAttrib1f;
11768   glVertexAttrib1fv: TglVertexAttrib1fv;
11769   glVertexAttrib1s: TglVertexAttrib1s;
11770   glVertexAttrib1sv: TglVertexAttrib1sv;
11771   glVertexAttrib2d: TglVertexAttrib2d;
11772   glVertexAttrib2dv: TglVertexAttrib2dv;
11773   glVertexAttrib2f: TglVertexAttrib2f;
11774   glVertexAttrib2fv: TglVertexAttrib2fv;
11775   glVertexAttrib2s: TglVertexAttrib2s;
11776   glVertexAttrib2sv: TglVertexAttrib2sv;
11777   glVertexAttrib3d: TglVertexAttrib3d;
11778   glVertexAttrib3dv: TglVertexAttrib3dv;
11779   glVertexAttrib3f: TglVertexAttrib3f;
11780   glVertexAttrib3fv: TglVertexAttrib3fv;
11781   glVertexAttrib3s: TglVertexAttrib3s;
11782   glVertexAttrib3sv: TglVertexAttrib3sv;
11783   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11784   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11785   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11786   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11787   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11788   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11789   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11790   glVertexAttrib4bv: TglVertexAttrib4bv;
11791   glVertexAttrib4d: TglVertexAttrib4d;
11792   glVertexAttrib4dv: TglVertexAttrib4dv;
11793   glVertexAttrib4f: TglVertexAttrib4f;
11794   glVertexAttrib4fv: TglVertexAttrib4fv;
11795   glVertexAttrib4iv: TglVertexAttrib4iv;
11796   glVertexAttrib4s: TglVertexAttrib4s;
11797   glVertexAttrib4sv: TglVertexAttrib4sv;
11798   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11799   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11800   glVertexAttrib4usv: TglVertexAttrib4usv;
11801   glVertexAttribPointer: TglVertexAttribPointer;
11802
11803   // GL_VERSION_2_1
11804   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11805   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11806   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11807   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11808   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11809   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11810
11811   // GL_VERSION_3_0
11812   glColorMaski: TglColorMaski;
11813   glGetBooleani_v: TglGetBooleani_v;
11814   glGetIntegeri_v: TglGetIntegeri_v;
11815   glEnablei: TglEnablei;
11816   glDisablei: TglDisablei;
11817   glIsEnabledi: TglIsEnabledi;
11818   glBeginTransformFeedback: TglBeginTransformFeedback;
11819   glEndTransformFeedback: TglEndTransformFeedback;
11820   glBindBufferRange: TglBindBufferRange;
11821   glBindBufferBase: TglBindBufferBase;
11822   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11823   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11824   glClampColor: TglClampColor;
11825   glBeginConditionalRender: TglBeginConditionalRender;
11826   glEndConditionalRender: TglEndConditionalRender;
11827   glVertexAttribI1i: TglVertexAttribI1i;
11828   glVertexAttribI2i: TglVertexAttribI2i;
11829   glVertexAttribI3i: TglVertexAttribI3i;
11830   glVertexAttribI4i: TglVertexAttribI4i;
11831   glVertexAttribI1ui: TglVertexAttribI1ui;
11832   glVertexAttribI2ui: TglVertexAttribI2ui;
11833   glVertexAttribI3ui: TglVertexAttribI3ui;
11834   glVertexAttribI4ui: TglVertexAttribI4ui;
11835   glVertexAttribI1iv: TglVertexAttribI1iv;
11836   glVertexAttribI2iv: TglVertexAttribI2iv;
11837   glVertexAttribI3iv: TglVertexAttribI3iv;
11838   glVertexAttribI4iv: TglVertexAttribI4iv;
11839   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11840   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11841   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11842   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11843   glVertexAttribI4bv: TglVertexAttribI4bv;
11844   glVertexAttribI4sv: TglVertexAttribI4sv;
11845   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11846   glVertexAttribI4usv: TglVertexAttribI4usv;
11847   glVertexAttribIPointer: TglVertexAttribIPointer;
11848   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11849   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11850   glGetUniformuiv: TglGetUniformuiv;
11851   glBindFragDataLocation: TglBindFragDataLocation;
11852   glGetFragDataLocation: TglGetFragDataLocation;
11853   glUniform1ui: TglUniform1ui;
11854   glUniform2ui: TglUniform2ui;
11855   glUniform3ui: TglUniform3ui;
11856   glUniform4ui: TglUniform4ui;
11857   glUniform1uiv: TglUniform1uiv;
11858   glUniform2uiv: TglUniform2uiv;
11859   glUniform3uiv: TglUniform3uiv;
11860   glUniform4uiv: TglUniform4uiv;
11861   glTexParameterIiv: TglTexParameterIiv;
11862   glTexParameterIuiv: TglTexParameterIuiv;
11863   glGetTexParameterIiv: TglGetTexParameterIiv;
11864   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11865   glClearBufferiv: TglClearBufferiv;
11866   glClearBufferuiv: TglClearBufferuiv;
11867   glClearBufferfv: TglClearBufferfv;
11868   glClearBufferfi: TglClearBufferfi;
11869   glGetStringi: TglGetStringi;
11870
11871   // GL_VERSION_2_1
11872   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11873   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11874   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11875
11876   // GL_VERSION_3_1
11877   glDrawArraysInstanced: TglDrawArraysInstanced;
11878   glDrawElementsInstanced: TglDrawElementsInstanced;
11879   glTexBuffer: TglTexBuffer;
11880   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11881
11882   // GL_VERSION_3_2
11883   glGetInteger64i_v: TglGetInteger64i_v;
11884   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11885   glFramebufferTexture: TglFramebufferTexture;
11886
11887   // GL_VERSION_3_3
11888   glVertexAttribDivisor: TglVertexAttribDivisor;
11889
11890   // GL_VERSION_4_0
11891   { OpenGL 4.0 also reuses entry points from these extensions: }
11892   { ARB_texture_query_lod (no entry points) }
11893   { ARB_draw_indirect }
11894   { ARB_gpu_shader5 (no entry points) }
11895   { ARB_gpu_shader_fp64 }
11896   { ARB_shader_subroutine }
11897   { ARB_tessellation_shader }
11898   { ARB_texture_buffer_object_rgb32 (no entry points) }
11899   { ARB_texture_cube_map_array (no entry points) }
11900   { ARB_texture_gather (no entry points) }
11901   { ARB_transform_feedback2 }
11902   { ARB_transform_feedback3 }
11903   glMinSampleShading: TglMinSampleShading;
11904   glBlendEquationi: TglBlendEquationi;
11905   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11906   glBlendFunci: TglBlendFunci;
11907   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11908
11909   // GL_3DFX_tbuffer
11910   glTbufferMask3DFX: TglTbufferMask3DFX;
11911
11912   // GL_APPLE_element_array
11913   glElementPointerAPPLE: TglElementPointerAPPLE;
11914   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
11915   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
11916   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
11917   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
11918
11919   // GL_APPLE_fence
11920   glGenFencesAPPLE: TglGenFencesAPPLE;
11921   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
11922   glSetFenceAPPLE: TglSetFenceAPPLE;
11923   glIsFenceAPPLE: TglIsFenceAPPLE;
11924   glTestFenceAPPLE: TglTestFenceAPPLE;
11925   glFinishFenceAPPLE: TglFinishFenceAPPLE;
11926   glTestObjectAPPLE: TglTestObjectAPPLE;
11927   glFinishObjectAPPLE: TglFinishObjectAPPLE;
11928
11929   // GL_APPLE_vertex_array_object
11930   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
11931   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
11932   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
11933   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
11934
11935   // GL_APPLE_vertex_array_range
11936   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
11937   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
11938   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
11939
11940   // GL_APPLE_texture_range
11941   glTextureRangeAPPLE: TglTextureRangeAPPLE;
11942   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
11943
11944   // GL_APPLE_vertex_program_evaluators
11945   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
11946   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
11947   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
11948   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
11949   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
11950   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
11951   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
11952
11953   // GL_APPLE_object_purgeable
11954   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
11955   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
11956   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
11957
11958   // GL_ARB_matrix_palette
11959   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
11960   glMatrixIndexubvARB: TglMatrixIndexubvARB;
11961   glMatrixIndexusvARB: TglMatrixIndexusvARB;
11962   glMatrixIndexuivARB: TglMatrixIndexuivARB;
11963   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
11964
11965   // GL_ARB_multisample
11966   glSampleCoverageARB: TglSampleCoverageARB;
11967
11968   // GL_ARB_multitexture
11969   glActiveTextureARB: TglActiveTextureARB;
11970   glClientActiveTextureARB: TglClientActiveTextureARB;
11971   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
11972   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
11973   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
11974   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
11975   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
11976   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
11977   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
11978   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
11979   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
11980   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
11981   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
11982   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
11983   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
11984   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
11985   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
11986   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
11987   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
11988   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
11989   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
11990   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
11991   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
11992   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
11993   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
11994   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
11995   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
11996   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
11997   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
11998   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
11999   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
12000   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
12001   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
12002   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
12003
12004   // GL_ARB_point_parameters
12005   glPointParameterfARB: TglPointParameterfARB;
12006   glPointParameterfvARB: TglPointParameterfvARB;
12007
12008   // GL_ARB_texture_compression
12009   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
12010   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
12011   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
12012   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
12013   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
12014   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
12015   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
12016
12017   // GL_ARB_transpose_matrix
12018   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12019   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12020   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12021   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12022
12023   // GL_ARB_vertex_blend
12024   glWeightbvARB: TglWeightbvARB;
12025   glWeightsvARB: TglWeightsvARB;
12026   glWeightivARB: TglWeightivARB;
12027   glWeightfvARB: TglWeightfvARB;
12028   glWeightdvARB: TglWeightdvARB;
12029   glWeightubvARB: TglWeightubvARB;
12030   glWeightusvARB: TglWeightusvARB;
12031   glWeightuivARB: TglWeightuivARB;
12032   glWeightPointerARB: TglWeightPointerARB;
12033   glVertexBlendARB: TglVertexBlendARB;
12034
12035   // GL_ARB_vertex_buffer_object
12036   glBindBufferARB: TglBindBufferARB;
12037   glDeleteBuffersARB: TglDeleteBuffersARB;
12038   glGenBuffersARB: TglGenBuffersARB;
12039   glIsBufferARB: TglIsBufferARB;
12040   glBufferDataARB: TglBufferDataARB;
12041   glBufferSubDataARB: TglBufferSubData;
12042   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12043   glMapBufferARB: TglMapBufferARB;
12044   glUnmapBufferARB: TglUnmapBufferARB;
12045   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12046   glGetBufferPointervARB: TglGetBufferPointervARB;
12047
12048   // GL_ARB_vertex_program
12049   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12050   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12051   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12052   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12053   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12054   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12055   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12056   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12057   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12058   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12059   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12060   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12061   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12062   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12063   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12064   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12065   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12066   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12067   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12068   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12069   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12070   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12071   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12072   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12073   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12074   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12075   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12076   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12077   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12078   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12079   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12080   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12081   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12082   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12083   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12084   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12085   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12086   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12087   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12088   glProgramStringARB: TglProgramStringARB;
12089   glBindProgramARB: TglBindProgramARB;
12090   glDeleteProgramsARB: TglDeleteProgramsARB;
12091   glGenProgramsARB: TglGenProgramsARB;
12092
12093   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12094   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12095   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12096   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12097   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12098   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12099   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12100   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12101   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12102   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12103   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12104   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12105   glGetProgramivARB: TglGetProgramivARB;
12106   glGetProgramStringARB: TglGetProgramStringARB;
12107   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12108   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12109   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12110   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12111   glIsProgramARB: TglIsProgramARB;
12112
12113   // GL_ARB_window_pos
12114   glWindowPos2dARB: TglWindowPos2dARB;
12115   glWindowPos2dvARB: TglWindowPos2dvARB;
12116   glWindowPos2fARB: TglWindowPos2fARB;
12117   glWindowPos2fvARB: TglWindowPos2fvARB;
12118   glWindowPos2iARB: TglWindowPos2iARB;
12119   glWindowPos2ivARB: TglWindowPos2ivARB;
12120   glWindowPos2sARB: TglWindowPos2sARB;
12121   glWindowPos2svARB: TglWindowPos2svARB;
12122   glWindowPos3dARB: TglWindowPos3dARB;
12123   glWindowPos3dvARB: TglWindowPos3dvARB;
12124   glWindowPos3fARB: TglWindowPos3fARB;
12125   glWindowPos3fvARB: TglWindowPos3fvARB;
12126   glWindowPos3iARB: TglWindowPos3iARB;
12127   glWindowPos3ivARB: TglWindowPos3ivARB;
12128   glWindowPos3sARB: TglWindowPos3sARB;
12129   glWindowPos3svARB: TglWindowPos3svARB;
12130
12131   // GL_ARB_draw_buffers
12132   glDrawBuffersARB: TglDrawBuffersARB;
12133
12134   // GL_ARB_color_buffer_float
12135   glClampColorARB: TglClampColorARB;
12136
12137   // GL_ARB_vertex_shader
12138   glGetActiveAttribARB: TglGetActiveAttribARB;
12139   glGetAttribLocationARB: TglGetAttribLocationARB;
12140   glBindAttribLocationARB: TglBindAttribLocationARB;
12141
12142   // GL_ARB_shader_objects
12143   glDeleteObjectARB: TglDeleteObjectARB;
12144   glGetHandleARB: TglGetHandleARB;
12145   glDetachObjectARB: TglDetachObjectARB;
12146   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12147   glShaderSourceARB: TglShaderSourceARB;
12148   glCompileShaderARB: TglCompileShaderARB;
12149   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12150   glAttachObjectARB: TglAttachObjectARB;
12151   glLinkProgramARB: TglLinkProgramARB;
12152   glUseProgramObjectARB: TglUseProgramObjectARB;
12153   glValidateProgramARB: TglValidateProgramARB;
12154   glUniform1fARB: TglUniform1fARB;
12155   glUniform2fARB: TglUniform2fARB;
12156   glUniform3fARB: TglUniform3fARB;
12157   glUniform4fARB: TglUniform4fARB;
12158   glUniform1iARB: TglUniform1iARB;
12159   glUniform2iARB: TglUniform2iARB;
12160   glUniform3iARB: TglUniform3iARB;
12161   glUniform4iARB: TglUniform4iARB;
12162   glUniform1fvARB: TglUniform1fvARB;
12163   glUniform2fvARB: TglUniform2fvARB;
12164   glUniform3fvARB: TglUniform3fvARB;
12165   glUniform4fvARB: TglUniform4fvARB;
12166   glUniform1ivARB: TglUniform1ivARB;
12167   glUniform2ivARB: TglUniform2ivARB;
12168   glUniform3ivARB: TglUniform3ivARB;
12169   glUniform4ivARB: TglUniform4ivARB;
12170   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12171   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12172   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12173   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12174   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12175   glGetInfoLogARB: TglGetInfoLogARB;
12176   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12177   glGetUniformLocationARB: TglGetUniformLocationARB;
12178   glGetActiveUniformARB: TglGetActiveUniformARB;
12179   glGetUniformfvARB: TglGetUniformfvARB;
12180   glGetUniformivARB: TglGetUniformivARB;
12181   glGetShaderSourceARB: TglGetShaderSourceARB;
12182
12183   // GL_ARB_Occlusion_Query
12184   glGenQueriesARB: TglGenQueriesARB;
12185   glDeleteQueriesARB: TglDeleteQueriesARB;
12186   glIsQueryARB: TglIsQueryARB;
12187   glBeginQueryARB: TglBeginQueryARB;
12188   glEndQueryARB: TglEndQueryARB;
12189   glGetQueryivARB: TglGetQueryivARB;
12190   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12191   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12192
12193   // GL_ARB_draw_instanced
12194   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12195   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12196
12197   // GL_ARB_framebuffer_object
12198   glIsRenderbuffer: TglIsRenderbuffer;
12199   glBindRenderbuffer: TglBindRenderbuffer;
12200   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12201   glGenRenderbuffers: TglGenRenderbuffers;
12202   glRenderbufferStorage: TglRenderbufferStorage;
12203   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12204   glIsFramebuffer: TglIsFramebuffer;
12205   glBindFramebuffer: TglBindFramebuffer;
12206   glDeleteFramebuffers: TglDeleteFramebuffers;
12207   glGenFramebuffers: TglGenFramebuffers;
12208   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12209   glFramebufferTexture1D: TglFramebufferTexture1D;
12210   glFramebufferTexture2D: TglFramebufferTexture2D;
12211   glFramebufferTexture3D: TglFramebufferTexture3D;
12212   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12213   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12214   glGenerateMipmap: TglGenerateMipmap;
12215   glBlitFramebuffer: TglBlitFramebuffer;
12216   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12217   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12218
12219   // GL_ARB_geometry_shader4
12220   glProgramParameteriARB: TglProgramParameteriARB;
12221   glFramebufferTextureARB: TglFramebufferTextureARB;
12222   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12223   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12224
12225   // GL_ARB_instanced_arrays
12226   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12227
12228   // GL_ARB_map_buffer_range
12229   glMapBufferRange: TglMapBufferRange;
12230   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12231
12232   // GL_ARB_texture_buffer_object
12233   glTexBufferARB: TglTexBufferARB;
12234
12235   // GL_ARB_vertex_array_object
12236   glBindVertexArray: TglBindVertexArray;
12237   glDeleteVertexArrays: TglDeleteVertexArrays;
12238   glGenVertexArrays: TglGenVertexArrays;
12239   glIsVertexArray: TglIsVertexArray;
12240
12241   // GL_ARB_uniform_buffer_object
12242   glGetUniformIndices: TglGetUniformIndices;
12243   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12244   glGetActiveUniformName: TglGetActiveUniformName;
12245   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12246   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12247   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12248   glUniformBlockBinding: TglUniformBlockBinding;
12249
12250   // GL_ARB_copy_buffer
12251   glCopyBufferSubData: TglCopyBufferSubData;
12252
12253   // GL_ARB_draw_elements_base_vertex
12254   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12255   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12256   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12257   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12258
12259   // GL_ARB_provoking_vertex
12260   glProvokingVertex: TglProvokingVertex;
12261
12262   // GL_ARB_sync
12263   glFenceSync: TglFenceSync;
12264   glIsSync: TglIsSync;
12265   glDeleteSync: TglDeleteSync;
12266   glClientWaitSync: TglClientWaitSync;
12267   glWaitSync: TglWaitSync;
12268   glGetInteger64v: TglGetInteger64v;
12269   glGetSynciv: TglGetSynciv;
12270
12271   // GL_ARB_texture_multisample
12272   glTexImage2DMultisample: TglTexImage2DMultisample;
12273   glTexImage3DMultisample: TglTexImage3DMultisample;
12274   glGetMultisamplefv: TglGetMultisamplefv;
12275   glSampleMaski: TglSampleMaski;
12276
12277   // GL_ARB_draw_buffers_blend
12278   glBlendEquationiARB: TglBlendEquationiARB;
12279   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12280   glBlendFunciARB: TglBlendFunciARB;
12281   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12282
12283   // GL_ARB_sample_shading
12284   glMinSampleShadingARB: TglMinSampleShadingARB;
12285
12286   // GL_ARB_shading_language_include
12287   glNamedStringARB: TglNamedStringARB;
12288   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12289   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12290   glIsNamedStringARB: TglIsNamedStringARB;
12291   glGetNamedStringARB: TglGetNamedStringARB;
12292   glGetNamedStringivARB: TglGetNamedStringivARB;
12293
12294   // GL_ARB_blend_func_extended
12295   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12296   glGetFragDataIndex: TglGetFragDataIndex;
12297
12298   // GL_ARB_sampler_objects
12299   glGenSamplers: TglGenSamplers;
12300   glDeleteSamplers: TglDeleteSamplers;
12301   glIsSampler: TglIsSampler;
12302   glBindSampler: TglBindSampler;
12303   glSamplerParameteri: TglSamplerParameteri;
12304   glSamplerParameteriv: TglSamplerParameteriv;
12305   glSamplerParameterf: TglSamplerParameterf;
12306   glSamplerParameterfv: TglSamplerParameterfv;
12307   glSamplerParameterIiv: TglSamplerParameterIiv;
12308   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12309   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12310   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12311   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12312   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12313
12314   // GL_ARB_timer_query
12315   glQueryCounter: TglQueryCounter;
12316   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12317   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12318
12319   // GL_ARB_vertex_type_2_10_10_10_rev
12320   glVertexP2ui: TglVertexP2ui;
12321   glVertexP2uiv: TglVertexP2uiv;
12322   glVertexP3ui: TglVertexP3ui;
12323   glVertexP3uiv: TglVertexP3uiv;
12324   glVertexP4ui: TglVertexP4ui;
12325   glVertexP4uiv: TglVertexP4uiv;
12326   glTexCoordP1ui: TglTexCoordP1ui;
12327   glTexCoordP1uiv: TglTexCoordP1uiv;
12328   glTexCoordP2ui: TglTexCoordP2ui;
12329   glTexCoordP2uiv: TglTexCoordP2uiv;
12330   glTexCoordP3ui: TglTexCoordP3ui;
12331   glTexCoordP3uiv: TglTexCoordP3uiv;
12332   glTexCoordP4ui: TglTexCoordP4ui;
12333   glTexCoordP4uiv: TglTexCoordP4uiv;
12334   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12335   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12336   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12337   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12338   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12339   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12340   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12341   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12342   glNormalP3ui: TglNormalP3ui;
12343   glNormalP3uiv: TglNormalP3uiv;
12344   glColorP3ui: TglColorP3ui;
12345   glColorP3uiv: TglColorP3uiv;
12346   glColorP4ui: TglColorP4ui;
12347   glColorP4uiv: TglColorP4uiv;
12348   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12349   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12350   glVertexAttribP1ui: TglVertexAttribP1ui;
12351   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12352   glVertexAttribP2ui: TglVertexAttribP2ui;
12353   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12354   glVertexAttribP3ui: TglVertexAttribP3ui;
12355   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12356   glVertexAttribP4ui: TglVertexAttribP4ui;
12357   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12358
12359   // GL_ARB_draw_indirect
12360   glDrawArraysIndirect: TglDrawArraysIndirect;
12361   glDrawElementsIndirect: TglDrawElementsIndirect;
12362
12363   // GL_ARB_gpu_shader_fp64
12364   glUniform1d: TglUniform1d;
12365   glUniform2d: TglUniform2d;
12366   glUniform3d: TglUniform3d;
12367   glUniform4d: TglUniform4d;
12368   glUniform1dv: TglUniform1dv;
12369   glUniform2dv: TglUniform2dv;
12370   glUniform3dv: TglUniform3dv;
12371   glUniform4dv: TglUniform4dv;
12372   glUniformMatrix2dv: TglUniformMatrix2dv;
12373   glUniformMatrix3dv: TglUniformMatrix3dv;
12374   glUniformMatrix4dv: TglUniformMatrix4dv;
12375   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12376   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12377   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12378   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12379   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12380   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12381   glGetUniformdv: TglGetUniformdv;
12382
12383   // GL_ARB_shader_subroutine
12384   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12385   glGetSubroutineIndex: TglGetSubroutineIndex;
12386   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12387   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12388   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12389   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12390   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12391   glGetProgramStageiv: TglGetProgramStageiv;
12392
12393   // GL_ARB_tessellation_shader
12394   glPatchParameteri: TglPatchParameteri;
12395   glPatchParameterfv: TglPatchParameterfv;
12396
12397   // GL_ARB_transform_feedback2
12398   glBindTransformFeedback: TglBindTransformFeedback;
12399   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12400   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12401   glIsTransformFeedback: TglIsTransformFeedback;
12402   glPauseTransformFeedback: TglPauseTransformFeedback;
12403   glResumeTransformFeedback: TglResumeTransformFeedback;
12404   glDrawTransformFeedback: TglDrawTransformFeedback;
12405
12406   // GL_ARB_transform_feedback3
12407   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12408   glBeginQueryIndexed: TglBeginQueryIndexed;
12409   glEndQueryIndexed: TglEndQueryIndexed;
12410   glGetQueryIndexediv: TglGetQueryIndexediv;
12411
12412   // GL_ARB_ES2_compatibility
12413   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12414   glShaderBinary: TglShaderBinary;
12415   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12416   glDepthRangef: TglDepthRangef;
12417   glClearDepthf: TglClearDepthf;
12418
12419   // GL_ARB_get_program_binary
12420   glGetProgramBinary: TglGetProgramBinary;
12421   glProgramBinary: TglProgramBinary;
12422   glProgramParameteri: TglProgramParameteri;
12423
12424   // GL_ARB_separate_shader_objects
12425   glUseProgramStages: TglUseProgramStages;
12426   glActiveShaderProgram: TglActiveShaderProgram;
12427   glCreateShaderProgramv: TglCreateShaderProgramv;
12428   glBindProgramPipeline: TglBindProgramPipeline;
12429   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12430   glGenProgramPipelines: TglGenProgramPipelines;
12431   glIsProgramPipeline: TglIsProgramPipeline;
12432   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12433   glProgramUniform1i: TglProgramUniform1i;
12434   glProgramUniform1iv: TglProgramUniform1iv;
12435   glProgramUniform1f: TglProgramUniform1f;
12436   glProgramUniform1fv: TglProgramUniform1fv;
12437   glProgramUniform1d: TglProgramUniform1d;
12438   glProgramUniform1dv: TglProgramUniform1dv;
12439   glProgramUniform1ui: TglProgramUniform1ui;
12440   glProgramUniform1uiv: TglProgramUniform1uiv;
12441   glProgramUniform2i: TglProgramUniform2i;
12442   glProgramUniform2iv: TglProgramUniform2iv;
12443   glProgramUniform2f: TglProgramUniform2f;
12444   glProgramUniform2fv: TglProgramUniform2fv;
12445   glProgramUniform2d: TglProgramUniform2d;
12446   glProgramUniform2dv: TglProgramUniform2dv;
12447   glProgramUniform2ui: TglProgramUniform2ui;
12448   glProgramUniform2uiv: TglProgramUniform2uiv;
12449   glProgramUniform3i: TglProgramUniform3i;
12450   glProgramUniform3iv: TglProgramUniform3iv;
12451   glProgramUniform3f: TglProgramUniform3f;
12452   glProgramUniform3fv: TglProgramUniform3fv;
12453   glProgramUniform3d: TglProgramUniform3d;
12454   glProgramUniform3dv: TglProgramUniform3dv;
12455   glProgramUniform3ui: TglProgramUniform3ui;
12456   glProgramUniform3uiv: TglProgramUniform3uiv;
12457   glProgramUniform4i: TglProgramUniform4i;
12458   glProgramUniform4iv: TglProgramUniform4iv;
12459   glProgramUniform4f: TglProgramUniform4f;
12460   glProgramUniform4fv: TglProgramUniform4fv;
12461   glProgramUniform4d: TglProgramUniform4d;
12462   glProgramUniform4dv: TglProgramUniform4dv;
12463   glProgramUniform4ui: TglProgramUniform4ui;
12464   glProgramUniform4uiv: TglProgramUniform4uiv;
12465   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12466   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12467   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12468   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12469   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12470   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12471   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12472   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12473   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12474   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12475   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12476   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12477   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12478   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12479   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12480   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12481   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12482   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12483   glValidateProgramPipeline: TglValidateProgramPipeline;
12484   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12485
12486   // GL_ARB_vertex_attrib_64bit
12487   glVertexAttribL1d: TglVertexAttribL1d;
12488   glVertexAttribL2d: TglVertexAttribL2d;
12489   glVertexAttribL3d: TglVertexAttribL3d;
12490   glVertexAttribL4d: TglVertexAttribL4d;
12491   glVertexAttribL1dv: TglVertexAttribL1dv;
12492   glVertexAttribL2dv: TglVertexAttribL2dv;
12493   glVertexAttribL3dv: TglVertexAttribL3dv;
12494   glVertexAttribL4dv: TglVertexAttribL4dv;
12495   glVertexAttribLPointer: TglVertexAttribLPointer;
12496   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12497
12498   // GL_ARB_viewport_array
12499   glViewportArrayv: TglViewportArrayv;
12500   glViewportIndexedf: TglViewportIndexedf;
12501   glViewportIndexedfv: TglViewportIndexedfv;
12502   glScissorArrayv: TglScissorArrayv;
12503   glScissorIndexed: TglScissorIndexed;
12504   glScissorIndexedv: TglScissorIndexedv;
12505   glDepthRangeArrayv: TglDepthRangeArrayv;
12506   glDepthRangeIndexed: TglDepthRangeIndexed;
12507   glGetFloati_v: TglGetFloati_v;
12508   glGetDoublei_v: TglGetDoublei_v;
12509
12510   // GL 4.2
12511
12512   // GL_ARB_base_instance
12513   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12514   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12515   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12516
12517   // GL_ARB_transform_feedback_instanced
12518   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12519   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12520
12521   // GL_ARB_internalformat_query
12522   glGetInternalformativ : TglGetInternalformativ;
12523
12524   // GL_ARB_shader_atomic_counters
12525   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12526
12527   /// GL_ARB_shader_image_load_store
12528   glBindImageTexture : TglBindImageTexture;
12529   glMemoryBarrier : TglMemoryBarrier;
12530
12531   // GL_ARB_texture_storage
12532   glTexStorage1D : TglTexStorage1D;
12533   glTexStorage2D : TglTexStorage2D;
12534   glTexStorage3D : TglTexStorage3D;
12535   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12536   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12537   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12538
12539
12540   // GL 4.3
12541     // GL_KHR_debug
12542     glDebugMessageControl : TglDebugMessageControl;
12543     glDebugMessageInsert : TglDebugMessageInsert;
12544     glDebugMessageCallback : TglDebugMessageCallback;
12545     glGetDebugMessageLog : TglGetDebugMessageLog;
12546     glPushDebugGroup : TglPushDebugGroup;
12547     glPopDebugGroup : TglPopDebugGroup;
12548     glObjectLabel : TglObjectLabel;
12549     glGetObjectLabel : TglGetObjectLabel;
12550     glObjectPtrLabel : TglObjectPtrLabel;
12551     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12552     // GL_ARB_clear_buffer_object
12553     glClearBufferData : TglClearBufferData;
12554     glClearBufferSubData : TglClearBufferSubData;
12555     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12556     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12557     // GL_ARB_compute_shader
12558     glDispatchCompute : TglDispatchCompute;
12559     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12560     // GL_ARB_copy_image
12561     glCopyImageSubData : TglCopyImageSubData;
12562     // GL_ARB_framebuffer_no_attachments
12563     glFramebufferParameteri : TglFramebufferParameteri;
12564     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12565     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12566     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12567     // GL_ARB_internalformat_query2
12568     glGetInternalformati64v : TglGetInternalformati64v;
12569     // GL_ARB_invalidate_subdata
12570     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12571     glInvalidateTexImage : TglInvalidateTexImage;
12572     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12573     glInvalidateBufferData : TglInvalidateBufferData;
12574     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12575     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12576     // GL_ARB_multi_draw_indirect
12577     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12578     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12579     // GL_ARB_program_interface_query
12580     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12581     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12582     glGetProgramResourceName : TglGetProgramResourceName;
12583     glGetProgramResourceiv : TglGetProgramResourceiv;
12584     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12585     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12586     // GL_ARB_shader_storage_buffer_object
12587     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12588     // GL_ARB_texture_buffer_range
12589     glTexBufferRange : TglTexBufferRange;
12590     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12591     // GL_ARB_texture_storage_multisample
12592     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12593     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12594     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12595     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12596     // GL_ARB_texture_view
12597     glTextureView : TglTextureView;
12598     // GL_ARB_vertex_attrib_binding
12599     glBindVertexBuffer : TglBindVertexBuffer;
12600     glVertexAttribFormat : TglVertexAttribFormat;
12601     glVertexAttribIFormat : TglVertexAttribIFormat;
12602     glVertexAttribLFormat : TglVertexAttribLFormat;
12603     glVertexAttribBinding : TglVertexAttribBinding;
12604     glVertexBindingDivisor : TglVertexBindingDivisor;
12605     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12606     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12607     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12608     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12609     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12610     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12611   // END GL 4.3
12612
12613
12614   // GL 4.4
12615     glBufferStorage : TglBufferStorage;
12616     glClearTexImage : TglClearTexImage;
12617     glClearTexSubImage : TglClearTexSubImage;
12618     glBindBuffersBase : TglBindBuffersBase;
12619     glBindBuffersRange : TglBindBuffersRange;
12620     glBindTextures : TglBindTextures;
12621     glBindSamplers : TglBindSamplers;
12622     glBindImageTextures : TglBindImageTextures;
12623     glBindVertexBuffers : TglBindVertexBuffers;
12624     glTexPageCommitmentARB : TglTexPageCommitmentARB;
12625
12626   // GL 4.5
12627   glClipControl : TglClipControl;
12628   glCreateTransformFeedbacks : TglCreateTransformFeedbacks;
12629   glTransformFeedbackBufferBase : TglTransformFeedbackBufferBase;
12630   glTransformFeedbackBufferRange : TglTransformFeedbackBufferRange;
12631   glGetTransformFeedbackiv : TglGetTransformFeedbackiv;
12632   glGetTransformFeedbacki_v : TglGetTransformFeedbacki_v;
12633   glGetTransformFeedbacki64_v : TglGetTransformFeedbacki64_v;
12634   glCreateBuffers : TglCreateBuffers;
12635   glNamedBufferStorage : TglNamedBufferStorage;
12636   glNamedBufferData : TglNamedBufferData;
12637   glNamedBufferSubData : TglNamedBufferSubData;
12638   glCopyNamedBufferSubData : TglCopyNamedBufferSubData;
12639   glClearNamedBufferData : TglClearNamedBufferData;
12640   glClearNamedBufferSubData : TglClearNamedBufferSubData;
12641   glMapNamedBuffer : TglMapNamedBuffer;
12642   glMapNamedBufferRange : TglMapNamedBufferRange;
12643   glUnmapNamedBuffer : TglUnmapNamedBuffer;
12644   glFlushMappedNamedBufferRange : TglFlushMappedNamedBufferRange;
12645   glGetNamedBufferParameteriv : TglGetNamedBufferParameteriv;
12646   glGetNamedBufferParameteri64v : TglGetNamedBufferParameteri64v;
12647   glGetNamedBufferPointerv : TglGetNamedBufferPointerv;
12648   glGetNamedBufferSubData : TglGetNamedBufferSubData;
12649   glCreateFramebuffers : TglCreateFramebuffers;
12650   glNamedFramebufferRenderbuffer : TglNamedFramebufferRenderbuffer;
12651   glNamedFramebufferParameteri : TglNamedFramebufferParameteri;
12652   glNamedFramebufferTexture : TglNamedFramebufferTexture;
12653   glNamedFramebufferTextureLayer : TglNamedFramebufferTextureLayer;
12654   glNamedFramebufferDrawBuffer : TglNamedFramebufferDrawBuffer;
12655   glNamedFramebufferDrawBuffers : TglNamedFramebufferDrawBuffers;
12656   glNamedFramebufferReadBuffer : TglNamedFramebufferReadBuffer;
12657   glInvalidateNamedFramebufferData : TglInvalidateNamedFramebufferData;
12658   glInvalidateNamedFramebufferSubData : TglInvalidateNamedFramebufferSubData;
12659   glClearNamedFramebufferiv : TglClearNamedFramebufferiv;
12660   glClearNamedFramebufferuiv : TglClearNamedFramebufferuiv;
12661   glClearNamedFramebufferfv : TglClearNamedFramebufferfv;
12662   glClearNamedFramebufferfi : TglClearNamedFramebufferfi;
12663   glBlitNamedFramebuffer : TglBlitNamedFramebuffer;
12664   glCheckNamedFramebufferStatus : TglCheckNamedFramebufferStatus;
12665   glGetNamedFramebufferParameteriv : TglGetNamedFramebufferParameteriv;
12666   glGetNamedFramebufferAttachmentParameteriv : TglGetNamedFramebufferAttachmentParameteriv;
12667   glCreateRenderbuffers : TglCreateRenderbuffers;
12668   glNamedRenderbufferStorage : TglNamedRenderbufferStorage;
12669   glNamedRenderbufferStorageMultisample : TglNamedRenderbufferStorageMultisample;
12670   glGetNamedRenderbufferParameteriv : TglGetNamedRenderbufferParameteriv;
12671   glCreateTextures : TglCreateTextures;
12672   glTextureBuffer : TglTextureBuffer;
12673   glTextureBufferRange : TglTextureBufferRange;
12674   glTextureStorage1D : TglTextureStorage1D;
12675   glTextureStorage2D : TglTextureStorage2D;
12676   glTextureStorage3D : TglTextureStorage3D;
12677   glTextureStorage2DMultisample : TglTextureStorage2DMultisample;
12678   glTextureStorage3DMultisample : TglTextureStorage3DMultisample;
12679   glTextureSubImage1D : TglTextureSubImage1D;
12680   glTextureSubImage2D : TglTextureSubImage2D;
12681   glTextureSubImage3D : TglTextureSubImage3D;
12682   glCompressedTextureSubImage1D : TglCompressedTextureSubImage1D;
12683   glCompressedTextureSubImage2D : TglCompressedTextureSubImage2D;
12684   glCompressedTextureSubImage3D : TglCompressedTextureSubImage3D;
12685   glCopyTextureSubImage1D : TglCopyTextureSubImage1D;
12686   glCopyTextureSubImage2D : TglCopyTextureSubImage2D;
12687   glCopyTextureSubImage3D : TglCopyTextureSubImage3D;
12688   glTextureParameterf : TglTextureParameterf;
12689   glTextureParameterfv : TglTextureParameterfv;
12690   glTextureParameteri : TglTextureParameteri;
12691   glTextureParameterIiv : TglTextureParameterIiv;
12692   glTextureParameterIuiv : TglTextureParameterIuiv;
12693   glTextureParameteriv : TglTextureParameteriv;
12694   glGenerateTextureMipmap : TglGenerateTextureMipmap;
12695   glBindTextureUnit : TglBindTextureUnit;
12696   glGetTextureImage : TglGetTextureImage;
12697   glGetCompressedTextureImage : TglGetCompressedTextureImage;
12698   glGetTextureLevelParameterfv : TglGetTextureLevelParameterfv;
12699   glGetTextureLevelParameteriv : TglGetTextureLevelParameteriv;
12700   glGetTextureParameterfv : TglGetTextureParameterfv;
12701   glGetTextureParameterIiv : TglGetTextureParameterIiv;
12702   glGetTextureParameterIuiv : TglGetTextureParameterIuiv;
12703   glGetTextureParameteriv : TglGetTextureParameteriv;
12704   glCreateVertexArrays : TglCreateVertexArrays;
12705   glDisableVertexArrayAttrib : TglDisableVertexArrayAttrib;
12706   glEnableVertexArrayAttrib : TglEnableVertexArrayAttrib;
12707   glVertexArrayElementBuffer : TglVertexArrayElementBuffer;
12708   glVertexArrayVertexBuffer : TglVertexArrayVertexBuffer;
12709   glVertexArrayVertexBuffers : TglVertexArrayVertexBuffers;
12710   glVertexArrayAttribBinding : TglVertexArrayAttribBinding;
12711   glVertexArrayAttribFormat : TglVertexArrayAttribFormat;
12712   glVertexArrayAttribIFormat : TglVertexArrayAttribIFormat;
12713   glVertexArrayAttribLFormat : TglVertexArrayAttribLFormat;
12714   glVertexArrayBindingDivisor : TglVertexArrayBindingDivisor;
12715   glGetVertexArrayiv : TglGetVertexArrayiv;
12716   glGetVertexArrayIndexediv : TglGetVertexArrayIndexediv;
12717   glGetVertexArrayIndexed64iv : TglGetVertexArrayIndexed64iv;
12718   glCreateSamplers : TglCreateSamplers;
12719   glCreateProgramPipelines : TglCreateProgramPipelines;
12720   glCreateQueries : TglCreateQueries;
12721   glMemoryBarrierByRegion : TglMemoryBarrierByRegion;
12722   glGetTextureSubImage : TglGetTextureSubImage;
12723   glGetCompressedTextureSubImage : TglGetCompressedTextureSubImage;
12724   glGetGraphicsResetStatus : TglGetGraphicsResetStatus;
12725   glGetnCompressedTexImage : TglGetnCompressedTexImage;
12726   glGetnTexImage : TglGetnTexImage;
12727   glGetnUniformdv : TglGetnUniformdv;
12728   glGetnUniformfv : TglGetnUniformfv;
12729   glGetnUniformiv : TglGetnUniformiv;
12730   glGetnUniformuiv : TglGetnUniformuiv;
12731   glReadnPixels : TglReadnPixels;
12732   glGetnMapdv : TglGetnMapdv;
12733   glGetnMapfv : TglGetnMapfv;
12734   glGetnMapiv : TglGetnMapiv;
12735   glGetnPixelMapfv : TglGetnPixelMapfv;
12736   glGetnPixelMapuiv : TglGetnPixelMapuiv;
12737   glGetnPixelMapusv : TglGetnPixelMapusv;
12738   glGetnPolygonStipple : TglGetnPolygonStipple;
12739   glGetnColorTable : TglGetnColorTable;
12740   glGetnConvolutionFilter : TglGetnConvolutionFilter;
12741   glGetnSeparableFilter : TglGetnSeparableFilter;
12742   glGetnHistogram : TglGetnHistogram;
12743   glGetnMinmax : TglGetnMinmax;
12744   glTextureBarrier : TglTextureBarrier;
12745
12746   // GL_ARB_sparse_buffer
12747   glBufferPageCommitmentARB : TglBufferPageCommitmentARB;
12748   glNamedBufferPageCommitmentEXT : TglNamedBufferPageCommitmentEXT;
12749   glNamedBufferPageCommitmentARB : TglNamedBufferPageCommitmentARB;
12750
12751   // GL_KHR_blend_equation_advanced
12752   glBlendBarrierKHR : TglBlendBarrierKHR;
12753
12754   // GL_ARB_cl_event
12755   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12756
12757   // GL_ARB_debug_output
12758   glDebugMessageControlARB: TglDebugMessageControlARB;
12759   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12760   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12761   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12762
12763   // GL_ARB_compute_variable_group_size
12764   glDispatchComputeGroupSizeARB : TglDispatchComputeGroupSizeARB;
12765
12766   // GL_ARB_robustness
12767   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12768   glGetnMapdvARB: TglGetnMapdvARB;
12769   glGetnMapfvARB: TglGetnMapfvARB;
12770   glGetnMapivARB: TglGetnMapivARB;
12771   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12772   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12773   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12774   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12775   glGetnColorTableARB: TglGetnColorTableARB;
12776   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12777   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12778   glGetnHistogramARB: TglGetnHistogramARB;
12779   glGetnMinmaxARB: TglGetnMinmaxARB;
12780   glGetnTexImageARB: TglGetnTexImageARB;
12781   glReadnPixelsARB: TglReadnPixelsARB;
12782   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12783   glGetnUniformfvARB: TglGetnUniformfvARB;
12784   glGetnUniformivARB: TglGetnUniformivARB;
12785   glGetnUniformuivARB: TglGetnUniformuivARB;
12786   glGetnUniformdvARB: TglGetnUniformdvARB;
12787
12788   // GL_ATI_draw_buffers
12789   glDrawBuffersATI: TglDrawBuffersATI;
12790
12791   // GL_ATI_element_array
12792   glElementPointerATI: TglElementPointerATI;
12793   glDrawElementArrayATI: TglDrawElementArrayATI;
12794   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12795
12796   // GL_ATI_envmap_bumpmap
12797   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12798   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12799   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12800   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12801
12802   // GL_ATI_fragment_shader
12803   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12804   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12805   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12806   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12807   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12808   glPassTexCoordATI: TglPassTexCoordATI;
12809   glSampleMapATI: TglSampleMapATI;
12810   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12811   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12812   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12813   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12814   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12815   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12816   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12817
12818   // GL_ATI_map_object_buffer
12819   glMapObjectBufferATI: TglMapObjectBufferATI;
12820   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12821
12822   // GL_ATI_pn_triangles
12823   glPNTrianglesiATI: TglPNTrianglesiATI;
12824   glPNTrianglesfATI: TglPNTrianglesfATI;
12825
12826   // GL_ATI_separate_stencil
12827   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12828   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12829
12830   // GL_ATI_vertex_array_object
12831   glNewObjectBufferATI: TglNewObjectBufferATI;
12832   glIsObjectBufferATI: TglIsObjectBufferATI;
12833   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12834   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12835   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12836   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12837   glArrayObjectATI: TglArrayObjectATI;
12838   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12839   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12840   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12841   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12842   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12843   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12844   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12845   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12846
12847   // GL_ATI_vertex_streams
12848   glVertexStream1sATI: TglVertexStream1sATI;
12849   glVertexStream1svATI: TglVertexStream1svATI;
12850   glVertexStream1iATI: TglVertexStream1iATI;
12851   glVertexStream1ivATI: TglVertexStream1ivATI;
12852   glVertexStream1fATI: TglVertexStream1fATI;
12853   glVertexStream1fvATI: TglVertexStream1fvATI;
12854   glVertexStream1dATI: TglVertexStream1dATI;
12855   glVertexStream1dvATI: TglVertexStream1dvATI;
12856   glVertexStream2sATI: TglVertexStream2sATI;
12857   glVertexStream2svATI: TglVertexStream2svATI;
12858   glVertexStream2iATI: TglVertexStream2iATI;
12859   glVertexStream2ivATI: TglVertexStream2ivATI;
12860   glVertexStream2fATI: TglVertexStream2fATI;
12861   glVertexStream2fvATI: TglVertexStream2fvATI;
12862   glVertexStream2dATI: TglVertexStream2dATI;
12863   glVertexStream2dvATI: TglVertexStream2dvATI;
12864   glVertexStream3sATI: TglVertexStream3sATI;
12865   glVertexStream3svATI: TglVertexStream3svATI;
12866   glVertexStream3iATI: TglVertexStream3iATI;
12867   glVertexStream3ivATI: TglVertexStream3ivATI;
12868   glVertexStream3fATI: TglVertexStream3fATI;
12869   glVertexStream3fvATI: TglVertexStream3fvATI;
12870   glVertexStream3dATI: TglVertexStream3dATI;
12871   glVertexStream3dvATI: TglVertexStream3dvATI;
12872   glVertexStream4sATI: TglVertexStream4sATI;
12873   glVertexStream4svATI: TglVertexStream4svATI;
12874   glVertexStream4iATI: TglVertexStream4iATI;
12875   glVertexStream4ivATI: TglVertexStream4ivATI;
12876   glVertexStream4fATI: TglVertexStream4fATI;
12877   glVertexStream4fvATI: TglVertexStream4fvATI;
12878   glVertexStream4dATI: TglVertexStream4dATI;
12879   glVertexStream4dvATI: TglVertexStream4dvATI;
12880   glNormalStream3bATI: TglNormalStream3bATI;
12881   glNormalStream3bvATI: TglNormalStream3bvATI;
12882   glNormalStream3sATI: TglNormalStream3sATI;
12883   glNormalStream3svATI: TglNormalStream3svATI;
12884   glNormalStream3iATI: TglNormalStream3iATI;
12885   glNormalStream3ivATI: TglNormalStream3ivATI;
12886   glNormalStream3fATI: TglNormalStream3fATI;
12887   glNormalStream3fvATI: TglNormalStream3fvATI;
12888   glNormalStream3dATI: TglNormalStream3dATI;
12889   glNormalStream3dvATI: TglNormalStream3dvATI;
12890   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12891   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12892   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12893
12894   // GL_AMD_performance_monitor
12895   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12896   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12897   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12898   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12899   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12900   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12901   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12902   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12903   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12904   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12905   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12906
12907   // GL_AMD_vertex_shader_tesselator
12908   glTessellationFactorAMD: TglTessellationFactorAMD;
12909   glTessellationModeAMD: TglTessellationModeAMD;
12910
12911   // GL_AMD_draw_buffers_blend
12912   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12913   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12914   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12915   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12916
12917   // GL_AMD_name_gen_delete
12918   glGenNamesAMD: TglGenNamesAMD;
12919   glDeleteNamesAMD: TglDeleteNamesAMD;
12920   glIsNameAMD: TglIsNameAMD;
12921
12922   // GL_AMD_debug_output
12923   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12924   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12925   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12926   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12927
12928   // GL_EXT_blend_color
12929   glBlendColorEXT: TglBlendColorEXT;
12930
12931   // GL_EXT_blend_func_separate
12932   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12933
12934   // GL_EXT_blend_minmax
12935   glBlendEquationEXT: TglBlendEquationEXT;
12936
12937   // GL_EXT_color_subtable
12938   glColorSubTableEXT: TglColorSubTableEXT;
12939   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12940
12941   // GL_EXT_compiled_vertex_array
12942   glLockArraysEXT: TglLockArraysEXT;
12943   glUnlockArraysEXT: TglUnlockArraysEXT;
12944
12945   // GL_EXT_convolution
12946   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12947   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12948   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12949   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12950   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12951   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12952   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12953   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12954   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12955   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12956   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12957   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12958   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12959
12960   // GL_EXT_coordinate_frame
12961   glTangent3bEXT: TglTangent3bEXT;
12962   glTangent3bvEXT: TglTangent3bvEXT;
12963   glTangent3dEXT: TglTangent3dEXT;
12964   glTangent3dvEXT: TglTangent3dvEXT;
12965   glTangent3fEXT: TglTangent3fEXT;
12966   glTangent3fvEXT: TglTangent3fvEXT;
12967   glTangent3iEXT: TglTangent3iEXT;
12968   glTangent3ivEXT: TglTangent3ivEXT;
12969   glTangent3sEXT: TglTangent3sEXT;
12970   glTangent3svEXT: TglTangent3svEXT;
12971   glBinormal3bEXT: TglBinormal3bEXT;
12972   glBinormal3bvEXT: TglBinormal3bvEXT;
12973   glBinormal3dEXT: TglBinormal3dEXT;
12974   glBinormal3dvEXT: TglBinormal3dvEXT;
12975   glBinormal3fEXT: TglBinormal3fEXT;
12976   glBinormal3fvEXT: TglBinormal3fvEXT;
12977   glBinormal3iEXT: TglBinormal3iEXT;
12978   glBinormal3ivEXT: TglBinormal3ivEXT;
12979   glBinormal3sEXT: TglBinormal3sEXT;
12980   glBinormal3svEXT: TglBinormal3svEXT;
12981   glTangentPointerEXT: TglTangentPointerEXT;
12982   glBinormalPointerEXT: TglBinormalPointerEXT;
12983
12984   // GL_EXT_copy_texture
12985   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12986   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12987   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12988   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12989   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12990
12991   // GL_EXT_cull_vertex
12992   glCullParameterdvEXT: TglCullParameterdvEXT;
12993   glCullParameterfvEXT: TglCullParameterfvEXT;
12994
12995   // GL_EXT_draw_range_elements
12996   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12997
12998   // GL_EXT_fog_coord
12999   glFogCoordfEXT: TglFogCoordfEXT;
13000   glFogCoordfvEXT: TglFogCoordfvEXT;
13001   glFogCoorddEXT: TglFogCoorddEXT;
13002   glFogCoorddvEXT: TglFogCoorddvEXT;
13003   glFogCoordPointerEXT: TglFogCoordPointerEXT;
13004
13005   // GL_EXT_framebuffer_object
13006   glIsRenderbufferEXT: TglIsRenderbufferEXT;
13007   glBindRenderbufferEXT: TglBindRenderbufferEXT;
13008   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
13009   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
13010   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
13011   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
13012   glIsFramebufferEXT: TglIsFramebufferEXT;
13013   glBindFramebufferEXT: TglBindFramebufferEXT;
13014   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
13015   glGenFramebuffersEXT: TglGenFramebuffersEXT;
13016   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
13017   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
13018   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
13019   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
13020   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
13021   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
13022   glGenerateMipmapEXT: TglGenerateMipmapEXT;
13023
13024   // GL_EXT_histogram
13025   glGetHistogramEXT: TglGetHistogramEXT;
13026   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
13027   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
13028   glGetMinmaxEXT: TglGetMinmaxEXT;
13029   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
13030   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
13031   glHistogramEXT: TglHistogramEXT;
13032   glMinmaxEXT: TglMinmaxEXT;
13033   glResetHistogramEXT: TglResetHistogramEXT;
13034   glResetMinmaxEXT: TglResetMinmaxEXT;
13035
13036   // GL_EXT_index_func
13037   glIndexFuncEXT: TglIndexFuncEXT;
13038
13039   // GL_EXT_index_material
13040   glIndexMaterialEXT: TglIndexMaterialEXT;
13041
13042   // GL_EXT_light_texture
13043   glApplyTextureEXT: TglApplyTextureEXT;
13044   glTextureLightEXT: TglTextureLightEXT;
13045   glTextureMaterialEXT: TglTextureMaterialEXT;
13046
13047   // GL_EXT_multi_draw_arrays
13048   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13049   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13050
13051   // GL_EXT_multisample
13052   glSampleMaskEXT: TglSampleMaskEXT;
13053   glSamplePatternEXT: TglSamplePatternEXT;
13054
13055   // GL_EXT_paletted_texture
13056   glColorTableEXT: TglColorTableEXT;
13057   glGetColorTableEXT: TglGetColorTableEXT;
13058   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13059   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13060
13061   // GL_EXT_pixel_transform
13062   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13063   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13064   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13065   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13066
13067   // GL_EXT_point_parameters
13068   glPointParameterfEXT: TglPointParameterfEXT;
13069   glPointParameterfvEXT: TglPointParameterfvEXT;
13070
13071   // GL_EXT_polygon_offset
13072   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13073
13074   // GL_EXT_secondary_color
13075   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13076   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13077   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13078   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13079   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13080   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13081   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13082   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13083   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13084   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13085   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13086   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13087   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13088   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13089   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13090   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13091   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13092
13093   // GL_EXT_stencil_two_side
13094   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13095
13096   // GL_EXT_subtexture
13097   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13098   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13099
13100   // GL_EXT_texture3D
13101   glTexImage3DEXT: TglTexImage3DEXT;
13102   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13103
13104   // GL_EXT_texture_object
13105   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13106   glBindTextureEXT: TglBindTextureEXT;
13107   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13108   glGenTexturesEXT: TglGenTexturesEXT;
13109   glIsTextureEXT: TglIsTextureEXT;
13110   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13111
13112   // GL_EXT_texture_perturb_normal
13113   glTextureNormalEXT: TglTextureNormalEXT;
13114
13115   // GL_EXT_vertex_array
13116   glArrayElementEXT: TglArrayElementEXT;
13117   glColorPointerEXT: TglColorPointerEXT;
13118   glDrawArraysEXT: TglDrawArraysEXT;
13119   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13120   glGetPointervEXT: TglGetPointervEXT;
13121   glIndexPointerEXT: TglIndexPointerEXT;
13122   glNormalPointerEXT: TglNormalPointerEXT;
13123   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13124   glVertexPointerEXT: TglVertexPointerEXT;
13125
13126   // GL_EXT_vertex_shader
13127   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13128   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13129   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13130   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13131   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13132   glShaderOp1EXT: TglShaderOp1EXT;
13133   glShaderOp2EXT: TglShaderOp2EXT;
13134   glShaderOp3EXT: TglShaderOp3EXT;
13135   glSwizzleEXT: TglSwizzleEXT;
13136   glWriteMaskEXT: TglWriteMaskEXT;
13137   glInsertComponentEXT: TglInsertComponentEXT;
13138   glExtractComponentEXT: TglExtractComponentEXT;
13139   glGenSymbolsEXT: TglGenSymbolsEXT;
13140   glSetInvariantEXT: TglSetInvariantEXT;
13141   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13142   glVariantbvEXT: TglVariantbvEXT;
13143   glVariantsvEXT: TglVariantsvEXT;
13144   glVariantivEXT: TglVariantivEXT;
13145   glVariantfvEXT: TglVariantfvEXT;
13146   glVariantdvEXT: TglVariantdvEXT;
13147   glVariantubvEXT: TglVariantubvEXT;
13148   glVariantusvEXT: TglVariantusvEXT;
13149   glVariantuivEXT: TglVariantuivEXT;
13150   glVariantPointerEXT: TglVariantPointerEXT;
13151   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13152   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13153   glBindLightParameterEXT: TglBindLightParameterEXT;
13154   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13155   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13156   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13157   glBindParameterEXT: TglBindParameterEXT;
13158   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13159   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13160   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13161   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13162   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13163   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13164   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13165   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13166   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13167   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13168   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13169
13170   // GL_EXT_vertex_weighting
13171   glVertexWeightfEXT: TglVertexWeightfEXT;
13172   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13173   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13174
13175   // GL_EXT_stencil_clear_tag
13176   glStencilClearTagEXT: TglStencilClearTagEXT;
13177
13178   // GL_EXT_framebuffer_blit
13179   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13180
13181   // GL_EXT_framebuffer_multisample
13182   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13183
13184   // GL_EXT_timer_query
13185   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13186   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13187
13188   // GL_EXT_gpu_program_parameters
13189   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13190   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13191
13192   // GL_EXT_bindable_uniform
13193   glUniformBufferEXT: TglUniformBufferEXT;
13194   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13195   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13196
13197   // GL_EXT_draw_buffers2
13198   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13199   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13200   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13201   glEnableIndexedEXT: TglEnableIndexedEXT;
13202   glDisableIndexedEXT: TglDisableIndexedEXT;
13203   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13204
13205   // GL_EXT_draw_instanced
13206   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13207   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13208
13209   // GL_EXT_geometry_shader4
13210   glProgramParameteriEXT: TglProgramParameteriEXT;
13211   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13212 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13213   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13214
13215   // GL_EXT_gpu_shader4
13216   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13217   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13218   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13219   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13220   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13221   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13222   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13223   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13224   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13225   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13226   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13227   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13228   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13229   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13230   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13231   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13232   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13233   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13234   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13235   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13236   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13237   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13238   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13239   glUniform1uiEXT: TglUniform1uiEXT;
13240   glUniform2uiEXT: TglUniform2uiEXT;
13241   glUniform3uiEXT: TglUniform3uiEXT;
13242   glUniform4uiEXT: TglUniform4uiEXT;
13243   glUniform1uivEXT: TglUniform1uivEXT;
13244   glUniform2uivEXT: TglUniform2uivEXT;
13245   glUniform3uivEXT: TglUniform3uivEXT;
13246   glUniform4uivEXT: TglUniform4uivEXT;
13247   glGetUniformuivEXT: TglGetUniformuivEXT;
13248   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13249   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13250
13251   // GL_EXT_texture_array
13252   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13253
13254   // GL_EXT_texture_buffer_object
13255   glTexBufferEXT: TglTexBufferEXT;
13256
13257   // GL_EXT_texture_integer
13258   glClearColorIiEXT: TglClearColorIiEXT;
13259   glClearColorIuiEXT: TglClearColorIuiEXT;
13260   glTexParameterIivEXT: TglTexParameterIivEXT;
13261   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13262   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13263   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13264
13265   // GL_EXT_transform_feedback
13266   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13267   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13268   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13269   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13270   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13271   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13272   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13273
13274   // GL_EXT_direct_state_access
13275   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13276   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13277   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13278   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13279   glMatrixMultfEXT: TglMatrixMultfEXT;
13280   glMatrixMultdEXT: TglMatrixMultdEXT;
13281   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13282   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13283   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13284   glMatrixScalefEXT: TglMatrixScalefEXT;
13285   glMatrixScaledEXT: TglMatrixScaledEXT;
13286   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13287   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13288   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13289   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13290   glMatrixPopEXT: TglMatrixPopEXT;
13291   glMatrixPushEXT: TglMatrixPushEXT;
13292   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13293   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13294   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13295   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13296   glTextureParameterfEXT: TglTextureParameterfEXT;
13297   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13298   glTextureParameteriEXT: TglTextureParameteriEXT;
13299   glTextureParameterivEXT: TglTextureParameterivEXT;
13300   glTextureImage1DEXT: TglTextureImage1DEXT;
13301   glTextureImage2DEXT: TglTextureImage2DEXT;
13302   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13303   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13304   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13305   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13306   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13307   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13308   glGetTextureImageEXT: TglGetTextureImageEXT;
13309   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13310   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13311   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13312   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13313   glTextureImage3DEXT: TglTextureImage3DEXT;
13314   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13315   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13316   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13317   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13318   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13319   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13320   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13321   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13322   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13323   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13324   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13325   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13326   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13327   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13328   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13329   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13330   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13331   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13332   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13333   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13334   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13335   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13336   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13337   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13338   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13339   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13340   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13341   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13342   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13343   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13344   glMultiTexGendEXT: TglMultiTexGendEXT;
13345   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13346   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13347   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13348   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13349   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13350   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13351   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13352   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13353   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13354   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13355   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13356   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13357   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13358   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13359   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13360   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13361   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13362   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13363   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13364   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13365   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13366   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13367   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13368   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13369   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13370   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13371   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13372   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13373   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13374   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13375   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13376   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13377   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13378   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13379   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13380   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13381   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13382   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13383   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13384   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13385   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13386   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13387   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13388   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13389   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13390   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13391   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13392   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13393   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13394   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13395   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13396   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13397   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13398   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13399   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13400   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13401   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13402   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13403   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13404   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13405   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13406   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13407   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13408   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13409   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13410   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13411   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13412   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13413   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13414   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13415   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13416   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13417   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13418   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13419   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13420   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13421   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13422   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13423   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13424   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13425   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13426   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13427   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13428   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13429   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13430   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13431   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13432   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13433   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13434   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13435   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13436   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13437   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13438   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13439   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13440   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13441   glTextureBufferEXT: TglTextureBufferEXT;
13442   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13443   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13444   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13445   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13446   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13447   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13448   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13449   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13450   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13451   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13452   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13453   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13454   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13455   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13456   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13457   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13458   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13459   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13460   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13461   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13462   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13463   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13464   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13465   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13466   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13467   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13468   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13469   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13470   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13471   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13472   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13473   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13474   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13475   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13476   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13477   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13478   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13479   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13480   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13481
13482   // GL_EXT_separate_shader_objects
13483   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13484   glActiveProgramEXT: TglActiveProgramEXT;
13485   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13486
13487   // GL_EXT_shader_image_load_store
13488   glBindImageTextureEXT: TglBindImageTextureEXT;
13489   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13490
13491   // GL_EXT_vertex_attrib_64bit
13492   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13493   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13494   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13495   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13496   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13497   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13498   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13499   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13500   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13501   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13502   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13503
13504   // GL_HP_image_transform
13505   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13506   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13507   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13508   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13509   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13510   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13511
13512   // GL_EXT_depth_bounds_test
13513   glDepthBoundsEXT: TglDepthBoundsEXT;
13514
13515   // GL_EXT_blend_equation_separate
13516   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13517
13518   // GL_IBM_multimode_draw_arrays
13519   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13520   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13521
13522   // GL_IBM_vertex_array_lists
13523   glColorPointerListIBM: TglColorPointerListIBM;
13524   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13525   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13526   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13527   glIndexPointerListIBM: TglIndexPointerListIBM;
13528   glNormalPointerListIBM: TglNormalPointerListIBM;
13529   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13530   glVertexPointerListIBM: TglVertexPointerListIBM;
13531
13532   // GL_INGR_blend_func_separate
13533   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13534
13535   // GL_INTEL_parallel_arrays
13536   glVertexPointervINTEL: TglVertexPointervINTEL;
13537   glNormalPointervINTEL: TglNormalPointervINTEL;
13538   glColorPointervINTEL: TglColorPointervINTEL;
13539   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13540
13541   // GL_MESA_resize_buffers
13542   glResizeBuffersMESA: TglResizeBuffersMESA;
13543
13544   // GL_MESA_window_pos
13545   glWindowPos2dMESA: TglWindowPos2dMESA;
13546   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13547   glWindowPos2fMESA: TglWindowPos2fMESA;
13548   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13549   glWindowPos2iMESA: TglWindowPos2iMESA;
13550   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13551   glWindowPos2sMESA: TglWindowPos2sMESA;
13552   glWindowPos2svMESA: TglWindowPos2svMESA;
13553   glWindowPos3dMESA: TglWindowPos3dMESA;
13554   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13555   glWindowPos3fMESA: TglWindowPos3fMESA;
13556   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13557   glWindowPos3iMESA: TglWindowPos3iMESA;
13558   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13559   glWindowPos3sMESA: TglWindowPos3sMESA;
13560   glWindowPos3svMESA: TglWindowPos3svMESA;
13561   glWindowPos4dMESA: TglWindowPos4dMESA;
13562   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13563   glWindowPos4fMESA: TglWindowPos4fMESA;
13564   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13565   glWindowPos4iMESA: TglWindowPos4iMESA;
13566   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13567   glWindowPos4sMESA: TglWindowPos4sMESA;
13568   glWindowPos4svMESA: TglWindowPos4svMESA;
13569
13570   // GL_NV_evaluators
13571   glMapControlPointsNV: TglMapControlPointsNV;
13572   glMapParameterivNV: TglMapParameterivNV;
13573   glMapParameterfvNV: TglMapParameterfvNV;
13574   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13575   glGetMapParameterivNV: TglGetMapParameterivNV;
13576   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13577   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13578   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13579   glEvalMapsNV: TglEvalMapsNV;
13580
13581   // GL_NV_fence
13582   glDeleteFencesNV: TglDeleteFencesNV;
13583   glGenFencesNV: TglGenFencesNV;
13584   glIsFenceNV: TglIsFenceNV;
13585   glTestFenceNV: TglTestFenceNV;
13586   glGetFenceivNV: TglGetFenceivNV;
13587   glFinishFenceNV: TglFinishFenceNV;
13588   glSetFenceNV: TglSetFenceNV;
13589
13590   // GL_NV_fragment_program
13591   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13592   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13593   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13594   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13595   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13596   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13597
13598   // GL_NV_half_float
13599   glVertex2hNV: TglVertex2hNV;
13600   glVertex2hvNV: TglVertex2hvNV;
13601   glVertex3hNV: TglVertex3hNV;
13602   glVertex3hvNV: TglVertex3hvNV;
13603   glVertex4hNV: TglVertex4hNV;
13604   glVertex4hvNV: TglVertex4hvNV;
13605   glNormal3hNV: TglNormal3hNV;
13606   glNormal3hvNV: TglNormal3hvNV;
13607   glColor3hNV: TglColor3hNV;
13608   glColor3hvNV: TglColor3hvNV;
13609   glColor4hNV: TglColor4hNV;
13610   glColor4hvNV: TglColor4hvNV;
13611   glTexCoord1hNV: TglTexCoord1hNV;
13612   glTexCoord1hvNV: TglTexCoord1hvNV;
13613   glTexCoord2hNV: TglTexCoord2hNV;
13614   glTexCoord2hvNV: TglTexCoord2hvNV;
13615   glTexCoord3hNV: TglTexCoord3hNV;
13616   glTexCoord3hvNV: TglTexCoord3hvNV;
13617   glTexCoord4hNV: TglTexCoord4hNV;
13618   glTexCoord4hvNV: TglTexCoord4hvNV;
13619   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13620   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13621   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13622   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13623   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13624   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13625   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13626   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13627   glFogCoordhNV: TglFogCoordhNV;
13628   glFogCoordhvNV: TglFogCoordhvNV;
13629   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13630   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13631   glVertexWeighthNV: TglVertexWeighthNV;
13632   glVertexWeighthvNV: TglVertexWeighthvNV;
13633   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13634   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13635   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13636   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13637   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13638   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13639   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13640   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13641   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13642   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13643   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13644   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13645
13646   // GL_NV_occlusion_query
13647   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13648   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13649   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13650   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13651   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13652   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13653   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13654
13655   // GL_NV_pixel_data_range
13656   glPixelDataRangeNV: TglPixelDataRangeNV;
13657   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13658
13659   // GL_NV_point_sprite
13660   glPointParameteriNV: TglPointParameteriNV;
13661   glPointParameterivNV: TglPointParameterivNV;
13662
13663   // GL_NV_primitive_restart
13664   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13665   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13666
13667   // GL_NV_register_combiners
13668   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13669   glCombinerParameterfNV: TglCombinerParameterfNV;
13670   glCombinerParameterivNV: TglCombinerParameterivNV;
13671   glCombinerParameteriNV: TglCombinerParameteriNV;
13672   glCombinerInputNV: TglCombinerInputNV;
13673   glCombinerOutputNV: TglCombinerOutputNV;
13674   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13675   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13676   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13677   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13678   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13679   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13680   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13681
13682   // GL_NV_register_combiners2
13683   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13684   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13685
13686   // GL_NV_vertex_array_range
13687   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13688   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13689
13690   // GL_NV_vertex_program
13691   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13692   glBindProgramNV: TglBindProgramNV;
13693   glDeleteProgramsNV: TglDeleteProgramsNV;
13694   glExecuteProgramNV: TglExecuteProgramNV;
13695   glGenProgramsNV: TglGenProgramsNV;
13696   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13697   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13698   glGetProgramivNV: TglGetProgramivNV;
13699   glGetProgramStringNV: TglGetProgramStringNV;
13700   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13701   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13702   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13703   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13704   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13705   glIsProgramNV: TglIsProgramNV;
13706   glLoadProgramNV: TglLoadProgramNV;
13707   glProgramParameter4dNV: TglProgramParameter4dNV;
13708   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13709   glProgramParameter4fNV: TglProgramParameter4fNV;
13710   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13711   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13712   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13713   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13714   glTrackMatrixNV: TglTrackMatrixNV;
13715   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13716   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13717   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13718   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13719   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13720   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13721   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13722   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13723   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13724   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13725   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13726   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13727   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13728   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13729   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13730   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13731   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13732   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13733   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13734   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13735   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13736   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13737   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13738   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13739   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13740   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13741   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13742   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13743   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13744   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13745   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13746   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13747   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13748   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13749   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13750   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13751   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13752   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13753   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13754   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13755
13756   // GL_NV_depth_buffer_float
13757   glDepthRangedNV: TglDepthRangedNV;
13758   glClearDepthdNV: TglClearDepthdNV;
13759   glDepthBoundsdNV: TglDepthBoundsdNV;
13760
13761   // GL_NV_framebuffer_multisample_coverage
13762   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13763
13764   // GL_NV_geometry_program4
13765   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13766
13767   // GL_NV_gpu_program4
13768   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13769   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13770   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13771   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13772   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13773   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13774   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13775   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13776   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13777   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13778   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13779   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13780   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13781   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13782   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13783   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13784
13785   // GL_NV_parameter_buffer_object
13786   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13787   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13788   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13789
13790   // GL_NV_transform_feedback
13791   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13792   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13793   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13794   glBindBufferRangeNV: TglBindBufferRangeNV;
13795   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13796   glBindBufferBaseNV: TglBindBufferBaseNV;
13797   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13798   glActiveVaryingNV: TglActiveVaryingNV;
13799   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13800   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13801   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13802   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13803
13804   // GL_NV_conditional_render
13805   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13806   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13807
13808   // GL_NV_present_video
13809   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13810   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13811   glGetVideoivNV: TglGetVideoivNV;
13812   glGetVideouivNV: TglGetVideouivNV;
13813   glGetVideoi64vNV: TglGetVideoi64vNV;
13814   glGetVideoui64vNV: TglGetVideoui64vNV;
13815 //  glVideoParameterivNV: TglVideoParameterivNV;
13816
13817   // GL_NV_explicit_multisample
13818   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13819   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13820   glTexRenderbufferNV: TglTexRenderbufferNV;
13821
13822   // GL_NV_transform_feedback2
13823   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13824   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13825   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13826   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13827   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13828   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13829   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13830
13831   // GL_NV_video_capture
13832   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13833   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13834   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13835   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13836   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13837   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13838   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13839   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13840   glVideoCaptureNV: TglVideoCaptureNV;
13841   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13842   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13843   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13844
13845   // GL_NV_copy_image
13846   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13847
13848   // GL_NV_shader_buffer_load
13849   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13850   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13851   glIsBufferResidentNV: TglIsBufferResidentNV;
13852   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13853   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13854   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13855   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13856   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13857   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13858   glUniformui64NV: TglUniformui64NV;
13859   glUniformui64vNV: TglUniformui64vNV;
13860   glGetUniformui64vNV: TglGetUniformui64vNV;
13861   glProgramUniformui64NV: TglProgramUniformui64NV;
13862   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13863
13864   // GL_NV_vertex_buffer_unified_memory
13865   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13866   glVertexFormatNV: TglVertexFormatNV;
13867   glNormalFormatNV: TglNormalFormatNV;
13868   glColorFormatNV: TglColorFormatNV;
13869   glIndexFormatNV: TglIndexFormatNV;
13870   glTexCoordFormatNV: TglTexCoordFormatNV;
13871   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13872   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13873   glFogCoordFormatNV: TglFogCoordFormatNV;
13874   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13875   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13876   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13877
13878   // GL_NV_gpu_program5
13879   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13880   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13881
13882   // GL_NV_gpu_shader5
13883   glUniform1i64NV: TglUniform1i64NV;
13884   glUniform2i64NV: TglUniform2i64NV;
13885   glUniform3i64NV: TglUniform3i64NV;
13886   glUniform4i64NV: TglUniform4i64NV;
13887   glUniform1i64vNV: TglUniform1i64vNV;
13888   glUniform2i64vNV: TglUniform2i64vNV;
13889   glUniform3i64vNV: TglUniform3i64vNV;
13890   glUniform4i64vNV: TglUniform4i64vNV;
13891   glUniform1ui64NV: TglUniform1ui64NV;
13892   glUniform2ui64NV: TglUniform2ui64NV;
13893   glUniform3ui64NV: TglUniform3ui64NV;
13894   glUniform4ui64NV: TglUniform4ui64NV;
13895   glUniform1ui64vNV: TglUniform1ui64vNV;
13896   glUniform2ui64vNV: TglUniform2ui64vNV;
13897   glUniform3ui64vNV: TglUniform3ui64vNV;
13898   glUniform4ui64vNV: TglUniform4ui64vNV;
13899   glGetUniformi64vNV: TglGetUniformi64vNV;
13900   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13901   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13902   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13903   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13904   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13905   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13906   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13907   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13908   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13909   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13910   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13911   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13912   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13913   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13914   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13915   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13916
13917   // GL_NV_vertex_attrib_integer_64bit
13918   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13919   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13920   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13921   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13922   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13923   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13924   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13925   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13926   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13927   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13928   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13929   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13930   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13931   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13932   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13933   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13934   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13935   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13936   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13937
13938   // GL_NV_vdpau_interop
13939   glVDPAUInitNV: TglVDPAUInitNV;
13940   glVDPAUFiniNV: TglVDPAUFiniNV;
13941   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13942   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13943   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13944   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13945   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13946   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13947   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13948   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13949
13950   // GL_NV_texture_barrier
13951   glTextureBarrierNV: TglTextureBarrierNV;
13952
13953   // (4.3) GL_NV_path_rendering
13954   glGenPathsNV : TglGenPathsNV;
13955   glDeletePathsNV : TglDeletePathsNV;
13956   glIsPathNV : TglIsPathNV;
13957   glPathCommandsNV : TglPathCommandsNV;
13958   glPathCoordsNV : TglPathCoordsNV;
13959   glPathSubCommandsNV : TglPathSubCommandsNV;
13960   glPathSubCoordsNV : TglPathSubCoordsNV;
13961   glPathStringNV : TglPathStringNV;
13962   glPathGlyphsNV : TglPathGlyphsNV;
13963   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13964   glWeightPathsNV : TglWeightPathsNV;
13965   glCopyPathNV : TglCopyPathNV;
13966   glInterpolatePathsNV : TglInterpolatePathsNV;
13967   glTransformPathNV : TglTransformPathNV;
13968   glPathParameterivNV : TglPathParameterivNV;
13969   glPathParameteriNV : TglPathParameteriNV;
13970   glPathParameterfvNV : TglPathParameterfvNV;
13971   glPathParameterfNV : TglPathParameterfNV;
13972   glPathDashArrayNV : TglPathDashArrayNV;
13973   glPathStencilFuncNV : TglPathStencilFuncNV;
13974   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13975   glStencilFillPathNV : TglStencilFillPathNV;
13976   glStencilStrokePathNV : TglStencilStrokePathNV;
13977   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13978   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13979   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13980   glPathColorGenNV : TglPathColorGenNV;
13981   glPathTexGenNV : TglPathTexGenNV;
13982   glPathFogGenNV : TglPathFogGenNV;
13983   glCoverFillPathNV : TglCoverFillPathNV;
13984   glCoverStrokePathNV : TglCoverStrokePathNV;
13985   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13986   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13987   glGetPathParameterivNV : TglGetPathParameterivNV;
13988   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13989   glGetPathCommandsNV : TglGetPathCommandsNV;
13990   glGetPathCoordsNV : TglGetPathCoordsNV;
13991   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13992   glGetPathMetricsNV : TglGetPathMetricsNV;
13993   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13994   glGetPathSpacingNV : TglGetPathSpacingNV;
13995   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13996   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13997   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13998   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13999   glIsPointInFillPathNV : TglIsPointInFillPathNV;
14000   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
14001   glGetPathLengthNV : TglGetPathLengthNV;
14002   glPointAlongPathNV : TglPointAlongPathNV;
14003
14004   // GL_AMD_pinned_memory
14005
14006   // GL_AMD_stencil_operation_extended
14007   glStencilOpValueAMD : TglStencilOpValueAMD;
14008
14009   // GL_AMD_vertex_shader_viewport_index
14010
14011   // GL_AMD_vertex_shader_layer
14012
14013   // GL_NV_bindless_texture
14014   glGetTextureHandleNV : TglGetTextureHandleNV;
14015   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
14016   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
14017   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
14018   glGetImageHandleNV : TglGetImageHandleNV;
14019   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
14020   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
14021   glUniformHandleui64NV : TglUniformHandleui64NV;
14022   glUniformHandleui64vNV : TglUniformHandleui64vNV;
14023   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
14024   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
14025   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
14026   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
14027
14028   // GL_ARB_bindless_texture
14029   glGetTextureHandleARB : TglGetTextureHandleARB;
14030   glGetTextureSamplerHandleARB : TglGetTextureSamplerHandleARB;
14031   glMakeTextureHandleResidentARB : TglMakeTextureHandleResidentARB;
14032   glMakeTextureHandleNonResidentARB : TglMakeTextureHandleNonResidentARB;
14033   glGetImageHandleARB : TglGetImageHandleARB;
14034   glMakeImageHandleResidentARB : TglMakeImageHandleResidentARB;
14035   glMakeImageHandleNonResidentARB : TglMakeImageHandleNonResidentARB;
14036   glUniformHandleui64ARB : TglUniformHandleui64ARB;
14037   glUniformHandleui64vARB : TglUniformHandleui64vARB;
14038   glProgramUniformHandleui64ARB : TglProgramUniformHandleui64ARB;
14039   glProgramUniformHandleui64vARB : TglProgramUniformHandleui64vARB;
14040   glIsTextureHandleResidentARB : TglIsTextureHandleResidentARB;
14041   glIsImageHandleResidentARB : TglIsImageHandleResidentARB;
14042   glVertexAttribL1ui64ARB : TglVertexAttribL1ui64ARB;
14043   glVertexAttribL1ui64vARB : TglVertexAttribL1ui64vARB;
14044   glGetVertexAttribLui64vARB : TglGetVertexAttribLui64vARB;
14045
14046   // GL_PGI_misc_hints
14047   glHintPGI: TglHintPGI;
14048
14049   // GL_SGIS_detail_texture
14050   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
14051   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
14052
14053   // GL_SGIS_fog_function
14054   glFogFuncSGIS: TglFogFuncSGIS;
14055   glGetFogFuncSGIS: TglGetFogFuncSGIS;
14056
14057   // GL_SGIS_multisample
14058   glSampleMaskSGIS: TglSampleMaskSGIS;
14059   glSamplePatternSGIS: TglSamplePatternSGIS;
14060
14061   // GL_SGIS_pixel_texture
14062   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14063   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14064   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14065   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14066   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14067   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14068
14069   // GL_SGIS_point_parameters
14070   glPointParameterfSGIS: TglPointParameterfSGIS;
14071   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14072
14073   // GL_SGIS_sharpen_texture
14074   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14075   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14076
14077   // GL_SGIS_texture4D
14078   glTexImage4DSGIS: TglTexImage4DSGIS;
14079   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14080
14081   // GL_SGIS_texture_color_mask
14082   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14083
14084   // GL_SGIS_texture_filter4
14085   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14086   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14087
14088   // GL_SGIX_async
14089   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14090   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14091   glPollAsyncSGIX: TglPollAsyncSGIX;
14092   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14093   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14094   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14095
14096   // GL_SGIX_flush_raster
14097   glFlushRasterSGIX: TglFlushRasterSGIX;
14098
14099   // GL_SGIX_fragment_lighting
14100   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14101   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14102   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14103   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14104   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14105   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14106   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14107   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14108   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14109   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14110   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14111   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14112   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14113   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14114   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14115   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14116   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14117   glLightEnviSGIX: TglLightEnviSGIX;
14118
14119   // GL_SGIX_framezoom
14120   glFrameZoomSGIX: TglFrameZoomSGIX;
14121
14122   // GL_SGIX_igloo_interface
14123   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14124
14125   // GL_SGIX_instruments
14126   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14127   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14128   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14129   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14130   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14131   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14132
14133   // GL_SGIX_list_priority
14134   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14135   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14136   glListParameterfSGIX: TglListParameterfSGIX;
14137   glListParameterfvSGIX: TglListParameterfvSGIX;
14138   glListParameteriSGIX: TglListParameteriSGIX;
14139   glListParameterivSGIX: TglListParameterivSGIX;
14140
14141   // GL_SGIX_pixel_texture
14142   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14143
14144   // GL_SGIX_polynomial_ffd
14145   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14146   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14147   glDeformSGIX: TglDeformSGIX;
14148   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14149
14150   // GL_SGIX_reference_plane
14151   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14152
14153   // GL_SGIX_sprite
14154   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14155   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14156   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14157   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14158
14159   // GL_SGIX_tag_sample_buffer
14160   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14161
14162   // GL_SGI_color_table
14163   glColorTableSGI: TglColorTableSGI;
14164   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14165   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14166   glCopyColorTableSGI: TglCopyColorTableSGI;
14167   glGetColorTableSGI: TglGetColorTableSGI;
14168   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14169   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14170
14171   // GL_SUNX_constant_data
14172   glFinishTextureSUNX: TglFinishTextureSUNX;
14173
14174   // GL_SUN_global_alpha
14175   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14176   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14177   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14178   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14179   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14180   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14181   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14182   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14183
14184   // GL_SUN_mesh_array
14185   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14186
14187   // GL_SUN_triangle_list
14188   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14189   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14190   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14191   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14192   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14193   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14194   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14195
14196   // GL_SUN_vertex
14197   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14198   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14199   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14200   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14201   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14202   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14203   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14204   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14205   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14206   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14207   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14208   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14209   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14210   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14211   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14212   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14213   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14214   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14215   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14216   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14217   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14218   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14219   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14220   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14221   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14222   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14223   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14224   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14225   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14226   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14227   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14228   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14229   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14230   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14231   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14232   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14233   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14234   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14235   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14236   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14237
14238 {$IFDEF DGL_WIN}
14239   wglGetProcAddress: TwglGetProcAddress;
14240   wglCopyContext: TwglCopyContext;
14241   wglCreateContext: TwglCreateContext;
14242   wglCreateLayerContext: TwglCreateLayerContext;
14243   wglDeleteContext: TwglDeleteContext;
14244   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14245   wglGetCurrentContext: TwglGetCurrentContext;
14246   wglGetCurrentDC: TwglGetCurrentDC;
14247   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14248   wglMakeCurrent: TwglMakeCurrent;
14249   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14250   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14251   wglShareLists: TwglShareLists;
14252   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14253   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14254   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14255   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14256   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14257   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14258   wglUseFontBitmaps: TwglUseFontBitmaps;
14259   wglUseFontOutlines: TwglUseFontOutlines;
14260
14261    // WGL_ARB_buffer_region
14262   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14263   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14264   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14265   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14266
14267   // WGL_ARB_extensions_string
14268   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14269
14270   // WGL_ARB_make_current_read
14271   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14272   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14273
14274   // WGL_ARB_pbuffer
14275   wglCreatePbufferARB: TwglCreatePbufferARB;
14276   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14277   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14278   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14279   wglQueryPbufferARB: TwglQueryPbufferARB;
14280
14281   // WGL_ARB_pixel_format
14282   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14283   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14284   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14285   // WGL_ARB_color_buffer_float
14286   wglClampColorARB: TwglClampColorARB;
14287
14288   // WGL_ARB_render_texture
14289   wglBindTexImageARB: TwglBindTexImageARB;
14290   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14291   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14292
14293   // WGL_ARB_create_context
14294   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14295
14296   // WGL_AMD_gpu_association
14297   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14298   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14299   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14300   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14301   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14302   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14303   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14304   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14305   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14306
14307   // WGL_EXT_display_color_table
14308   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14309   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14310   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14311   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14312
14313   // WGL_EXT_extensions_string
14314   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14315
14316   // WGL_EXT_make_current_read
14317   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14318   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14319
14320   // WGL_EXT_pbuffer
14321   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14322   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14323   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14324   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14325   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14326
14327   // WGL_EXT_pixel_format
14328   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14329   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14330   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14331
14332   // WGL_EXT_swap_control
14333   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14334   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14335
14336   // WGL_I3D_digital_video_control
14337   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14338   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14339
14340   // WGL_I3D_gamma
14341   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14342   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14343   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14344   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14345
14346   // WGL_I3D_genlock
14347   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14348   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14349   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14350   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14351   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14352   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14353   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14354   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14355   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14356   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14357   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14358   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14359
14360   // WGL_I3D_image_buffer
14361   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14362   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14363   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14364   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14365
14366   // WGL_I3D_swap_frame_lock
14367   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14368   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14369   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14370   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14371
14372   // WGL_I3D_swap_frame_usage
14373   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14374   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14375   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14376   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14377
14378   // WGL_NV_vertex_array_range
14379   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14380   wglFreeMemoryNV: TwglFreeMemoryNV;
14381
14382   // WGL_NV_present_video
14383   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14384   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14385   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14386
14387   // WGL_NV_video_output
14388   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14389   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14390   wglBindVideoImageNV: TwglBindVideoImageNV;
14391   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14392   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14393   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14394
14395   // WGL_NV_swap_group
14396   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14397   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14398   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14399   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14400   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14401   wglResetFrameCountNV: TwglResetFrameCountNV;
14402
14403   // WGL_NV_gpu_affinity
14404   wglEnumGpusNV: TwglEnumGpusNV;
14405   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14406   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14407   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14408   wglDeleteDCNV: TwglDeleteDCNV;
14409
14410   // WGL_NV_video_capture
14411   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14412   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14413   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14414   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14415   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14416
14417   // WGL_NV_copy_image
14418   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14419
14420   // WGL_NV_DX_interop
14421   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14422   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14423   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14424   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14425   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14426   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14427   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14428   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14429
14430   // WGL_OML_sync_control
14431   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14432   wglGetMscRateOML: TwglGetMscRateOML;
14433   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14434   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14435   wglWaitForMscOML: TwglWaitForMscOML;
14436   wglWaitForSbcOML: TwglWaitForSbcOML;
14437
14438   // WGL_3DL_stereo_control
14439   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14440
14441   // WIN_draw_range_elements
14442   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14443
14444   // WIN_swap_hint
14445   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14446 {$ENDIF}
14447
14448 {$IFDEF DGL_LINUX}
14449   glXChooseVisual: TglXChooseVisual;
14450   glXCopyContext: TglXCopyContext;
14451   glXCreateContext: TglXCreateContext;
14452   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14453   glXDestroyContext: TglXDestroyContext;
14454   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14455   glXGetConfig: TglXGetConfig;
14456   glXGetCurrentContext: TglXGetCurrentContext;
14457   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14458   glXIsDirect: TglXIsDirect;
14459   glXMakeCurrent: TglXMakeCurrent;
14460   glXQueryExtension: TglXQueryExtension;
14461   glXQueryVersion: TglXQueryVersion;
14462   glXSwapBuffers: TglXSwapBuffers;
14463   glXUseXFont: TglXUseXFont;
14464   glXWaitGL: TglXWaitGL;
14465   glXWaitX: TglXWaitX;
14466
14467   glXGetClientString: TglXGetClientString;
14468   glXQueryServerString: TglXQueryServerString;
14469   glXQueryExtensionsString: TglXQueryExtensionsString;
14470
14471   // GLX_VERSION_1_3
14472   glXGetFBConfigs: TglXGetFBConfigs;
14473   glXChooseFBConfig: TglXChooseFBConfig;
14474   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14475   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14476   glXCreateWindow: TglXCreateWindow;
14477   glXDestroyWindow: TglXDestroyWindow;
14478   glXCreatePixmap: TglXCreatePixmap;
14479
14480   glXDestroyPixmap: TglXDestroyPixmap;
14481   glXCreatePbuffer: TglXCreatePbuffer;
14482   glXDestroyPbuffer: TglXDestroyPbuffer;
14483   glXQueryDrawable: TglXQueryDrawable;
14484   glXCreateNewContext: TglXCreateNewContext;
14485   glXMakeContextCurrent: TglXMakeContextCurrent;
14486   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14487   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14488
14489   glXQueryContext: TglXQueryContext;
14490   glXSelectEvent: TglXSelectEvent;
14491   glXGetSelectedEvent: TglXGetSelectedEvent;
14492
14493   // GLX_VERSION_1_4
14494   glXGetProcAddress: TglXGetProcAddress;
14495
14496   // GLX_ARB_get_proc_address
14497   glXGetProcAddressARB: TglXGetProcAddressARB;
14498
14499   // GLX_ARB_create_context
14500   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14501
14502   // GLX_EXT_import_context
14503   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14504   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14505   glXGetContextIDEXT: TglXGetContextIDEXT;
14506   glXImportContextEXT: TglXImportContextEXT;
14507   glXFreeContextEXT: TglXFreeContextEXT;
14508
14509   // GLX_EXT_texture_from_pixmap
14510   glXBindTexImageEXT: TglXBindTexImageEXT;
14511   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14512
14513   glXSwapIntervalEXT : TglXSwapIntervalEXT;
14514 {$ENDIF}
14515
14516   // GL utility functions and procedures
14517   gluErrorString: TgluErrorString;
14518   gluGetString: TgluGetString;
14519   gluOrtho2D: TgluOrtho2D;
14520   gluPerspective: TgluPerspective;
14521   gluPickMatrix: TgluPickMatrix;
14522   gluLookAt: TgluLookAt;
14523   gluProject: TgluProject;
14524   gluUnProject: TgluUnProject;
14525   gluScaleImage: TgluScaleImage;
14526   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14527   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14528   gluNewQuadric: TgluNewQuadric;
14529   gluDeleteQuadric: TgluDeleteQuadric;
14530   gluQuadricNormals: TgluQuadricNormals;
14531   gluQuadricTexture: TgluQuadricTexture;
14532   gluQuadricOrientation: TgluQuadricOrientation;
14533   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14534   gluCylinder: TgluCylinder;
14535   gluDisk: TgluDisk;
14536   gluPartialDisk: TgluPartialDisk;
14537   gluSphere: TgluSphere;
14538   gluQuadricCallback: TgluQuadricCallback;
14539   gluNewTess: TgluNewTess;
14540   gluDeleteTess: TgluDeleteTess;
14541   gluTessBeginPolygon: TgluTessBeginPolygon;
14542   gluTessBeginContour: TgluTessBeginContour;
14543   gluTessVertex: TgluTessVertex;
14544   gluTessEndContour: TgluTessEndContour;
14545   gluTessEndPolygon: TgluTessEndPolygon;
14546   gluTessProperty: TgluTessProperty;
14547   gluTessNormal: TgluTessNormal;
14548   gluTessCallback: TgluTessCallback;
14549   gluGetTessProperty: TgluGetTessProperty;
14550   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14551   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14552   gluBeginSurface: TgluBeginSurface;
14553   gluBeginCurve: TgluBeginCurve;
14554   gluEndCurve: TgluEndCurve;
14555   gluEndSurface: TgluEndSurface;
14556   gluBeginTrim: TgluBeginTrim;
14557   gluEndTrim: TgluEndTrim;
14558   gluPwlCurve: TgluPwlCurve;
14559   gluNurbsCurve: TgluNurbsCurve;
14560   gluNurbsSurface: TgluNurbsSurface;
14561   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14562   gluNurbsProperty: TgluNurbsProperty;
14563   gluGetNurbsProperty: TgluGetNurbsProperty;
14564   gluNurbsCallback: TgluNurbsCallback;
14565   gluBeginPolygon: TgluBeginPolygon;
14566   gluNextContour: TgluNextContour;
14567   gluEndPolygon: TgluEndPolygon;
14568
14569
14570 type
14571   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14572
14573 var
14574   GL_LibHandle: Pointer = nil;
14575   GLU_LibHandle: Pointer = nil;
14576
14577   LastPixelFormat: Integer;
14578   ExtensionsRead: Boolean;
14579   ImplementationRead: Boolean;
14580
14581
14582 const
14583 {$IFDEF DGL_WIN}
14584   OPENGL_LIBNAME = 'OpenGL32.dll';
14585   GLU_LIBNAME = 'GLU32.dll';
14586 {$ELSE}
14587   {$IFDEF darwin}
14588     OPENGL_LIBNAME = 'libGL.dylib';
14589     GLU_LIBNAME = 'libGLU.dylib';
14590   {$ELSE}
14591     OPENGL_LIBNAME = 'libGL.so.1';
14592     GLU_LIBNAME = 'libGLU.so.1';
14593   {$ENDIF}
14594 {$ENDIF}
14595
14596 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14597
14598 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14599 function dglCheckExtension(Extension: AnsiString): Boolean;
14600
14601 procedure ReadExtensions;
14602 procedure ReadImplementationProperties;
14603
14604 // =============================================================================
14605 // Helper-Functions
14606 // =============================================================================
14607 {$IFDEF DGL_WIN}
14608   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14609   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14610   procedure DestroyRenderingContext(RC: HGLRC);
14611
14612   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14613   procedure DeactivateRenderingContext;
14614 {$ENDIF}
14615
14616
14617 procedure ReadOpenGLCore;
14618 procedure Read_GL_3DFX_tbuffer;
14619 procedure Read_GL_APPLE_element_array;
14620 procedure Read_GL_APPLE_fence;
14621 procedure Read_GL_APPLE_vertex_array_object;
14622 procedure Read_GL_APPLE_vertex_array_range;
14623 procedure Read_GL_APPLE_texture_range;
14624 procedure Read_GL_APPLE_vertex_program_evaluators;
14625 procedure Read_GL_APPLE_object_purgeable;
14626 procedure Read_GL_ARB_matrix_palette;
14627 procedure Read_GL_ARB_multitexture;
14628 procedure Read_GL_ARB_point_parameters;
14629 procedure Read_GL_ARB_texture_compression;
14630 procedure Read_GL_ARB_transpose_matrix;
14631 procedure Read_GL_ARB_vertex_blend;
14632 procedure Read_GL_ARB_vertex_buffer_object;
14633 procedure Read_GL_ARB_vertex_program;
14634 procedure Read_GL_ARB_window_pos;
14635 procedure Read_GL_ARB_color_buffer_float;
14636 procedure Read_GL_ARB_Shader_Objects;
14637 procedure Read_GL_ARB_occlusion_query;
14638 procedure Read_GL_ARB_draw_instanced;
14639 procedure Read_GL_ARB_framebuffer_object;
14640 procedure Read_GL_ARB_geometry_shader4;
14641 procedure Read_GL_ARB_instanced_arrays;
14642 procedure Read_GL_ARB_map_buffer_range;
14643 procedure Read_GL_ARB_texture_buffer_object;
14644 procedure Read_GL_ARB_vertex_array_object;
14645 procedure Read_GL_ARB_uniform_buffer_object;
14646 procedure Read_GL_ARB_copy_buffer;
14647 procedure Read_GL_ARB_draw_elements_base_vertex;
14648 procedure Read_GL_ARB_provoking_vertex;
14649 procedure Read_GL_ARB_sync;
14650 procedure Read_GL_ARB_texture_multisample;
14651 procedure Read_GL_ARB_draw_buffers_blend;
14652 procedure Read_GL_ARB_sample_shading;
14653 procedure Read_GL_ARB_shading_language_include;
14654 procedure Read_GL_ARB_blend_func_extended;
14655 procedure Read_GL_ARB_sampler_objects;
14656 procedure Read_GL_ARB_timer_query;
14657 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14658 procedure Read_GL_ARB_draw_indirect;
14659 procedure Read_GL_ARB_gpu_shader_fp64;
14660 procedure Read_GL_ARB_shader_subroutine;
14661 procedure Read_GL_ARB_tessellation_shader;
14662 procedure Read_GL_ARB_transform_feedback2;
14663 procedure Read_GL_ARB_transform_feedback3;
14664 procedure Read_GL_ARB_ES2_compatibility;
14665 procedure Read_GL_ARB_get_program_binary;
14666 procedure Read_GL_ARB_separate_shader_objects;
14667 procedure Read_GL_ARB_vertex_attrib_64bit;
14668 procedure Read_GL_ARB_viewport_array;
14669 // GL 4.2
14670 procedure Read_GL_ARB_base_instance;
14671 procedure Read_GL_ARB_transform_feedback_instanced;
14672 procedure Read_GL_ARB_internalformat_query;
14673 procedure Read_GL_ARB_shader_atomic_counters;
14674 procedure Read_GL_ARB_shader_image_load_store;
14675 procedure Read_GL_ARB_texture_storage;
14676 // GL 4.3
14677 procedure Read_GL_KHR_debug;
14678 procedure Read_GL_ARB_clear_buffer_object;
14679 procedure Read_GL_ARB_compute_shader;
14680 procedure Read_GL_ARB_copy_image;
14681 procedure Read_GL_ARB_framebuffer_no_attachments;
14682 procedure Read_GL_ARB_internalformat_query2;
14683 procedure Read_GL_ARB_invalidate_subdata;
14684 procedure Read_GL_ARB_multi_draw_indirect;
14685 procedure Read_GL_ARB_program_interface_query;
14686 procedure Read_GL_ARB_shader_storage_buffer_object;
14687 procedure Read_GL_ARB_texture_buffer_range;
14688 procedure Read_GL_ARB_texture_storage_multisample;
14689 procedure Read_GL_ARB_texture_view;
14690 procedure Read_GL_ARB_vertex_attrib_binding;
14691
14692
14693 procedure Read_GL_4_4;
14694 procedure Read_GL_4_5;
14695
14696 //
14697 procedure Read_GL_ARB_cl_event;
14698 procedure Read_GL_ARB_compute_variable_group_size;
14699 procedure Read_GL_ARB_debug_output;
14700 procedure Read_GL_ARB_robustness;
14701 procedure Read_GL_ATI_draw_buffers;
14702 procedure Read_GL_ATI_element_array;
14703 procedure Read_GL_ATI_envmap_bumpmap;
14704 procedure Read_GL_ATI_fragment_shader;
14705 procedure Read_GL_ATI_map_object_buffer;
14706 procedure Read_GL_ATI_pn_triangles;
14707 procedure Read_GL_ATI_separate_stencil;
14708 procedure Read_GL_ATI_vertex_array_object;
14709 procedure Read_GL_ATI_vertex_attrib_array_object;
14710 procedure Read_GL_ATI_vertex_streams;
14711 procedure Read_GL_AMD_performance_monitor;
14712 procedure Read_GL_AMD_vertex_shader_tesselator;
14713 procedure Read_GL_AMD_draw_buffers_blend;
14714 procedure Read_GL_AMD_name_gen_delete;
14715 procedure Read_GL_AMD_debug_output;
14716 procedure Read_GL_EXT_blend_color;
14717 procedure Read_GL_EXT_blend_func_separate;
14718 procedure Read_GL_EXT_blend_minmax;
14719 procedure Read_GL_EXT_color_subtable;
14720 procedure Read_GL_EXT_compiled_vertex_array;
14721 procedure Read_GL_EXT_convolution;
14722 procedure Read_GL_EXT_coordinate_frame;
14723 procedure Read_GL_EXT_copy_texture;
14724 procedure Read_GL_EXT_cull_vertex;
14725 procedure Read_GL_EXT_draw_range_elements;
14726 procedure Read_GL_EXT_fog_coord;
14727 procedure Read_GL_EXT_framebuffer_object;
14728 procedure Read_GL_EXT_histogram;
14729 procedure Read_GL_EXT_index_func;
14730 procedure Read_GL_EXT_index_material;
14731 procedure Read_GL_EXT_multi_draw_arrays;
14732 procedure Read_GL_EXT_multisample;
14733 procedure Read_GL_EXT_paletted_texture;
14734 procedure Read_GL_EXT_pixel_transform;
14735 procedure Read_GL_EXT_point_parameters;
14736 procedure Read_GL_EXT_polygon_offset;
14737 procedure Read_GL_EXT_secondary_color;
14738 procedure Read_GL_EXT_stencil_two_side;
14739 procedure Read_GL_EXT_subtexture;
14740 procedure Read_GL_EXT_texture3D;
14741 procedure Read_GL_EXT_texture_object;
14742 procedure Read_GL_EXT_texture_perturb_normal;
14743 procedure Read_GL_EXT_vertex_array;
14744 procedure Read_GL_EXT_vertex_shader;
14745 procedure Read_GL_EXT_vertex_weighting;
14746 procedure Read_GL_EXT_depth_bounds_test;
14747 procedure Read_GL_EXT_blend_equation_separate;
14748 procedure Read_GL_EXT_stencil_clear_tag;
14749 procedure Read_GL_EXT_framebuffer_blit;
14750 procedure Read_GL_EXT_framebuffer_multisample;
14751 procedure Read_GL_EXT_timer_query;
14752 procedure Read_GL_EXT_gpu_program_parameters;
14753 procedure Read_GL_EXT_bindable_uniform;
14754 procedure Read_GL_EXT_draw_buffers2;
14755 procedure Read_GL_EXT_draw_instanced;
14756 procedure Read_GL_EXT_geometry_shader4;
14757 procedure Read_GL_EXT_gpu_shader4;
14758 procedure Read_GL_EXT_texture_array;
14759 procedure Read_GL_EXT_texture_buffer_object;
14760 procedure Read_GL_EXT_texture_integer;
14761 procedure Read_GL_EXT_transform_feedback;
14762 procedure Read_GL_EXT_direct_state_access;
14763 procedure Read_GL_EXT_separate_shader_objects;
14764 procedure Read_GL_EXT_shader_image_load_store;
14765 procedure Read_GL_EXT_vertex_attrib_64bit;
14766 procedure Read_GL_HP_image_transform;
14767 procedure Read_GL_IBM_multimode_draw_arrays;
14768 procedure Read_GL_IBM_vertex_array_lists;
14769 procedure Read_GL_INGR_blend_func_separate;
14770 procedure Read_GL_INTEL_parallel_arrays;
14771 procedure Read_GL_MESA_resize_buffers;
14772 procedure Read_GL_MESA_window_pos;
14773 procedure Read_GL_NV_evaluators;
14774 procedure Read_GL_NV_fence;
14775 procedure Read_GL_NV_fragment_program;
14776 procedure Read_GL_NV_half_float;
14777 procedure Read_GL_NV_occlusion_query;
14778 procedure Read_GL_NV_pixel_data_range;
14779 procedure Read_GL_NV_point_sprite;
14780 procedure Read_GL_NV_primitive_restart;
14781 procedure Read_GL_NV_register_combiners;
14782 procedure Read_GL_NV_register_combiners2;
14783 procedure Read_GL_NV_vertex_array_range;
14784 procedure Read_GL_NV_vertex_program;
14785 procedure Read_GL_NV_depth_buffer_float;
14786 procedure Read_GL_NV_framebuffer_multisample_coverage;
14787 procedure Read_GL_NV_geometry_program4;
14788 procedure Read_GL_NV_gpu_program4;
14789 procedure Read_GL_NV_parameter_buffer_object;
14790 procedure Read_GL_NV_transform_feedback;
14791 procedure Read_GL_NV_conditional_render;
14792 procedure Read_GL_NV_present_video;
14793 procedure Read_GL_NV_explicit_multisample;
14794 procedure Read_GL_NV_transform_feedback2;
14795 procedure Read_GL_NV_video_capture;
14796 procedure Read_GL_NV_copy_image;
14797 procedure Read_GL_NV_shader_buffer_load;
14798 procedure Read_GL_NV_vertex_buffer_unified_memory;
14799 procedure Read_GL_NV_gpu_program5;
14800 procedure Read_GL_NV_gpu_shader5;
14801 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14802 procedure Read_GL_NV_vdpau_interop;
14803 procedure Read_GL_NV_texture_barrier;
14804 procedure Read_GL_PGI_misc_hints;
14805 procedure Read_GL_SGIS_detail_texture;
14806 procedure Read_GL_SGIS_fog_function;
14807 procedure Read_GL_SGIS_multisample;
14808 procedure Read_GL_SGIS_pixel_texture;
14809 procedure Read_GL_SGIS_point_parameters;
14810 procedure Read_GL_SGIS_sharpen_texture;
14811 procedure Read_GL_SGIS_texture4D;
14812 procedure Read_GL_SGIS_texture_color_mask;
14813 procedure Read_GL_SGIS_texture_filter4;
14814 procedure Read_GL_SGIX_async;
14815 procedure Read_GL_SGIX_flush_raster;
14816 procedure Read_GL_SGIX_fragment_lighting;
14817 procedure Read_GL_SGIX_framezoom;
14818 procedure Read_GL_SGIX_igloo_interface;
14819 procedure Read_GL_SGIX_instruments;
14820 procedure Read_GL_SGIX_list_priority;
14821 procedure Read_GL_SGIX_pixel_texture;
14822 procedure Read_GL_SGIX_polynomial_ffd;
14823 procedure Read_GL_SGIX_reference_plane;
14824 procedure Read_GL_SGIX_sprite;
14825 procedure Read_GL_SGIX_tag_sample_buffer;
14826 procedure Read_GL_SGI_color_table;
14827 procedure Read_GL_SUNX_constant_data;
14828 procedure Read_GL_SUN_global_alpha;
14829 procedure Read_GL_SUN_mesh_array;
14830 procedure Read_GL_SUN_triangle_list;
14831 procedure Read_GL_SUN_vertex;
14832
14833 {$IFDEF DGL_WIN}
14834 procedure Read_WGL_ARB_buffer_region;
14835 procedure Read_WGL_ARB_extensions_string;
14836 procedure Read_WGL_ARB_make_current_read;
14837 procedure Read_WGL_ARB_pbuffer;
14838 procedure Read_WGL_ARB_pixel_format;
14839 procedure Read_WGL_ARB_pixel_format_float;
14840 procedure Read_WGL_ARB_render_texture;
14841 procedure Read_WGL_ARB_create_context;
14842 procedure Read_WGL_AMD_gpu_association;
14843 procedure Read_WGL_EXT_display_color_table;
14844 procedure Read_WGL_EXT_extensions_string;
14845 procedure Read_WGL_EXT_make_current_read;
14846 procedure Read_WGL_EXT_pbuffer;
14847 procedure Read_WGL_EXT_pixel_format;
14848 procedure Read_WGL_EXT_swap_control;
14849 procedure Read_WGL_I3D_digital_video_control;
14850 procedure Read_WGL_I3D_gamma;
14851 procedure Read_WGL_I3D_genlock;
14852 procedure Read_WGL_I3D_image_buffer;
14853 procedure Read_WGL_I3D_swap_frame_lock;
14854 procedure Read_WGL_I3D_swap_frame_usage;
14855 procedure Read_WGL_NV_vertex_array_range;
14856 procedure Read_WGL_NV_present_video;
14857 procedure Read_WGL_NV_video_output;
14858 procedure Read_WGL_NV_swap_group;
14859 procedure Read_WGL_NV_gpu_affinity;
14860 procedure Read_WGL_NV_video_capture;
14861 procedure Read_WGL_NV_copy_image;
14862 procedure Read_WGL_OML_sync_control;
14863 procedure Read_WGL_3DL_stereo_control;
14864
14865 procedure Read_WIN_draw_range_elements;
14866 procedure Read_WIN_swap_hint;
14867 {$ENDIF}
14868
14869
14870 implementation
14871
14872
14873 {$IFDEF DGL_LINUX}
14874 const
14875   RTLD_LAZY = $001;
14876   RTLD_NOW = $002;
14877   RTLD_BINDING_MASK = $003;
14878
14879   // Seems to work on Debian / Fedora
14880   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14881
14882 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14883 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14884
14885 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14886 {$ENDIF}
14887
14888 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14889 const
14890   RTLD_DEFAULT = Pointer(-2);
14891 {$ENDIF}{$ENDIF}
14892
14893 function dglLoadLibrary(Name: PChar): Pointer;
14894 begin
14895   {$IFDEF DGL_WIN}
14896   Result := Pointer(LoadLibrary(Name));
14897   {$ENDIF}
14898
14899   {$IFDEF DGL_LINUX}
14900   Result := dlopen(Name, RTLD_LAZY);
14901   {$ENDIF}
14902
14903   {$IFDEF DGL_MAC}
14904   {$IFDEF OPENGL_FRAMEWORK}
14905   Result := RTLD_DEFAULT;
14906   {$ELSE}
14907   Result := Pointer(LoadLibrary(Name));
14908   {$ENDIF}
14909   {$ENDIF}
14910 end;
14911
14912
14913 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14914 begin
14915   if LibHandle = nil then
14916     Result := False
14917   else
14918     {$IFDEF DGL_WIN}
14919     Result := FreeLibrary(HMODULE(LibHandle));
14920     {$ENDIF}
14921
14922     {$IFDEF DGL_LINUX}
14923     Result := dlclose(LibHandle) = 0;
14924     {$ENDIF}
14925
14926     {$IFDEF DGL_MAC}
14927     {$IFDEF OPENGL_FRAMEWORK}
14928         Result := true;
14929         {$ELSE}
14930     Result := FreeLibrary(HMODULE(LibHandle));
14931     {$ENDIF}
14932         {$ENDIF}
14933 end;
14934
14935
14936 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14937 begin
14938   if LibHandle = nil then
14939     LibHandle := GL_LibHandle;
14940
14941
14942   {$IFDEF DGL_WIN}
14943     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14944
14945     if result <> nil then
14946       exit;
14947
14948     if Addr(wglGetProcAddress) <> nil then
14949       Result := wglGetProcAddress(ProcName);
14950   {$ENDIF}
14951
14952   {$IFDEF DGL_LINUX}
14953     if not ForceDLSym then begin
14954       if Addr(glXGetProcAddress) <> nil then
14955         Result := glXGetProcAddress(ProcName);
14956
14957       if result <> nil then
14958         exit;
14959
14960       if Addr(glXGetProcAddressARB) <> nil then
14961         Result := glXGetProcAddressARB(ProcName);
14962
14963       if result <> nil then
14964         exit;
14965     end;
14966
14967     Result := dlsym(LibHandle, ProcName);
14968   {$ENDIF}
14969
14970   {$IFDEF DGL_MAC}
14971     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14972   {$ENDIF}
14973 end;
14974
14975
14976 function Int_GetExtensionString: AnsiString;
14977 var
14978         ExtensionCount : GLuint;
14979   i : Integer;
14980 begin
14981   if GL_VERSION_3_0
14982     then
14983       begin
14984         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14985         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14986
14987         result := '';
14988
14989         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14990           then
14991             begin
14992               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14993
14994               For I := 0 to extensionCount - 1 do
14995                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14996             end;
14997       end
14998     else
14999       begin
15000         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
15001
15002         if Assigned(@glGetString)
15003           then result := glGetString(GL_EXTENSIONS)
15004           else result := '';
15005       end;
15006
15007   if (GL_LibHandle <> nil) then begin
15008     {$IFDEF DGL_WIN}
15009       // wglGetExtensionsStringEXT
15010       if not Assigned(@wglGetExtensionsStringEXT) then
15011         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
15012
15013       if Assigned(@wglGetExtensionsStringEXT) then
15014         Result := Result + #32 + wglGetExtensionsStringEXT;
15015
15016       // wglGetExtensionsStringARB
15017       if not Assigned(@wglGetExtensionsStringARB) then
15018         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
15019
15020       if Assigned(@wglGetExtensionsStringARB) then
15021         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
15022     {$ENDIF}
15023   end;
15024
15025   Result := #32 + Result + #32;
15026 end;
15027
15028
15029 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
15030 begin
15031   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
15032 end;
15033
15034
15035 function dglCheckExtension(Extension: AnsiString): Boolean;
15036 var
15037   Extensions: AnsiString;
15038 begin
15039   Extensions := Int_GetExtensionString;
15040   Result := Int_CheckExtension(Extensions, Extension);
15041 end;
15042
15043
15044
15045 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
15046 begin
15047   Result := False;
15048
15049   // free opened libraries
15050   if GL_LibHandle <> nil then
15051     dglFreeLibrary(GL_LibHandle);
15052
15053   if GLU_LibHandle <> nil then
15054     dglFreeLibrary(GLU_LibHandle);
15055
15056   // load library
15057   GL_LibHandle := dglLoadLibrary(PChar(LibName));
15058   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
15059
15060   // load GL functions
15061   if (GL_LibHandle <> nil) then begin
15062     {$IFDEF DGL_WIN}
15063       wglCopyContext := dglGetProcAddress('wglCopyContext');
15064       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15065       wglCreateContext := dglGetProcAddress('wglCreateContext');
15066       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15067       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15068       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15069       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15070       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15071       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15072       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15073       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15074       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15075       wglShareLists := dglGetProcAddress('wglShareLists');
15076       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15077       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15078       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15079       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15080       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15081       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15082       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15083       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15084     {$ENDIF}
15085
15086     {$IFDEF DGL_LINUX}
15087       // GLX_VERSION_1_4 (needs to be first)
15088       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15089
15090       // GLX_ARB_get_proc_address  (also needs to be first)
15091       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15092
15093       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15094       glXCopyContext := dglGetProcAddress('glXCopyContext');
15095       glXCreateContext := dglGetProcAddress('glXCreateContext');
15096       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15097       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15098       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15099       glXGetConfig := dglGetProcAddress('glXGetConfig');
15100       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15101       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15102       glXIsDirect := dglGetProcAddress('glXIsDirect');
15103       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15104       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15105       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15106       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15107       glXUseXFont := dglGetProcAddress('glXUseXFont');
15108       glXWaitGL := dglGetProcAddress('glXWaitGL');
15109       glXWaitX := dglGetProcAddress('glXWaitX');
15110
15111       glXGetClientString := dglGetProcAddress('glXGetClientString');
15112       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15113       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15114
15115       // GLX_VERSION_1_3
15116       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15117       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15118       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15119       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15120       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15121       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15122       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15123
15124       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15125       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15126       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15127       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15128       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15129       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15130       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15131       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15132
15133       glXQueryContext := dglGetProcAddress('glXQueryContext');
15134       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15135       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15136
15137       // GLX_ARB_create_context
15138       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15139
15140       // GLX_EXT_import_context
15141       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15142       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15143       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15144       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15145       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15146
15147       // GLX_EXT_texture_from_pixmap
15148       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15149       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15150
15151       glXSwapIntervalEXT := dglGetProcAddress('glXSwapIntervalEXT');
15152     {$ENDIF}
15153
15154     Result := True;
15155   end;
15156
15157   // load GLU functions
15158   if GLU_LibHandle <> nil then begin
15159     // GLU ========================================================================
15160     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15161     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15162     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15163     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15164     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15165     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15166     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15167     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15168     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15169     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15170     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15171     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15172     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15173     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15174     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15175     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15176     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15177     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15178     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15179     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15180     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15181     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15182     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15183     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15184     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15185     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15186     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15187     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15188     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15189     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15190     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15191     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15192     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15193     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15194     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15195     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15196     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15197     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15198     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15199     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15200     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15201     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15202     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15203     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15204     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15205     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15206     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15207     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15208     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15209     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15210     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15211   end;
15212 end;
15213
15214 procedure ReadOpenGLCore;
15215 begin
15216   // GL_VERSION_1_0
15217   glCullFace := dglGetProcAddress('glCullFace');
15218   glFrontFace := dglGetProcAddress('glFrontFace');
15219   glHint := dglGetProcAddress('glHint');
15220   glLineWidth := dglGetProcAddress('glLineWidth');
15221   glPointSize := dglGetProcAddress('glPointSize');
15222   glPolygonMode := dglGetProcAddress('glPolygonMode');
15223   glScissor := dglGetProcAddress('glScissor');
15224   glTexParameterf := dglGetProcAddress('glTexParameterf');
15225   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15226   glTexParameteri := dglGetProcAddress('glTexParameteri');
15227   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15228   glTexImage1D := dglGetProcAddress('glTexImage1D');
15229   glTexImage2D := dglGetProcAddress('glTexImage2D');
15230   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15231   glClear := dglGetProcAddress('glClear');
15232   glClearColor := dglGetProcAddress('glClearColor');
15233   glClearStencil := dglGetProcAddress('glClearStencil');
15234   glClearDepth := dglGetProcAddress('glClearDepth');
15235   glStencilMask := dglGetProcAddress('glStencilMask');
15236   glColorMask := dglGetProcAddress('glColorMask');
15237   glDepthMask := dglGetProcAddress('glDepthMask');
15238   glDisable := dglGetProcAddress('glDisable');
15239   glEnable := dglGetProcAddress('glEnable');
15240   glFinish := dglGetProcAddress('glFinish');
15241   glFlush := dglGetProcAddress('glFlush');
15242   glBlendFunc := dglGetProcAddress('glBlendFunc');
15243   glLogicOp := dglGetProcAddress('glLogicOp');
15244   glStencilFunc := dglGetProcAddress('glStencilFunc');
15245   glStencilOp := dglGetProcAddress('glStencilOp');
15246   glDepthFunc := dglGetProcAddress('glDepthFunc');
15247   glPixelStoref := dglGetProcAddress('glPixelStoref');
15248   glPixelStorei := dglGetProcAddress('glPixelStorei');
15249   glReadBuffer := dglGetProcAddress('glReadBuffer');
15250   glReadPixels := dglGetProcAddress('glReadPixels');
15251   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15252   glGetDoublev := dglGetProcAddress('glGetDoublev');
15253   glGetError := dglGetProcAddress('glGetError');
15254   glGetFloatv := dglGetProcAddress('glGetFloatv');
15255   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15256   glGetString := dglGetProcAddress('glGetString');
15257   glGetTexImage := dglGetProcAddress('glGetTexImage');
15258   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15259   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15260   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15261   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15262   glIsEnabled := dglGetProcAddress('glIsEnabled');
15263   glDepthRange := dglGetProcAddress('glDepthRange');
15264   glViewport := dglGetProcAddress('glViewport');
15265
15266   // GL_VERSION_1_1
15267   glDrawArrays := dglGetProcAddress('glDrawArrays');
15268   glDrawElements := dglGetProcAddress('glDrawElements');
15269   glGetPointerv := dglGetProcAddress('glGetPointerv');
15270   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15271   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15272   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15273   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15274   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15275   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15276   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15277   glBindTexture := dglGetProcAddress('glBindTexture');
15278   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15279   glGenTextures := dglGetProcAddress('glGenTextures');
15280
15281 {$ifdef DGL_DEPRECATED}
15282   glAccum := dglGetProcAddress('glAccum');
15283   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15284   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15285   glArrayElement := dglGetProcAddress('glArrayElement');
15286   glBegin := dglGetProcAddress('glBegin');
15287   glBitmap := dglGetProcAddress('glBitmap');
15288   glCallList := dglGetProcAddress('glCallList');
15289   glCallLists := dglGetProcAddress('glCallLists');
15290   glClearAccum := dglGetProcAddress('glClearAccum');
15291   glClearIndex := dglGetProcAddress('glClearIndex');
15292   glClipPlane := dglGetProcAddress('glClipPlane');
15293   glColor3b := dglGetProcAddress('glColor3b');
15294   glColor3bv := dglGetProcAddress('glColor3bv');
15295   glColor3d := dglGetProcAddress('glColor3d');
15296   glColor3dv := dglGetProcAddress('glColor3dv');
15297   glColor3f := dglGetProcAddress('glColor3f');
15298   glColor3fv := dglGetProcAddress('glColor3fv');
15299   glColor3i := dglGetProcAddress('glColor3i');
15300   glColor3iv := dglGetProcAddress('glColor3iv');
15301   glColor3s := dglGetProcAddress('glColor3s');
15302   glColor3sv := dglGetProcAddress('glColor3sv');
15303   glColor3ub := dglGetProcAddress('glColor3ub');
15304   glColor3ubv := dglGetProcAddress('glColor3ubv');
15305   glColor3ui := dglGetProcAddress('glColor3ui');
15306   glColor3uiv := dglGetProcAddress('glColor3uiv');
15307   glColor3us := dglGetProcAddress('glColor3us');
15308   glColor3usv := dglGetProcAddress('glColor3usv');
15309   glColor4b := dglGetProcAddress('glColor4b');
15310   glColor4bv := dglGetProcAddress('glColor4bv');
15311   glColor4d := dglGetProcAddress('glColor4d');
15312   glColor4dv := dglGetProcAddress('glColor4dv');
15313   glColor4f := dglGetProcAddress('glColor4f');
15314   glColor4fv := dglGetProcAddress('glColor4fv');
15315   glColor4i := dglGetProcAddress('glColor4i');
15316   glColor4iv := dglGetProcAddress('glColor4iv');
15317   glColor4s := dglGetProcAddress('glColor4s');
15318   glColor4sv := dglGetProcAddress('glColor4sv');
15319   glColor4ub := dglGetProcAddress('glColor4ub');
15320   glColor4ubv := dglGetProcAddress('glColor4ubv');
15321   glColor4ui := dglGetProcAddress('glColor4ui');
15322   glColor4uiv := dglGetProcAddress('glColor4uiv');
15323   glColor4us := dglGetProcAddress('glColor4us');
15324   glColor4usv := dglGetProcAddress('glColor4usv');
15325   glColorMaterial := dglGetProcAddress('glColorMaterial');
15326   glColorPointer := dglGetProcAddress('glColorPointer');
15327   glCopyPixels := dglGetProcAddress('glCopyPixels');
15328   glDeleteLists := dglGetProcAddress('glDeleteLists');
15329   glDisableClientState := dglGetProcAddress('glDisableClientState');
15330   glDrawPixels := dglGetProcAddress('glDrawPixels');
15331   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15332   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15333   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15334   glEnableClientState := dglGetProcAddress('glEnableClientState');
15335   glEnd := dglGetProcAddress('glEnd');
15336   glEndList := dglGetProcAddress('glEndList');
15337   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15338   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15339   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15340   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15341   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15342   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15343   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15344   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15345   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15346   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15347   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15348   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15349   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15350   glFogf := dglGetProcAddress('glFogf');
15351   glFogfv := dglGetProcAddress('glFogfv');
15352   glFogi := dglGetProcAddress('glFogi');
15353   glFogiv := dglGetProcAddress('glFogiv');
15354   glFrustum := dglGetProcAddress('glFrustum');
15355   glGenLists := dglGetProcAddress('glGenLists');
15356   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15357   glGetLightfv := dglGetProcAddress('glGetLightfv');
15358   glGetLightiv := dglGetProcAddress('glGetLightiv');
15359   glGetMapdv := dglGetProcAddress('glGetMapdv');
15360   glGetMapfv := dglGetProcAddress('glGetMapfv');
15361   glGetMapiv := dglGetProcAddress('glGetMapiv');
15362   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15363   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15364   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15365   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15366   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15367   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15368   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15369   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15370   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15371   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15372   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15373   glIndexMask := dglGetProcAddress('glIndexMask');
15374   glIndexPointer := dglGetProcAddress('glIndexPointer');
15375   glIndexd := dglGetProcAddress('glIndexd');
15376   glIndexdv := dglGetProcAddress('glIndexdv');
15377   glIndexf := dglGetProcAddress('glIndexf');
15378   glIndexfv := dglGetProcAddress('glIndexfv');
15379   glIndexi := dglGetProcAddress('glIndexi');
15380   glIndexiv := dglGetProcAddress('glIndexiv');
15381   glIndexs := dglGetProcAddress('glIndexs');
15382   glIndexsv := dglGetProcAddress('glIndexsv');
15383   glIndexub := dglGetProcAddress('glIndexub');
15384   glIndexubv := dglGetProcAddress('glIndexubv');
15385   glInitNames := dglGetProcAddress('glInitNames');
15386   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15387   glIsList := dglGetProcAddress('glIsList');
15388   glIsTexture := dglGetProcAddress('glIsTexture');
15389   glLightModelf := dglGetProcAddress('glLightModelf');
15390   glLightModelfv := dglGetProcAddress('glLightModelfv');
15391   glLightModeli := dglGetProcAddress('glLightModeli');
15392   glLightModeliv := dglGetProcAddress('glLightModeliv');
15393   glLightf := dglGetProcAddress('glLightf');
15394   glLightfv := dglGetProcAddress('glLightfv');
15395   glLighti := dglGetProcAddress('glLighti');
15396   glLightiv := dglGetProcAddress('glLightiv');
15397   glLineStipple := dglGetProcAddress('glLineStipple');
15398   glListBase := dglGetProcAddress('glListBase');
15399   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15400   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15401   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15402   glLoadName := dglGetProcAddress('glLoadName');
15403   glMap1d := dglGetProcAddress('glMap1d');
15404   glMap1f := dglGetProcAddress('glMap1f');
15405   glMap2d := dglGetProcAddress('glMap2d');
15406   glMap2f := dglGetProcAddress('glMap2f');
15407   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15408   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15409   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15410   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15411   glMaterialf := dglGetProcAddress('glMaterialf');
15412   glMaterialfv := dglGetProcAddress('glMaterialfv');
15413   glMateriali := dglGetProcAddress('glMateriali');
15414   glMaterialiv := dglGetProcAddress('glMaterialiv');
15415   glMatrixMode := dglGetProcAddress('glMatrixMode');
15416   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15417   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15418   glNewList := dglGetProcAddress('glNewList');
15419   glNormal3b := dglGetProcAddress('glNormal3b');
15420   glNormal3bv := dglGetProcAddress('glNormal3bv');
15421   glNormal3d := dglGetProcAddress('glNormal3d');
15422   glNormal3dv := dglGetProcAddress('glNormal3dv');
15423   glNormal3f := dglGetProcAddress('glNormal3f');
15424   glNormal3fv := dglGetProcAddress('glNormal3fv');
15425   glNormal3i := dglGetProcAddress('glNormal3i');
15426   glNormal3iv := dglGetProcAddress('glNormal3iv');
15427   glNormal3s := dglGetProcAddress('glNormal3s');
15428   glNormal3sv := dglGetProcAddress('glNormal3sv');
15429   glNormalPointer := dglGetProcAddress('glNormalPointer');
15430   glOrtho := dglGetProcAddress('glOrtho');
15431   glPassThrough := dglGetProcAddress('glPassThrough');
15432   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15433   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15434   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15435   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15436   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15437   glPixelZoom := dglGetProcAddress('glPixelZoom');
15438   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15439   glPopAttrib := dglGetProcAddress('glPopAttrib');
15440   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15441   glPopMatrix := dglGetProcAddress('glPopMatrix');
15442   glPopName := dglGetProcAddress('glPopName');
15443   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15444   glPushAttrib := dglGetProcAddress('glPushAttrib');
15445   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15446   glPushMatrix := dglGetProcAddress('glPushMatrix');
15447   glPushName := dglGetProcAddress('glPushName');
15448   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15449   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15450   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15451   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15452   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15453   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15454   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15455   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15456   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15457   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15458   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15459   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15460   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15461   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15462   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15463   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15464   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15465   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15466   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15467   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15468   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15469   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15470   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15471   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15472   glRectd := dglGetProcAddress('glRectd');
15473   glRectdv := dglGetProcAddress('glRectdv');
15474   glRectf := dglGetProcAddress('glRectf');
15475   glRectfv := dglGetProcAddress('glRectfv');
15476   glRecti := dglGetProcAddress('glRecti');
15477   glRectiv := dglGetProcAddress('glRectiv');
15478   glRects := dglGetProcAddress('glRects');
15479   glRectsv := dglGetProcAddress('glRectsv');
15480   glRenderMode := dglGetProcAddress('glRenderMode');
15481   glRotated := dglGetProcAddress('glRotated');
15482   glRotatef := dglGetProcAddress('glRotatef');
15483   glScaled := dglGetProcAddress('glScaled');
15484   glScalef := dglGetProcAddress('glScalef');
15485   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15486   glShadeModel := dglGetProcAddress('glShadeModel');
15487   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15488   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15489   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15490   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15491   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15492   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15493   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15494   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15495   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15496   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15497   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15498   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15499   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15500   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15501   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15502   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15503   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15504   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15505   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15506   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15507   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15508   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15509   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15510   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15511   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15512   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15513   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15514   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15515   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15516   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15517   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15518   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15519   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15520   glTexEnvf := dglGetProcAddress('glTexEnvf');
15521   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15522   glTexEnvi := dglGetProcAddress('glTexEnvi');
15523   glTexEnviv := dglGetProcAddress('glTexEnviv');
15524   glTexGend := dglGetProcAddress('glTexGend');
15525   glTexGendv := dglGetProcAddress('glTexGendv');
15526   glTexGenf := dglGetProcAddress('glTexGenf');
15527   glTexGenfv := dglGetProcAddress('glTexGenfv');
15528   glTexGeni := dglGetProcAddress('glTexGeni');
15529   glTexGeniv := dglGetProcAddress('glTexGeniv');
15530   glTranslated := dglGetProcAddress('glTranslated');
15531   glTranslatef := dglGetProcAddress('glTranslatef');
15532   glVertex2d := dglGetProcAddress('glVertex2d');
15533   glVertex2dv := dglGetProcAddress('glVertex2dv');
15534   glVertex2f := dglGetProcAddress('glVertex2f');
15535   glVertex2fv := dglGetProcAddress('glVertex2fv');
15536   glVertex2i := dglGetProcAddress('glVertex2i');
15537   glVertex2iv := dglGetProcAddress('glVertex2iv');
15538   glVertex2s := dglGetProcAddress('glVertex2s');
15539   glVertex2sv := dglGetProcAddress('glVertex2sv');
15540   glVertex3d := dglGetProcAddress('glVertex3d');
15541   glVertex3dv := dglGetProcAddress('glVertex3dv');
15542   glVertex3f := dglGetProcAddress('glVertex3f');
15543   glVertex3fv := dglGetProcAddress('glVertex3fv');
15544   glVertex3i := dglGetProcAddress('glVertex3i');
15545   glVertex3iv := dglGetProcAddress('glVertex3iv');
15546   glVertex3s := dglGetProcAddress('glVertex3s');
15547   glVertex3sv := dglGetProcAddress('glVertex3sv');
15548   glVertex4d := dglGetProcAddress('glVertex4d');
15549   glVertex4dv := dglGetProcAddress('glVertex4dv');
15550   glVertex4f := dglGetProcAddress('glVertex4f');
15551   glVertex4fv := dglGetProcAddress('glVertex4fv');
15552   glVertex4i := dglGetProcAddress('glVertex4i');
15553   glVertex4iv := dglGetProcAddress('glVertex4iv');
15554   glVertex4s := dglGetProcAddress('glVertex4s');
15555   glVertex4sv := dglGetProcAddress('glVertex4sv');
15556   glVertexPointer := dglGetProcAddress('glVertexPointer');
15557 {$endif}
15558
15559   // GL_VERSION_1_2
15560   glBlendColor := dglGetProcAddress('glBlendColor');
15561   glBlendEquation := dglGetProcAddress('glBlendEquation');
15562   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15563   glTexImage3D := dglGetProcAddress('glTexImage3D');
15564   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15565   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15566 {$ifdef DGL_DEPRECATED}
15567   glColorTable := dglGetProcAddress('glColorTable');
15568   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15569   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15570   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15571   glGetColorTable := dglGetProcAddress('glGetColorTable');
15572   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15573   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15574   glColorSubTable := dglGetProcAddress('glColorSubTable');
15575   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15576   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15577   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15578   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15579   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15580   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15581   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15582   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15583   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15584   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15585   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15586   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15587   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15588   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15589   glGetHistogram := dglGetProcAddress('glGetHistogram');
15590   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15591   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15592   glGetMinmax := dglGetProcAddress('glGetMinmax');
15593   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15594   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15595   glHistogram := dglGetProcAddress('glHistogram');
15596   glMinmax := dglGetProcAddress('glMinmax');
15597   glResetHistogram := dglGetProcAddress('glResetHistogram');
15598   glResetMinmax := dglGetProcAddress('glResetMinmax');
15599 {$endif}
15600
15601   // GL_VERSION_1_3
15602   glActiveTexture := dglGetProcAddress('glActiveTexture');
15603   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15604   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15605   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15606   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15607   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15608   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15609   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15610   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15611 {$ifdef DGL_DEPRECATED}
15612   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15613   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15614   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15615   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15616   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15617   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15618   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15619   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15620   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15621   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15622   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15623   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15624   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15625   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15626   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15627   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15628   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15629   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15630   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15631   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15632   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15633   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15634   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15635   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15636   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15637   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15638   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15639   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15640   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15641   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15642   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15643   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15644   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15645   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15646   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15647   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15648   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15649 {$endif}
15650
15651   // GL_VERSION_1_4
15652   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15653   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15654   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15655   glPointParameterf := dglGetProcAddress('glPointParameterf');
15656   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15657   glPointParameteri := dglGetProcAddress('glPointParameteri');
15658   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15659 {$ifdef DGL_DEPRECATED}
15660   glFogCoordf := dglGetProcAddress('glFogCoordf');
15661   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15662   glFogCoordd := dglGetProcAddress('glFogCoordd');
15663   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15664   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15665   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15666   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15667   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15668   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15669   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15670   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15671   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15672   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15673   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15674   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15675   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15676   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15677   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15678   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15679   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15680   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15681   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15682   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15683   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15684   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15685   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15686   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15687   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15688   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15689   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15690   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15691   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15692   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15693   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15694   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15695   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15696   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15697   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15698 {$endif}
15699
15700   // GL_VERSION_1_5
15701   glGenQueries := dglGetProcAddress('glGenQueries');
15702   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15703   glIsQuery := dglGetProcAddress('glIsQuery');
15704   glBeginQuery := dglGetProcAddress('glBeginQuery');
15705   glEndQuery := dglGetProcAddress('glEndQuery');
15706   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15707   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15708   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15709   glBindBuffer := dglGetProcAddress('glBindBuffer');
15710   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15711   glGenBuffers := dglGetProcAddress('glGenBuffers');
15712   glIsBuffer := dglGetProcAddress('glIsBuffer');
15713   glBufferData := dglGetProcAddress('glBufferData');
15714   glBufferSubData := dglGetProcAddress('glBufferSubData');
15715   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15716   glMapBuffer := dglGetProcAddress('glMapBuffer');
15717   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15718   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15719   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15720
15721   // GL_VERSION_2_0
15722   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15723   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15724   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15725   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15726   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15727   glAttachShader := dglGetProcAddress('glAttachShader');
15728   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15729   glCompileShader := dglGetProcAddress('glCompileShader');
15730   glCreateProgram := dglGetProcAddress('glCreateProgram');
15731   glCreateShader := dglGetProcAddress('glCreateShader');
15732   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15733   glDeleteShader := dglGetProcAddress('glDeleteShader');
15734   glDetachShader := dglGetProcAddress('glDetachShader');
15735   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15736   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15737   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15738   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15739   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15740   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15741   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15742   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15743   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15744   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15745   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15746   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15747   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15748   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15749   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15750   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15751   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15752   glIsProgram := dglGetProcAddress('glIsProgram');
15753   glIsShader := dglGetProcAddress('glIsShader');
15754   glLinkProgram := dglGetProcAddress('glLinkProgram');
15755   glShaderSource := dglGetProcAddress('glShaderSource');
15756   glUseProgram := dglGetProcAddress('glUseProgram');
15757   glUniform1f := dglGetProcAddress('glUniform1f');
15758   glUniform2f := dglGetProcAddress('glUniform2f');
15759   glUniform3f := dglGetProcAddress('glUniform3f');
15760   glUniform4f := dglGetProcAddress('glUniform4f');
15761   glUniform1i := dglGetProcAddress('glUniform1i');
15762   glUniform2i := dglGetProcAddress('glUniform2i');
15763   glUniform3i := dglGetProcAddress('glUniform3i');
15764   glUniform4i := dglGetProcAddress('glUniform4i');
15765   glUniform1fv := dglGetProcAddress('glUniform1fv');
15766   glUniform2fv := dglGetProcAddress('glUniform2fv');
15767   glUniform3fv := dglGetProcAddress('glUniform3fv');
15768   glUniform4fv := dglGetProcAddress('glUniform4fv');
15769   glUniform1iv := dglGetProcAddress('glUniform1iv');
15770   glUniform2iv := dglGetProcAddress('glUniform2iv');
15771   glUniform3iv := dglGetProcAddress('glUniform3iv');
15772   glUniform4iv := dglGetProcAddress('glUniform4iv');
15773   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15774   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15775   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15776   glValidateProgram := dglGetProcAddress('glValidateProgram');
15777   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15778   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15779   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15780   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15781   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15782   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15783   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15784   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15785   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15786   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15787   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15788   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15789   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15790   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15791   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15792   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15793   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15794   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15795   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15796   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15797   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15798   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15799   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15800   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15801   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15802   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15803   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15804   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15805   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15806   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15807   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15808   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15809   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15810   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15811   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15812   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15813   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15814
15815   // GL_VERSION_2_1
15816   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15817   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15818   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15819   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15820   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15821   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15822
15823   // GL_VERSION_3_0
15824   { OpenGL 3.0 also reuses entry points from these extensions: }
15825   Read_GL_ARB_framebuffer_object;
15826   Read_GL_ARB_map_buffer_range;
15827   Read_GL_ARB_vertex_array_object;
15828
15829   glColorMaski := dglGetProcAddress('glColorMaski');
15830   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15831   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15832   glEnablei := dglGetProcAddress('glEnablei');
15833   glDisablei := dglGetProcAddress('glDisablei');
15834   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15835   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15836   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15837   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15838   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15839   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15840   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15841   glClampColor := dglGetProcAddress('glClampColor');
15842   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15843   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15844   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15845   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15846   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15847   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15848   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15849   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15850   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15851   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15852   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15853   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15854   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15855   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15856   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15857   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15858   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15859   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15860   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15861   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15862   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15863   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15864   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15865   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15866   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15867   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15868   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15869   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15870   glUniform1ui := dglGetProcAddress('glUniform1ui');
15871   glUniform2ui := dglGetProcAddress('glUniform2ui');
15872   glUniform3ui := dglGetProcAddress('glUniform3ui');
15873   glUniform4ui := dglGetProcAddress('glUniform4ui');
15874   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15875   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15876   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15877   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15878   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15879   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15880   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15881   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15882   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15883   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15884   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15885   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15886   glGetStringi := dglGetProcAddress('glGetStringi');
15887
15888   // GL_VERSION_2_1
15889   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15890   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15891   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15892
15893   // GL_VERSION_3_1
15894   { OpenGL 3.1 also reuses entry points from these extensions: }
15895   Read_GL_ARB_copy_buffer;
15896   Read_GL_ARB_uniform_buffer_object;
15897
15898   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15899   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15900   glTexBuffer := dglGetProcAddress('glTexBuffer');
15901   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15902
15903   // GL_VERSION_3_2
15904   { OpenGL 3.2 also reuses entry points from these extensions: }
15905   Read_GL_ARB_draw_elements_base_vertex;
15906   Read_GL_ARB_provoking_vertex;
15907   Read_GL_ARB_sync;
15908   Read_GL_ARB_texture_multisample;
15909
15910   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15911   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15912   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15913 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15914
15915   // GL_VERSION_3_3
15916   { OpenGL 3.3 also reuses entry points from these extensions: }
15917   Read_GL_ARB_blend_func_extended;
15918   Read_GL_ARB_sampler_objects;
15919   { ARB_explicit_attrib_location, but it has none }
15920   { ARB_occlusion_query2 (no entry points) }
15921   { ARB_shader_bit_encoding (no entry points) }
15922   { ARB_texture_rgb10_a2ui (no entry points) }
15923   { ARB_texture_swizzle (no entry points) }
15924   Read_GL_ARB_timer_query;
15925   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15926
15927   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15928
15929   // GL_VERSION_4_0
15930   { OpenGL 4.0 also reuses entry points from these extensions: }
15931   { ARB_texture_query_lod (no entry points) }
15932   Read_GL_ARB_draw_indirect;
15933   { ARB_gpu_shader5 (no entry points) }
15934   Read_GL_ARB_gpu_shader_fp64;
15935   Read_GL_ARB_shader_subroutine;
15936   Read_GL_ARB_tessellation_shader;
15937   { ARB_texture_buffer_object_rgb32 (no entry points) }
15938   { ARB_texture_cube_map_array (no entry points) }
15939   { ARB_texture_gather (no entry points) }
15940   Read_GL_ARB_transform_feedback2;
15941   Read_GL_ARB_transform_feedback3;
15942
15943   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15944   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15945   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15946   glBlendFunci := dglGetProcAddress('glBlendFunci');
15947   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15948
15949   // GL_VERSION_4_1
15950   { OpenGL 4.1 also reuses entry points from these extensions: }
15951   Read_GL_ARB_ES2_compatibility;
15952   Read_GL_ARB_get_program_binary;
15953   Read_GL_ARB_separate_shader_objects;
15954   { ARB_shader_precision (no entry points) }
15955   Read_GL_ARB_vertex_attrib_64bit;
15956   Read_GL_ARB_viewport_array;
15957
15958   // GL_VERSION_4_2
15959   { OpenGL 4.2 reuses entry points from these extensions: }
15960   Read_GL_ARB_base_instance;
15961   //Read_GL_ARB_shading_language_420pack (no entry points)
15962   Read_GL_ARB_transform_feedback_instanced;
15963   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15964   //Read_GL_ARB_conservative_depth;
15965   Read_GL_ARB_internalformat_query;
15966   //Read_GL_ARB_map_buffer_alignment;
15967   Read_GL_ARB_shader_atomic_counters;
15968   Read_GL_ARB_shader_image_load_store;
15969   //Read_GL_ARB_shading_language_packing;
15970   Read_GL_ARB_texture_storage;
15971
15972   // GL_VERSION_4_3
15973   // OpenGL 4.3 reuses entry points from these extensions:
15974   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15975   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15976   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15977   // Read_GL_ARB_ES3_compatibility (no entry points)
15978   Read_GL_ARB_clear_buffer_object;
15979   Read_GL_ARB_compute_shader;
15980   Read_GL_ARB_copy_image;
15981   Read_GL_KHR_debug;
15982   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15983   Read_GL_ARB_framebuffer_no_attachments;
15984   Read_GL_ARB_internalformat_query2;
15985   Read_GL_ARB_invalidate_subdata;
15986   Read_GL_ARB_multi_draw_indirect;
15987   Read_GL_ARB_program_interface_query;
15988   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15989   Read_GL_ARB_shader_storage_buffer_object;
15990   // Read_GL_ARB_stencil_texturing  (no entry points)
15991   Read_GL_ARB_texture_buffer_range;
15992   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15993   Read_GL_ARB_texture_storage_multisample;
15994   Read_GL_ARB_texture_view;
15995   Read_GL_ARB_vertex_attrib_binding;
15996
15997   //  Note (Due to Khronos' change in header convetions, no more single read_ functions) starting with GL 4.4
15998   Read_GL_4_4;
15999   Read_GL_4_5;
16000 end;
16001
16002 procedure Read_GL_3DFX_tbuffer;
16003 begin
16004   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
16005 end;
16006
16007 procedure Read_GL_APPLE_element_array;
16008 begin
16009   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
16010   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
16011   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
16012   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
16013   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
16014 end;
16015
16016 procedure Read_GL_APPLE_fence;
16017 begin
16018   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
16019   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
16020   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
16021   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
16022   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
16023   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
16024   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
16025   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
16026 end;
16027
16028 procedure Read_GL_APPLE_vertex_array_object;
16029 begin
16030   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
16031   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
16032   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
16033   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
16034 end;
16035
16036 procedure Read_GL_APPLE_vertex_array_range;
16037 begin
16038   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
16039   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
16040   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
16041 end;
16042
16043 procedure Read_GL_APPLE_texture_range;
16044 begin
16045   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
16046   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
16047 end;
16048
16049 procedure Read_GL_APPLE_vertex_program_evaluators;
16050 begin
16051   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
16052   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
16053   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
16054   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
16055   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
16056   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
16057   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
16058 end;
16059
16060 procedure Read_GL_APPLE_object_purgeable;
16061 begin
16062   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16063   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16064   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16065 end;
16066
16067 procedure Read_GL_ARB_matrix_palette;
16068 begin
16069   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16070   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16071   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16072   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16073   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16074 end;
16075
16076 procedure Read_GL_ARB_multisample;
16077 begin
16078   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16079 end;
16080
16081 procedure Read_GL_ARB_multitexture;
16082 begin
16083   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16084   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16085   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16086   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16087   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16088   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16089   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16090   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16091   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16092   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16093   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16094   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16095   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16096   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16097   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16098   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16099   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16100   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16101   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16102   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16103   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16104   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16105   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16106   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16107   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16108   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16109   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16110   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16111   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16112   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16113   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16114   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16115   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16116   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16117 end;
16118
16119 procedure Read_GL_ARB_point_parameters;
16120 begin
16121   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16122   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16123 end;
16124
16125 procedure Read_GL_ARB_texture_compression;
16126 begin
16127   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16128   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16129   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16130   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16131   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16132   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16133   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16134 end;
16135
16136 procedure Read_GL_ARB_transpose_matrix;
16137 begin
16138   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16139   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16140   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16141   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16142 end;
16143
16144 procedure Read_GL_ARB_vertex_blend;
16145 begin
16146   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16147   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16148   glWeightivARB := dglGetProcAddress('glWeightivARB');
16149   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16150   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16151   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16152   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16153   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16154   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16155   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16156 end;
16157
16158 procedure Read_GL_ARB_vertex_buffer_object;
16159 begin
16160   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16161   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16162   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16163   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16164   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16165   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16166   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16167   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16168   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16169   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16170   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16171 end;
16172
16173 procedure Read_GL_ARB_vertex_program;
16174 begin
16175   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16176   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16177   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16178   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16179   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16180   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16181   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16182   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16183   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16184   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16185   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16186   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16187   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16188   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16189   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16190   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16191   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16192   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16193   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16194   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16195   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16196   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16197   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16198   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16199   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16200   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16201   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16202   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16203   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16204   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16205   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16206   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16207   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16208   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16209   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16210   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16211   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16212   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16213   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16214   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16215   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16216   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16217   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16218   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16219   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16220   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16221   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16222   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16223   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16224   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16225   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16226   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16227   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16228   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16229   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16230   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16231   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16232   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16233   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16234   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16235   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16236   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16237 end;
16238
16239 procedure Read_GL_ARB_window_pos;
16240 begin
16241   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16242   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16243   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16244   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16245   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16246   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16247   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16248   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16249   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16250   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16251   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16252   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16253   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16254   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16255   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16256   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16257 end;
16258
16259 procedure Read_GL_ARB_draw_buffers;
16260 begin
16261   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16262 end;
16263
16264 procedure Read_GL_ARB_color_buffer_float;
16265 begin
16266   glClampColorARB := dglGetProcAddress('glClampColorARB');
16267 end;
16268
16269 procedure Read_GL_ARB_Shader_Objects;
16270 begin
16271   // GL_ARB_Shader_Objects
16272   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16273   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16274   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16275   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16276   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16277   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16278   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16279   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16280   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16281   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16282   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16283   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16284   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16285   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16286   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16287   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16288   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16289   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16290   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16291   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16292   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16293   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16294   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16295   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16296   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16297   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16298   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16299   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16300   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16301   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16302   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16303   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16304   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16305   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16306   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16307   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16308   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16309   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16310   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16311
16312   // GL_ARB_vertex_shader
16313   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16314   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16315   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16316   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16317 end;
16318
16319 procedure Read_GL_ARB_occlusion_query;
16320 begin
16321   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16322   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16323   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16324   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16325   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16326   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16327   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16328   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16329 end;
16330
16331 procedure Read_GL_ARB_draw_instanced;
16332 begin
16333   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16334   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16335 end;
16336
16337 procedure Read_GL_ARB_framebuffer_object;
16338 begin
16339   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16340   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16341   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16342   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16343   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16344   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16345   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16346   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16347   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16348   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16349   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16350   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16351   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16352   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16353   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16354   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16355   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16356   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16357   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16358   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16359 end;
16360
16361 procedure Read_GL_ARB_geometry_shader4;
16362 begin
16363   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16364   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16365   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16366   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16367 end;
16368
16369 procedure Read_GL_ARB_instanced_arrays;
16370 begin
16371   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16372 end;
16373
16374 procedure Read_GL_ARB_map_buffer_range;
16375 begin
16376   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16377   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16378 end;
16379
16380 procedure Read_GL_ARB_texture_buffer_object;
16381 begin
16382   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16383 end;
16384
16385 procedure Read_GL_ARB_vertex_array_object;
16386 begin
16387   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16388   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16389   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16390   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16391 end;
16392
16393 procedure Read_GL_ARB_uniform_buffer_object;
16394 begin
16395   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16396   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16397   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16398   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16399   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16400   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16401   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16402 end;
16403
16404 procedure Read_GL_ARB_copy_buffer;
16405 begin
16406   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16407 end;
16408
16409 procedure Read_GL_ARB_draw_elements_base_vertex;
16410 begin
16411   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16412   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16413   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16414   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16415 end;
16416
16417 procedure Read_GL_ARB_provoking_vertex;
16418 begin
16419   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16420 end;
16421
16422 procedure Read_GL_ARB_sync;
16423 begin
16424   glFenceSync := dglGetProcAddress('glFenceSync');
16425   glIsSync := dglGetProcAddress('glIsSync');
16426   glDeleteSync := dglGetProcAddress('glDeleteSync');
16427   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16428   glWaitSync := dglGetProcAddress('glWaitSync');
16429   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16430   glGetSynciv := dglGetProcAddress('glGetSynciv');
16431 end;
16432
16433 procedure Read_GL_ARB_texture_multisample;
16434 begin
16435   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16436   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16437   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16438   glSampleMaski := dglGetProcAddress('glSampleMaski');
16439 end;
16440
16441 procedure Read_GL_ARB_draw_buffers_blend;
16442 begin
16443   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16444   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16445   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16446   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16447 end;
16448
16449 procedure Read_GL_ARB_sample_shading;
16450 begin
16451   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16452 end;
16453
16454 procedure Read_GL_ARB_shading_language_include;
16455 begin
16456   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16457   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16458   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16459   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16460   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16461   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16462 end;
16463
16464 procedure Read_GL_ARB_sparse_texture;
16465 begin
16466   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
16467 end;
16468
16469 procedure Read_GL_ARB_sparse_buffer;
16470 begin
16471   glBufferPageCommitmentARB := dglGetProcAddress('glBufferPageCommitmentARB');
16472   glNamedBufferPageCommitmentEXT := dglGetProcAddress('glNamedBufferPageCommitmentEXT');
16473   glNamedBufferPageCommitmentARB := dglGetProcAddress('glNamedBufferPageCommitmentARB');
16474 end;
16475
16476 procedure Read_GL_KHR_blend_equation_advanced;
16477 begin
16478   glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
16479 end;
16480
16481
16482 procedure Read_GL_ARB_blend_func_extended;
16483 begin
16484   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16485   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16486 end;
16487
16488 procedure Read_GL_ARB_sampler_objects;
16489 begin
16490   glGenSamplers := dglGetProcAddress('glGenSamplers');
16491   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16492   glIsSampler := dglGetProcAddress('glIsSampler');
16493   glBindSampler := dglGetProcAddress('glBindSampler');
16494   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16495   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16496   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16497   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16498   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16499   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16500   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16501   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16502   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16503   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16504 end;
16505
16506 procedure Read_GL_ARB_timer_query;
16507 begin
16508   glQueryCounter := dglGetProcAddress('glQueryCounter');
16509   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16510   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16511 end;
16512
16513 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16514 begin
16515   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16516   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16517   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16518   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16519   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16520   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16521   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16522   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16523   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16524   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16525   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16526   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16527   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16528   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16529   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16530   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16531   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16532   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16533   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16534   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16535   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16536   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16537   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16538   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16539   glColorP3ui := dglGetProcAddress('glColorP3ui');
16540   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16541   glColorP4ui := dglGetProcAddress('glColorP4ui');
16542   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16543   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16544   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16545   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16546   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16547   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16548   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16549   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16550   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16551   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16552   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16553 end;
16554
16555 procedure Read_GL_ARB_draw_indirect;
16556 begin
16557   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16558   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16559 end;
16560
16561 procedure Read_GL_ARB_gpu_shader_fp64;
16562 begin
16563   glUniform1d := dglGetProcAddress('glUniform1d');
16564   glUniform2d := dglGetProcAddress('glUniform2d');
16565   glUniform3d := dglGetProcAddress('glUniform3d');
16566   glUniform4d := dglGetProcAddress('glUniform4d');
16567   glUniform1dv := dglGetProcAddress('glUniform1dv');
16568   glUniform2dv := dglGetProcAddress('glUniform2dv');
16569   glUniform3dv := dglGetProcAddress('glUniform3dv');
16570   glUniform4dv := dglGetProcAddress('glUniform4dv');
16571   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16572   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16573   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16574   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16575   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16576   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16577   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16578   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16579   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16580   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16581 end;
16582
16583 procedure Read_GL_ARB_shader_subroutine;
16584 begin
16585   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16586   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16587   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16588   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16589   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16590   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16591   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16592   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16593 end;
16594
16595 procedure Read_GL_ARB_tessellation_shader;
16596 begin
16597   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16598   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16599 end;
16600
16601 procedure Read_GL_ARB_transform_feedback2;
16602 begin
16603   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16604   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16605   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16606   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16607   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16608   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16609   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16610 end;
16611
16612 procedure Read_GL_ARB_transform_feedback3;
16613 begin
16614   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16615   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16616   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16617   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16618 end;
16619
16620 procedure Read_GL_ARB_ES2_compatibility;
16621 begin
16622   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16623   glShaderBinary := dglGetProcAddress('glShaderBinary');
16624   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16625   glDepthRangef := dglGetProcAddress('glDepthRangef');
16626   glClearDepthf := dglGetProcAddress('glClearDepthf');
16627 end;
16628
16629 procedure Read_GL_ARB_get_program_binary;
16630 begin
16631   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16632   glProgramBinary := dglGetProcAddress('glProgramBinary');
16633   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16634 end;
16635
16636 procedure Read_GL_ARB_separate_shader_objects;
16637 begin
16638   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16639   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16640   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16641   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16642   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16643   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16644   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16645   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16646   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16647   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16648   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16649   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16650   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16651   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16652   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16653   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16654   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16655   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16656   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16657   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16658   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16659   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16660   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16661   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16662   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16663   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16664   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16665   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16666   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16667   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16668   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16669   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16670   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16671   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16672   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16673   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16674   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16675   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16676   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16677   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16678   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16679   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16680   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16681   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16682   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16683   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16684   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16685   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16686   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16687   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16688   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16689   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16690   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16691   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16692   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16693   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16694   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16695   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16696   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16697   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16698 end;
16699
16700 procedure Read_GL_ARB_vertex_attrib_64bit;
16701 begin
16702   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16703   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16704   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16705   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16706   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16707   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16708   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16709   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16710   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16711   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16712 end;
16713
16714 procedure Read_GL_ARB_viewport_array;
16715 begin
16716   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16717   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16718   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16719   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16720   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16721   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16722   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16723   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16724   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16725   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16726 end;
16727
16728 // GL 4.2
16729
16730 procedure Read_GL_ARB_base_instance;
16731 begin
16732 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16733 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16734 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16735 end;
16736
16737 procedure Read_GL_ARB_transform_feedback_instanced;
16738 begin
16739 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16740 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16741 end;
16742
16743 procedure Read_GL_ARB_internalformat_query;
16744 begin
16745 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16746 end;
16747
16748 procedure Read_GL_ARB_shader_atomic_counters;
16749 begin
16750 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16751 end;
16752
16753 procedure Read_GL_ARB_shader_image_load_store;
16754 begin
16755 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16756 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16757 end;
16758
16759 procedure Read_GL_ARB_texture_storage;
16760 begin
16761 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16762 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16763 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16764 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16765 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16766 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16767 end;
16768
16769
16770 // GL 4.3
16771 procedure Read_GL_KHR_debug;
16772 begin
16773   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16774   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16775   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16776   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16777   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16778   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16779   glObjectLabel := dglGetProcAddress('glObjectLabel');
16780   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16781   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16782   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16783 end;
16784
16785 procedure Read_GL_ARB_clear_buffer_object;
16786 begin
16787   glClearBufferData := dglGetProcAddress('glClearBufferData');
16788   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16789   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16790   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16791 end;
16792
16793 procedure Read_GL_ARB_compute_shader;
16794 begin
16795   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16796   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16797 end;
16798
16799 procedure Read_GL_ARB_copy_image;
16800 begin
16801   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16802 end;
16803
16804 procedure Read_GL_ARB_framebuffer_no_attachments;
16805 begin
16806   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16807   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16808   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16809   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16810 end;
16811
16812 procedure Read_GL_ARB_internalformat_query2;
16813 begin
16814   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16815 end;
16816
16817 procedure Read_GL_ARB_invalidate_subdata;
16818 begin
16819   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16820   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16821   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16822   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16823   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16824   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16825 end;
16826
16827 procedure Read_GL_ARB_multi_draw_indirect;
16828 begin
16829   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16830   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16831 end;
16832
16833 procedure Read_GL_ARB_program_interface_query;
16834 begin
16835   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16836   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16837   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16838   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16839   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16840   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16841 end;
16842
16843 procedure Read_GL_ARB_shader_storage_buffer_object;
16844 begin
16845   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16846 end;
16847
16848 procedure Read_GL_ARB_texture_buffer_range;
16849 begin
16850   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16851   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16852 end;
16853
16854 procedure Read_GL_ARB_texture_storage_multisample;
16855 begin
16856   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16857   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16858   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16859   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16860 end;
16861
16862 procedure Read_GL_ARB_texture_view;
16863 begin
16864   glTextureView := dglGetProcAddress('glTextureView');
16865 end;
16866
16867 procedure Read_GL_ARB_vertex_attrib_binding;
16868 begin
16869   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16870   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16871   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16872   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16873   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16874   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16875   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16876   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16877   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16878   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16879   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16880   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16881 end;
16882
16883 procedure Read_GL_4_4;
16884 begin
16885   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16886   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16887   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16888   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16889   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16890   glBindTextures      := dglGetProcAddress('glBindTextures');
16891   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16892   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16893   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16894 end;
16895
16896 procedure Read_GL_4_5;
16897 begin
16898   glClipControl:= dglGetProcAddress('glClipControl');
16899   glCreateTransformFeedbacks:= dglGetProcAddress('glCreateTransformFeedbacks');
16900   glTransformFeedbackBufferBase:= dglGetProcAddress('glTransformFeedbackBufferBase');
16901   glTransformFeedbackBufferRange:= dglGetProcAddress('glTransformFeedbackBufferRange');
16902   glGetTransformFeedbackiv:= dglGetProcAddress('glGetTransformFeedbackiv');
16903   glGetTransformFeedbacki_v:= dglGetProcAddress('glGetTransformFeedbacki_v');
16904   glGetTransformFeedbacki64_v:= dglGetProcAddress('glGetTransformFeedbacki64_v');
16905   glCreateBuffers:= dglGetProcAddress('glCreateBuffers');
16906   glNamedBufferStorage:= dglGetProcAddress('glNamedBufferStorage');
16907   glNamedBufferData:= dglGetProcAddress('glNamedBufferData');
16908   glNamedBufferSubData:= dglGetProcAddress('glNamedBufferSubData');
16909   glCopyNamedBufferSubData:= dglGetProcAddress('glCopyNamedBufferSubData');
16910   glClearNamedBufferData:= dglGetProcAddress('glClearNamedBufferData');
16911   glClearNamedBufferSubData:= dglGetProcAddress('glClearNamedBufferSubData');
16912   glMapNamedBuffer:= dglGetProcAddress('glMapNamedBuffer');
16913   glMapNamedBufferRange:= dglGetProcAddress('glMapNamedBufferRange');
16914   glUnmapNamedBuffer:= dglGetProcAddress('glUnmapNamedBuffer');
16915   glFlushMappedNamedBufferRange:= dglGetProcAddress('glFlushMappedNamedBufferRange');
16916   glGetNamedBufferParameteriv:= dglGetProcAddress('glGetNamedBufferParameteriv');
16917   glGetNamedBufferParameteri64v:= dglGetProcAddress('glGetNamedBufferParameteri64v');
16918   glGetNamedBufferPointerv:= dglGetProcAddress('glGetNamedBufferPointerv');
16919   glGetNamedBufferSubData:= dglGetProcAddress('glGetNamedBufferSubData');
16920   glCreateFramebuffers:= dglGetProcAddress('glCreateFramebuffers');
16921   glNamedFramebufferRenderbuffer:= dglGetProcAddress('glNamedFramebufferRenderbuffer');
16922   glNamedFramebufferParameteri:= dglGetProcAddress('glNamedFramebufferParameteri');
16923   glNamedFramebufferTexture:= dglGetProcAddress('glNamedFramebufferTexture');
16924   glNamedFramebufferTextureLayer:= dglGetProcAddress('glNamedFramebufferTextureLayer');
16925   glNamedFramebufferDrawBuffer:= dglGetProcAddress('glNamedFramebufferDrawBuffer');
16926   glNamedFramebufferDrawBuffers:= dglGetProcAddress('glNamedFramebufferDrawBuffers');
16927   glNamedFramebufferReadBuffer:= dglGetProcAddress('glNamedFramebufferReadBuffer');
16928   glInvalidateNamedFramebufferData:= dglGetProcAddress('glInvalidateNamedFramebufferData');
16929   glInvalidateNamedFramebufferSubData:= dglGetProcAddress('glInvalidateNamedFramebufferSubData');
16930   glClearNamedFramebufferiv:= dglGetProcAddress('glClearNamedFramebufferiv');
16931   glClearNamedFramebufferuiv:= dglGetProcAddress('glClearNamedFramebufferuiv');
16932   glClearNamedFramebufferfv:= dglGetProcAddress('glClearNamedFramebufferfv');
16933   glClearNamedFramebufferfi:= dglGetProcAddress('glClearNamedFramebufferfi');
16934   glBlitNamedFramebuffer:= dglGetProcAddress('glBlitNamedFramebuffer');
16935   glCheckNamedFramebufferStatus:= dglGetProcAddress('glCheckNamedFramebufferStatus');
16936   glGetNamedFramebufferParameteriv:= dglGetProcAddress('glGetNamedFramebufferParameteriv');
16937   glGetNamedFramebufferAttachmentParameteriv:= dglGetProcAddress('glGetNamedFramebufferAttachmentParameteriv');
16938   glCreateRenderbuffers:= dglGetProcAddress('glCreateRenderbuffers');
16939   glNamedRenderbufferStorage:= dglGetProcAddress('glNamedRenderbufferStorage');
16940   glNamedRenderbufferStorageMultisample:= dglGetProcAddress('glNamedRenderbufferStorageMultisample');
16941   glGetNamedRenderbufferParameteriv:= dglGetProcAddress('glGetNamedRenderbufferParameteriv');
16942   glCreateTextures:= dglGetProcAddress('glCreateTextures');
16943   glTextureBuffer:= dglGetProcAddress('glTextureBuffer');
16944   glTextureBufferRange:= dglGetProcAddress('glTextureBufferRange');
16945   glTextureStorage1D:= dglGetProcAddress('glTextureStorage1D');
16946   glTextureStorage2D:= dglGetProcAddress('glTextureStorage2D');
16947   glTextureStorage3D:= dglGetProcAddress('glTextureStorage3D');
16948   glTextureStorage2DMultisample:= dglGetProcAddress('glTextureStorage2DMultisample');
16949   glTextureStorage3DMultisample:= dglGetProcAddress('glTextureStorage3DMultisample');
16950   glTextureSubImage1D:= dglGetProcAddress('glTextureSubImage1D');
16951   glTextureSubImage2D:= dglGetProcAddress('glTextureSubImage2D');
16952   glTextureSubImage3D:= dglGetProcAddress('glTextureSubImage3D');
16953   glCompressedTextureSubImage1D:= dglGetProcAddress('glCompressedTextureSubImage1D');
16954   glCompressedTextureSubImage2D:= dglGetProcAddress('glCompressedTextureSubImage2D');
16955   glCompressedTextureSubImage3D:= dglGetProcAddress('glCompressedTextureSubImage3D');
16956   glCopyTextureSubImage1D:= dglGetProcAddress('glCopyTextureSubImage1D');
16957   glCopyTextureSubImage2D:= dglGetProcAddress('glCopyTextureSubImage2D');
16958   glCopyTextureSubImage3D:= dglGetProcAddress('glCopyTextureSubImage3D');
16959   glTextureParameterf:= dglGetProcAddress('glTextureParameterf');
16960   glTextureParameterfv:= dglGetProcAddress('glTextureParameterfv');
16961   glTextureParameteri:= dglGetProcAddress('glTextureParameteri');
16962   glTextureParameterIiv:= dglGetProcAddress('glTextureParameterIiv');
16963   glTextureParameterIuiv:= dglGetProcAddress('glTextureParameterIuiv');
16964   glTextureParameteriv:= dglGetProcAddress('glTextureParameteriv');
16965   glGenerateTextureMipmap:= dglGetProcAddress('glGenerateTextureMipmap');
16966   glBindTextureUnit:= dglGetProcAddress('glBindTextureUnit');
16967   glGetTextureImage:= dglGetProcAddress('glGetTextureImage');
16968   glGetCompressedTextureImage:= dglGetProcAddress('glGetCompressedTextureImage');
16969   glGetTextureLevelParameterfv:= dglGetProcAddress('glGetTextureLevelParameterfv');
16970   glGetTextureLevelParameteriv:= dglGetProcAddress('glGetTextureLevelParameteriv');
16971   glGetTextureParameterfv:= dglGetProcAddress('glGetTextureParameterfv');
16972   glGetTextureParameterIiv:= dglGetProcAddress('glGetTextureParameterIiv');
16973   glGetTextureParameterIuiv:= dglGetProcAddress('glGetTextureParameterIuiv');
16974   glGetTextureParameteriv:= dglGetProcAddress('glGetTextureParameteriv');
16975   glCreateVertexArrays:= dglGetProcAddress('glCreateVertexArrays');
16976   glDisableVertexArrayAttrib:= dglGetProcAddress('glDisableVertexArrayAttrib');
16977   glEnableVertexArrayAttrib:= dglGetProcAddress('glEnableVertexArrayAttrib');
16978   glVertexArrayElementBuffer:= dglGetProcAddress('glVertexArrayElementBuffer');
16979   glVertexArrayVertexBuffer:= dglGetProcAddress('glVertexArrayVertexBuffer');
16980   glVertexArrayVertexBuffers:= dglGetProcAddress('glVertexArrayVertexBuffers');
16981   glVertexArrayAttribBinding:= dglGetProcAddress('glVertexArrayAttribBinding');
16982   glVertexArrayAttribFormat:= dglGetProcAddress('glVertexArrayAttribFormat');
16983   glVertexArrayAttribIFormat:= dglGetProcAddress('glVertexArrayAttribIFormat');
16984   glVertexArrayAttribLFormat:= dglGetProcAddress('glVertexArrayAttribLFormat');
16985   glVertexArrayBindingDivisor:= dglGetProcAddress('glVertexArrayBindingDivisor');
16986   glGetVertexArrayiv:= dglGetProcAddress('glGetVertexArrayiv');
16987   glGetVertexArrayIndexediv:= dglGetProcAddress('glGetVertexArrayIndexediv');
16988   glGetVertexArrayIndexed64iv:= dglGetProcAddress('glGetVertexArrayIndexed64iv');
16989   glCreateSamplers:= dglGetProcAddress('glCreateSamplers');
16990   glCreateProgramPipelines:= dglGetProcAddress('glCreateProgramPipelines');
16991   glCreateQueries:= dglGetProcAddress('glCreateQueries');
16992   glMemoryBarrierByRegion:= dglGetProcAddress('glMemoryBarrierByRegion');
16993   glGetTextureSubImage:= dglGetProcAddress('glGetTextureSubImage');
16994   glGetCompressedTextureSubImage:= dglGetProcAddress('glGetCompressedTextureSubImage');
16995   glGetGraphicsResetStatus:= dglGetProcAddress('glGetGraphicsResetStatus');
16996   glGetnCompressedTexImage:= dglGetProcAddress('glGetnCompressedTexImage');
16997   glGetnTexImage:= dglGetProcAddress('glGetnTexImage');
16998   glGetnUniformdv:= dglGetProcAddress('glGetnUniformdv');
16999   glGetnUniformfv:= dglGetProcAddress('glGetnUniformfv');
17000   glGetnUniformiv:= dglGetProcAddress('glGetnUniformiv');
17001   glGetnUniformuiv:= dglGetProcAddress('glGetnUniformuiv');
17002   glReadnPixels:= dglGetProcAddress('glReadnPixels');
17003   glGetnMapdv:= dglGetProcAddress('glGetnMapdv');
17004   glGetnMapfv:= dglGetProcAddress('glGetnMapfv');
17005   glGetnMapiv:= dglGetProcAddress('glGetnMapiv');
17006   glGetnPixelMapfv:= dglGetProcAddress('glGetnPixelMapfv');
17007   glGetnPixelMapuiv:= dglGetProcAddress('glGetnPixelMapuiv');
17008   glGetnPixelMapusv:= dglGetProcAddress('glGetnPixelMapusv');
17009   glGetnPolygonStipple:= dglGetProcAddress('glGetnPolygonStipple');
17010   glGetnColorTable:= dglGetProcAddress('glGetnColorTable');
17011   glGetnConvolutionFilter:= dglGetProcAddress('glGetnConvolutionFilter');
17012   glGetnSeparableFilter:= dglGetProcAddress('glGetnSeparableFilter');
17013   glGetnHistogram:= dglGetProcAddress('glGetnHistogram');
17014   glGetnMinmax:= dglGetProcAddress('glGetnMinmax');
17015   glTextureBarrier:= dglGetProcAddress('glTextureBarrier');
17016 end;
17017
17018 procedure Read_GL_NV_path_rendering;
17019 begin
17020   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
17021   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
17022   glIsPathNV := dglGetProcAddress('glIsPathNV');
17023   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
17024   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
17025   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
17026   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
17027   glPathStringNV := dglGetProcAddress('glPathStringNV');
17028   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
17029   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
17030   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
17031   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
17032   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
17033   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
17034   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
17035   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
17036   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
17037   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
17038   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
17039   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
17040   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
17041   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
17042   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
17043   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
17044   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
17045   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
17046   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
17047   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
17048   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
17049   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
17050   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
17051   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
17052   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
17053   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
17054   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
17055   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
17056   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
17057   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
17058   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
17059   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
17060   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
17061   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
17062   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
17063   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
17064   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
17065   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
17066   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
17067   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
17068   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
17069 end;
17070
17071 procedure Read_GL_AMD_stencil_operation_extended;
17072 begin
17073         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
17074 end;
17075
17076 procedure Read_GL_NV_bindless_texture;
17077 begin
17078   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
17079   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
17080   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
17081   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
17082   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
17083   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
17084   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
17085   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
17086   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
17087   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
17088   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
17089   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
17090   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
17091 end;
17092
17093 procedure Read_GL_ARB_bindless_texture;
17094 begin
17095   glGetTextureHandleARB := dglGetProcAddress('TglGetTextureHandleARB');
17096   glGetTextureSamplerHandleARB := dglGetProcAddress('TglGetTextureSamplerHandleARB');
17097   glMakeTextureHandleResidentARB := dglGetProcAddress('TglMakeTextureHandleResidentARB');
17098   glMakeTextureHandleNonResidentARB := dglGetProcAddress('TglMakeTextureHandleNonResidentARB');
17099   glGetImageHandleARB := dglGetProcAddress('TglGetImageHandleARB');
17100   glMakeImageHandleResidentARB := dglGetProcAddress('TglMakeImageHandleResidentARB');
17101   glMakeImageHandleNonResidentARB := dglGetProcAddress('TglMakeImageHandleNonResidentARB');
17102   glUniformHandleui64ARB := dglGetProcAddress('TglUniformHandleui64ARB');
17103   glUniformHandleui64vARB := dglGetProcAddress('TglUniformHandleui64vARB');
17104   glProgramUniformHandleui64ARB := dglGetProcAddress('TglProgramUniformHandleui64ARB');
17105   glProgramUniformHandleui64vARB := dglGetProcAddress('TglProgramUniformHandleui64vARB');
17106   glIsTextureHandleResidentARB := dglGetProcAddress('TglIsTextureHandleResidentARB');
17107   glIsImageHandleResidentARB := dglGetProcAddress('TglIsImageHandleResidentARB');
17108   glVertexAttribL1ui64ARB := dglGetProcAddress('TglVertexAttribL1ui64ARB');
17109   glVertexAttribL1ui64vARB := dglGetProcAddress('TglVertexAttribL1ui64vARB');
17110   glGetVertexAttribLui64vARB := dglGetProcAddress('TglGetVertexAttribLui64vARB');
17111 end;
17112
17113 procedure Read_GL_ARB_cl_event;
17114 begin
17115   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
17116 end;
17117
17118 procedure Read_GL_ARB_compute_variable_group_size;
17119 begin
17120   glDispatchComputeGroupSizeARB := dglGetProcAddress('glDispatchComputeGroupSizeARB');
17121 end;
17122
17123 procedure Read_GL_ARB_debug_output;
17124 begin
17125   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
17126   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
17127   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
17128   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
17129 end;
17130
17131 procedure Read_GL_ARB_robustness;
17132 begin
17133   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
17134   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
17135   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
17136   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
17137   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
17138   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
17139   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
17140   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
17141   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
17142   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
17143   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
17144   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
17145   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
17146   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
17147   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
17148   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
17149   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
17150   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
17151   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
17152   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
17153 end;
17154
17155 procedure Read_GL_ATI_draw_buffers;
17156 begin
17157   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
17158 end;
17159
17160 procedure Read_GL_ATI_element_array;
17161 begin
17162   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
17163   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
17164   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
17165 end;
17166
17167 procedure Read_GL_ATI_envmap_bumpmap;
17168 begin
17169   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
17170   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
17171   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
17172   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
17173 end;
17174
17175 procedure Read_GL_ATI_fragment_shader;
17176 begin
17177   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
17178   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
17179   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
17180   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
17181   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
17182   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
17183   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
17184   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
17185   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
17186   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
17187   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
17188   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
17189   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
17190   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
17191 end;
17192
17193 procedure Read_GL_ATI_map_object_buffer;
17194 begin
17195   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
17196   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
17197 end;
17198
17199 procedure Read_GL_ATI_pn_triangles;
17200 begin
17201   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
17202   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
17203 end;
17204
17205 procedure Read_GL_ATI_separate_stencil;
17206 begin
17207   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
17208   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
17209 end;
17210
17211 procedure Read_GL_ATI_vertex_array_object;
17212 begin
17213   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
17214   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
17215   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
17216   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
17217   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
17218   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
17219   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
17220   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
17221   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
17222   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17223   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17224   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17225
17226 end;
17227
17228 procedure Read_GL_ATI_vertex_attrib_array_object;
17229 begin
17230   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17231   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17232   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17233 end;
17234
17235 procedure Read_GL_ATI_vertex_streams;
17236 begin
17237   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17238   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17239   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17240   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17241   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17242   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17243   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17244   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17245   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17246   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17247   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17248   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17249   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17250   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17251   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17252   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17253   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17254   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17255   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17256   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17257   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17258   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17259   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17260   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17261   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17262   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17263   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17264   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17265   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17266   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17267   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17268   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17269   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17270   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17271   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17272   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17273   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17274   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17275   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17276   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17277   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17278   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17279   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17280   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17281   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17282 end;
17283
17284 procedure Read_GL_AMD_performance_monitor;
17285 begin
17286   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17287   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17288   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17289   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17290   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17291   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17292   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17293   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17294   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17295   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17296   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17297 end;
17298
17299 procedure Read_GL_AMD_vertex_shader_tesselator;
17300 begin
17301   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17302   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17303 end;
17304
17305 procedure Read_GL_AMD_draw_buffers_blend;
17306 begin
17307   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17308   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17309   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17310   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17311 end;
17312
17313 procedure Read_GL_AMD_name_gen_delete;
17314 begin
17315   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17316   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17317   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17318 end;
17319
17320 procedure Read_GL_AMD_debug_output;
17321 begin
17322   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17323   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17324   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17325   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17326 end;
17327
17328 procedure Read_GL_EXT_blend_color;
17329 begin
17330   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17331 end;
17332
17333 procedure Read_GL_EXT_blend_func_separate;
17334 begin
17335   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17336 end;
17337
17338 procedure Read_GL_EXT_blend_minmax;
17339 begin
17340   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17341 end;
17342
17343 procedure Read_GL_EXT_color_subtable;
17344 begin
17345   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17346   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17347 end;
17348
17349 procedure Read_GL_EXT_compiled_vertex_array;
17350 begin
17351   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17352   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17353 end;
17354
17355 procedure Read_GL_EXT_convolution;
17356 begin
17357   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17358   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17359   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17360   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17361   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17362   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17363   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17364   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17365   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17366   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17367   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17368   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17369   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17370 end;
17371
17372 procedure Read_GL_EXT_coordinate_frame;
17373 begin
17374   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17375   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17376   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17377   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17378   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17379   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17380   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17381   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17382   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17383   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17384   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17385   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17386   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17387   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17388   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17389   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17390   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17391   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17392   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17393   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17394   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17395   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17396 end;
17397
17398 procedure Read_GL_EXT_copy_texture;
17399 begin
17400   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17401   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17402   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17403   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17404   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17405 end;
17406
17407 procedure Read_GL_EXT_cull_vertex;
17408 begin
17409   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17410   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17411 end;
17412
17413 procedure Read_GL_EXT_draw_range_elements;
17414 begin
17415   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17416 end;
17417
17418 procedure Read_GL_EXT_fog_coord;
17419 begin
17420   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17421   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17422   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17423   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17424   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17425 end;
17426
17427 procedure Read_GL_EXT_framebuffer_object;
17428 begin
17429   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17430   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17431   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17432   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17433   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17434   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17435   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17436   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17437   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17438   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17439   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17440   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17441   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17442   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17443   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17444   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17445   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17446 end;
17447
17448 procedure Read_GL_EXT_histogram;
17449 begin
17450   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17451   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17452   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17453   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17454   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17455   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17456   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17457   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17458   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17459   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17460 end;
17461
17462 procedure Read_GL_EXT_index_func;
17463 begin
17464   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17465 end;
17466
17467 procedure Read_GL_EXT_index_material;
17468 begin
17469   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17470 end;
17471
17472 procedure Read_GL_EXT_light_texture;
17473 begin
17474   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17475   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17476   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17477 end;
17478
17479 procedure Read_GL_EXT_multi_draw_arrays;
17480 begin
17481   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17482   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17483 end;
17484
17485 procedure Read_GL_EXT_multisample;
17486 begin
17487   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17488   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17489 end;
17490
17491 procedure Read_GL_EXT_paletted_texture;
17492 begin
17493   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17494   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17495   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17496   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17497 end;
17498
17499 procedure Read_GL_EXT_pixel_transform;
17500 begin
17501   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17502   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17503   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17504   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17505 end;
17506
17507 procedure Read_GL_EXT_point_parameters;
17508 begin
17509   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17510   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17511 end;
17512
17513 procedure Read_GL_EXT_polygon_offset;
17514 begin
17515   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17516 end;
17517
17518 procedure Read_GL_EXT_secondary_color;
17519 begin
17520   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17521   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17522   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17523   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17524   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17525   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17526   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17527   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17528   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17529   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17530   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17531   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17532   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17533   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17534   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17535   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17536   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17537 end;
17538
17539 procedure Read_GL_EXT_stencil_two_side;
17540 begin
17541   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17542 end;
17543
17544 procedure Read_GL_EXT_subtexture;
17545 begin
17546   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17547   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17548 end;
17549
17550 procedure Read_GL_EXT_texture3D;
17551 begin
17552   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17553   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17554 end;
17555
17556 procedure Read_GL_EXT_texture_object;
17557 begin
17558   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17559   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17560   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17561   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17562   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17563   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17564 end;
17565
17566 procedure Read_GL_EXT_texture_perturb_normal;
17567 begin
17568   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17569 end;
17570
17571 procedure Read_GL_EXT_vertex_array;
17572 begin
17573   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17574   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17575   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17576   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17577   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17578   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17579   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17580   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17581   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17582 end;
17583
17584 procedure Read_GL_EXT_vertex_shader;
17585 begin
17586   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17587   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17588   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17589   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17590   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17591   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17592   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17593   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17594   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17595   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17596   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17597   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17598   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17599   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17600   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17601   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17602   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17603   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17604   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17605   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17606   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17607   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17608   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17609   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17610   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17611   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17612   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17613   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17614   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17615   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17616   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17617   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17618   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17619   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17620   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17621   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17622   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17623   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17624   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17625   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17626   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17627   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17628 end;
17629
17630 procedure Read_GL_EXT_vertex_weighting;
17631 begin
17632   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17633   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17634   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17635 end;
17636
17637 procedure Read_GL_EXT_depth_bounds_test;
17638 begin
17639   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17640   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17641 end;
17642
17643 procedure Read_GL_EXT_blend_equation_separate;
17644 begin
17645   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17646 end;
17647
17648 procedure Read_GL_EXT_stencil_clear_tag;
17649 begin
17650   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17651 end;
17652
17653 procedure Read_GL_EXT_framebuffer_blit;
17654 begin
17655   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17656 end;
17657
17658 procedure Read_GL_EXT_framebuffer_multisample;
17659 begin
17660   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17661 end;
17662
17663 procedure Read_GL_EXT_timer_query;
17664 begin
17665   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17666   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17667 end;
17668
17669 procedure Read_GL_EXT_gpu_program_parameters;
17670 begin
17671   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17672   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17673 end;
17674
17675 procedure Read_GL_EXT_bindable_uniform;
17676 begin
17677   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17678   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17679   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17680 end;
17681
17682 procedure Read_GL_EXT_draw_buffers2;
17683 begin
17684   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17685   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17686   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17687   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17688   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17689   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17690 end;
17691
17692 procedure Read_GL_EXT_draw_instanced;
17693 begin
17694   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17695   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17696 end;
17697
17698 procedure Read_GL_EXT_geometry_shader4;
17699 begin
17700   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17701   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17702 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17703   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17704 end;
17705
17706 procedure Read_GL_EXT_gpu_shader4;
17707 begin
17708   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17709   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17710   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17711   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17712   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17713   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17714   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17715   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17716   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17717   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17718   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17719   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17720   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17721   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17722   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17723   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17724   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17725   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17726   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17727   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17728   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17729   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17730   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17731   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17732   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17733   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17734   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17735   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17736   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17737   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17738   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17739   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17740   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17741   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17742 end;
17743
17744 procedure Read_GL_EXT_texture_array;
17745 begin
17746   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17747 end;
17748
17749 procedure Read_GL_EXT_texture_buffer_object;
17750 begin
17751   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17752 end;
17753
17754 procedure Read_GL_EXT_texture_integer;
17755 begin
17756   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17757   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17758   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17759   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17760   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17761   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17762 end;
17763
17764 procedure Read_GL_EXT_transform_feedback;
17765 begin
17766   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17767   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17768   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17769   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17770   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17771   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17772   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17773 end;
17774
17775 procedure Read_GL_EXT_direct_state_access;
17776 begin
17777   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17778   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17779   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17780   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17781   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17782   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17783   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17784   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17785   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17786   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17787   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17788   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17789   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17790   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17791   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17792   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17793   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17794   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17795   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17796   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17797   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17798   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17799   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17800   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17801   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17802   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17803   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17804   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17805   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17806   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17807   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17808   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17809   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17810   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17811   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17812   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17813   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17814   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17815   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17816   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17817   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17818   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17819   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17820   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17821   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17822   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17823   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17824   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17825   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17826   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17827   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17828   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17829   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17830   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17831   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17832   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17833   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17834   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17835   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17836   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17837   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17838   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17839   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17840   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17841   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17842   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17843   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17844   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17845   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17846   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17847   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17848   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17849   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17850   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17851   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17852   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17853   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17854   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17855   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17856   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17857   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17858   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17859   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17860   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17861   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17862   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17863   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17864   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17865   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17866   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17867   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17868   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17869   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17870   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17871   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17872   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17873   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17874   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17875   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17876   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17877   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17878   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17879   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17880   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17881   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17882   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17883   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17884   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17885   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17886   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17887   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17888   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17889   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17890   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17891   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17892   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17893   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17894   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17895   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17896   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17897   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17898   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17899   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17900   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17901   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17902   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17903   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17904   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17905   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17906   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17907   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17908   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17909   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17910   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17911   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17912   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17913   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17914   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17915   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17916   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17917   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17918   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17919   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17920   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17921   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17922   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17923   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17924   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17925   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17926   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17927   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17928   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17929   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17930   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17931   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17932   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17933   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17934   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17935   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17936   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17937   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17938   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17939   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17940   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17941   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17942   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17943   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17944   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17945   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17946   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17947   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17948   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17949   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17950   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17951   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17952   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17953   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17954   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17955   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17956   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17957   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17958   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17959   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17960   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17961   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17962   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17963   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17964   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17965   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17966   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17967   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17968   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17969   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17970   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17971   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17972   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17973   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17974   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17975   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17976   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17977   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17978   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17979   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17980   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17981   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17982   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17983 end;
17984
17985 procedure Read_GL_EXT_separate_shader_objects;
17986 begin
17987   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17988   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17989   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17990 end;
17991
17992 procedure Read_GL_EXT_shader_image_load_store;
17993 begin
17994   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17995   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17996 end;
17997
17998 procedure Read_GL_EXT_vertex_attrib_64bit;
17999 begin
18000   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
18001   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
18002   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
18003   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
18004   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
18005   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
18006   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
18007   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
18008   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
18009   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
18010   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
18011 end;
18012
18013 procedure Read_GL_HP_image_transform;
18014 begin
18015   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
18016   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
18017   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
18018   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
18019   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
18020   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
18021 end;
18022
18023 procedure Read_GL_IBM_multimode_draw_arrays;
18024 begin
18025   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
18026   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
18027 end;
18028
18029 procedure Read_GL_IBM_vertex_array_lists;
18030 begin
18031   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
18032   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
18033   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
18034   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
18035   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
18036   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
18037   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
18038   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
18039 end;
18040
18041 procedure Read_GL_INGR_blend_func_separate;
18042 begin
18043   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
18044 end;
18045
18046 procedure Read_GL_INTEL_parallel_arrays;
18047 begin
18048   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
18049   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
18050   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
18051   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
18052 end;
18053
18054 procedure Read_GL_MESA_resize_buffers;
18055 begin
18056   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
18057 end;
18058
18059 procedure Read_GL_MESA_window_pos;
18060 begin
18061   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
18062   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
18063   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
18064   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
18065   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
18066   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
18067   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
18068   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
18069   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
18070   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
18071   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
18072   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
18073   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
18074   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
18075   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
18076   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
18077   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
18078   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
18079   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
18080   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
18081   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
18082   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
18083   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
18084   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
18085 end;
18086
18087 procedure Read_GL_NV_evaluators;
18088 begin
18089   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
18090   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
18091   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
18092   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
18093   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
18094   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
18095   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
18096   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
18097   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
18098 end;
18099
18100 procedure Read_GL_NV_fence;
18101 begin
18102   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
18103   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
18104   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
18105   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
18106   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
18107   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
18108   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
18109 end;
18110
18111 procedure Read_GL_NV_fragment_program;
18112 begin
18113   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
18114   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
18115   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
18116   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
18117   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
18118   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
18119 end;
18120
18121 procedure Read_GL_NV_half_float;
18122 begin
18123   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
18124   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
18125   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
18126   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
18127   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
18128   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
18129   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
18130   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
18131   glColor3hNV := dglGetProcAddress('glColor3hNV');
18132   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
18133   glColor4hNV := dglGetProcAddress('glColor4hNV');
18134   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
18135   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
18136   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
18137   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
18138   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
18139   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
18140   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
18141   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
18142   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
18143   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
18144   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
18145   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
18146   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
18147   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
18148   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
18149   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
18150   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
18151   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
18152   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
18153   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
18154   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
18155   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
18156   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
18157   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
18158   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
18159   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
18160   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
18161   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
18162   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
18163   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
18164   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
18165   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
18166   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
18167   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
18168   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
18169 end;
18170
18171 procedure Read_GL_NV_occlusion_query;
18172 begin
18173   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
18174   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
18175   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
18176   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
18177   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
18178   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
18179   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
18180 end;
18181
18182 procedure Read_GL_NV_pixel_data_range;
18183 begin
18184   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
18185   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
18186 end;
18187
18188 procedure Read_GL_NV_point_sprite;
18189 begin
18190   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
18191   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
18192 end;
18193
18194 procedure Read_GL_NV_primitive_restart;
18195 begin
18196   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
18197   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
18198 end;
18199
18200 procedure Read_GL_NV_register_combiners;
18201 begin
18202   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
18203   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
18204   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
18205   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
18206   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
18207   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
18208   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
18209   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
18210   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
18211   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
18212   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
18213   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
18214   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
18215 end;
18216
18217 procedure Read_GL_NV_register_combiners2;
18218 begin
18219   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
18220   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
18221 end;
18222
18223 procedure Read_GL_NV_vertex_array_range;
18224 begin
18225   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18226   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18227 end;
18228
18229 procedure Read_GL_NV_vertex_program;
18230 begin
18231   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18232   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18233   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18234   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18235   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18236   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18237   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18238   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18239   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18240   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18241   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18242   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18243   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18244   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18245   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18246   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18247   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18248   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18249   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18250   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18251   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18252   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18253   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18254   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18255   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18256   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18257   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18258   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18259   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18260   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18261   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18262   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18263   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18264   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18265   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18266   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18267   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18268   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18269   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18270   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18271   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18272   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18273   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18274   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18275   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18276   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18277   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18278   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18279   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18280   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18281   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18282   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18283   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18284   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18285   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18286   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18287   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18288   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18289   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18290   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18291   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18292   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18293   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18294   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18295 end;
18296
18297 procedure Read_GL_NV_depth_buffer_float;
18298 begin
18299   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18300   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18301   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18302 end;
18303
18304 procedure Read_GL_NV_framebuffer_multisample_coverage;
18305 begin
18306   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18307 end;
18308
18309 procedure Read_GL_NV_geometry_program4;
18310 begin
18311   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18312 end;
18313
18314 procedure Read_GL_NV_gpu_program4;
18315 begin
18316   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18317   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18318   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18319   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18320   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18321   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18322   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18323   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18324   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18325   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18326   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18327   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18328   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18329   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18330   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18331   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18332 end;
18333
18334 procedure Read_GL_NV_parameter_buffer_object;
18335 begin
18336   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18337   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18338   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18339 end;
18340
18341 procedure Read_GL_NV_transform_feedback;
18342 begin
18343   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18344   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18345   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18346   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18347   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18348   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18349   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18350   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18351   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18352   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18353   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18354   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18355 end;
18356
18357 procedure Read_GL_NV_conditional_render;
18358 begin
18359   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18360   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18361 end;
18362
18363 procedure Read_GL_NV_present_video;
18364 begin
18365   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18366   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18367   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18368   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18369   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18370   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18371 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18372 end;
18373
18374 procedure Read_GL_NV_explicit_multisample;
18375 begin
18376   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18377   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18378   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18379 end;
18380
18381 procedure Read_GL_NV_transform_feedback2;
18382 begin
18383   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18384   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18385   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18386   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18387   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18388   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18389   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18390 end;
18391
18392 procedure Read_GL_NV_video_capture;
18393 begin
18394   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18395   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18396   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18397   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18398   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18399   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18400   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18401   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18402   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18403   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18404   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18405   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18406 end;
18407
18408 procedure Read_GL_NV_copy_image;
18409 begin
18410   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18411 end;
18412
18413 procedure Read_GL_NV_shader_buffer_load;
18414 begin
18415   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18416   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18417   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18418   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18419   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18420   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18421   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18422   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18423   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18424   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18425   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18426   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18427   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18428   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18429 end;
18430
18431 procedure Read_GL_NV_vertex_buffer_unified_memory;
18432 begin
18433   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18434   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18435   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18436   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18437   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18438   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18439   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18440   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18441   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18442   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18443   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18444   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18445 end;
18446
18447 procedure Read_GL_NV_gpu_program5;
18448 begin
18449   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18450   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18451 end;
18452
18453 procedure Read_GL_NV_gpu_shader5;
18454 begin
18455   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18456   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18457   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18458   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18459   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18460   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18461   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18462   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18463   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18464   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18465   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18466   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18467   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18468   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18469   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18470   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18471   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18472   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18473   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18474   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18475   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18476   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18477   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18478   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18479   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18480   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18481   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18482   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18483   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18484   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18485   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18486   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18487   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18488 end;
18489
18490 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18491 begin
18492   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18493   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18494   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18495   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18496   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18497   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18498   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18499   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18500   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18501   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18502   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18503   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18504   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18505   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18506   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18507   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18508   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18509   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18510   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18511 end;
18512
18513 procedure Read_GL_NV_vdpau_interop;
18514 begin
18515   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18516   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18517   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18518   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18519   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18520   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18521   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18522   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18523   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18524   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18525 end;
18526
18527 procedure Read_GL_NV_texture_barrier;
18528 begin
18529   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18530 end;
18531
18532 procedure Read_GL_PGI_misc_hints;
18533 begin
18534   glHintPGI := dglGetProcAddress('glHintPGI');
18535 end;
18536
18537 procedure Read_GL_SGIS_detail_texture;
18538 begin
18539   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18540   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18541 end;
18542
18543 procedure Read_GL_SGIS_fog_function;
18544 begin
18545   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18546   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18547 end;
18548
18549 procedure Read_GL_SGIS_multisample;
18550 begin
18551   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18552   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18553 end;
18554
18555 procedure Read_GL_SGIS_pixel_texture;
18556 begin
18557   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18558   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18559   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18560   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18561   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18562   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18563 end;
18564
18565 procedure Read_GL_SGIS_point_parameters;
18566 begin
18567   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18568   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18569 end;
18570
18571 procedure Read_GL_SGIS_sharpen_texture;
18572 begin
18573   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18574   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18575 end;
18576
18577 procedure Read_GL_SGIS_texture4D;
18578 begin
18579   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18580   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18581 end;
18582
18583 procedure Read_GL_SGIS_texture_color_mask;
18584 begin
18585   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18586 end;
18587
18588 procedure Read_GL_SGIS_texture_filter4;
18589 begin
18590   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18591   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18592 end;
18593
18594 procedure Read_GL_SGIX_async;
18595 begin
18596   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18597   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18598   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18599   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18600   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18601   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18602 end;
18603
18604 procedure Read_GL_SGIX_flush_raster;
18605 begin
18606   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18607 end;
18608
18609 procedure Read_GL_SGIX_fragment_lighting;
18610 begin
18611   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18612   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18613   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18614   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18615   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18616   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18617   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18618   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18619   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18620   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18621   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18622   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18623   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18624   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18625   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18626   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18627   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18628   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18629 end;
18630
18631 procedure Read_GL_SGIX_framezoom;
18632 begin
18633   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18634 end;
18635
18636 procedure Read_GL_SGIX_igloo_interface;
18637 begin
18638   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18639 end;
18640
18641 procedure Read_GL_SGIX_instruments;
18642 begin
18643   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18644   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18645   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18646   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18647   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18648   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18649 end;
18650
18651 procedure Read_GL_SGIX_list_priority;
18652 begin
18653   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18654   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18655   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18656   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18657   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18658   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18659 end;
18660
18661 procedure Read_GL_SGIX_pixel_texture;
18662 begin
18663   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18664 end;
18665
18666 procedure Read_GL_SGIX_polynomial_ffd;
18667 begin
18668   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18669   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18670   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18671   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18672 end;
18673
18674 procedure Read_GL_SGIX_reference_plane;
18675 begin
18676   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18677 end;
18678
18679 procedure Read_GL_SGIX_sprite;
18680 begin
18681   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18682   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18683   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18684   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18685 end;
18686
18687 procedure Read_GL_SGIX_tag_sample_buffer;
18688 begin
18689   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18690 end;
18691
18692 procedure Read_GL_SGI_color_table;
18693 begin
18694   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18695   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18696   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18697   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18698   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18699   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18700   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18701 end;
18702
18703 procedure Read_GL_SUNX_constant_data;
18704 begin
18705   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18706 end;
18707
18708 procedure Read_GL_SUN_global_alpha;
18709 begin
18710   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18711   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18712   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18713   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18714   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18715   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18716   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18717   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18718 end;
18719
18720 procedure Read_GL_SUN_mesh_array;
18721 begin
18722   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18723 end;
18724
18725 procedure Read_GL_SUN_triangle_list;
18726 begin
18727   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18728   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18729   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18730   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18731   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18732   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18733   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18734 end;
18735
18736 procedure Read_GL_SUN_vertex;
18737 begin
18738   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18739   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18740   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18741   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18742   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18743   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18744   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18745   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18746   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18747   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18748   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18749   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18750   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18751   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18752   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18753   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18754   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18755   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18756   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18757   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18758   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18759   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18760   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18761   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18762   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18763   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18764   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18765   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18766   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18767   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18768   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18769   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18770   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18771   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18772   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18773   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18774   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18775   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18776   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18777   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18778 end;
18779
18780 {$IFDEF DGL_WIN}
18781 procedure Read_WGL_ARB_buffer_region;
18782 begin
18783   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18784   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18785   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18786   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18787 end;
18788
18789 procedure Read_WGL_ARB_extensions_string;
18790 begin
18791   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18792 end;
18793
18794 procedure Read_WGL_ARB_make_current_read;
18795 begin
18796   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18797   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18798 end;
18799
18800 procedure Read_WGL_ARB_pbuffer;
18801 begin
18802   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18803   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18804   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18805   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18806   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18807 end;
18808
18809 procedure Read_WGL_ARB_pixel_format;
18810 begin
18811   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18812   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18813   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18814 end;
18815
18816 procedure Read_WGL_ARB_pixel_format_float;
18817 begin
18818   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18819 end;
18820
18821 procedure Read_WGL_ARB_render_texture;
18822 begin
18823   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18824   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18825   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18826 end;
18827
18828 procedure Read_WGL_ARB_create_context;
18829 begin
18830   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18831 end;
18832
18833 procedure Read_WGL_AMD_gpu_association;
18834 begin
18835   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18836   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18837   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18838   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18839   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18840   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18841   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18842   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18843   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18844 end;
18845
18846 procedure Read_WGL_EXT_display_color_table;
18847 begin
18848   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18849   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18850   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18851   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18852 end;
18853
18854 procedure Read_WGL_EXT_extensions_string;
18855 begin
18856   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18857 end;
18858
18859 procedure Read_WGL_EXT_make_current_read;
18860 begin
18861   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18862   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18863 end;
18864
18865 procedure Read_WGL_EXT_pbuffer;
18866 begin
18867   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18868   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18869   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18870   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18871   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18872 end;
18873
18874 procedure Read_WGL_EXT_pixel_format;
18875 begin
18876   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18877   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18878   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18879 end;
18880
18881 procedure Read_WGL_EXT_swap_control;
18882 begin
18883   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18884   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18885 end;
18886
18887 procedure Read_WGL_I3D_digital_video_control;
18888 begin
18889   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18890   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18891 end;
18892
18893 procedure Read_WGL_I3D_gamma;
18894 begin
18895   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18896   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18897   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18898   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18899 end;
18900
18901 procedure Read_WGL_I3D_genlock;
18902 begin
18903   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18904   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18905   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18906   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18907   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18908   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18909   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18910   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18911   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18912   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18913   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18914   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18915 end;
18916
18917 procedure Read_WGL_I3D_image_buffer;
18918 begin
18919   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18920   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18921   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18922   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18923 end;
18924
18925 procedure Read_WGL_I3D_swap_frame_lock;
18926 begin
18927   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18928   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18929   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18930   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18931 end;
18932
18933 procedure Read_WGL_I3D_swap_frame_usage;
18934 begin
18935   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18936   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18937   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18938   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18939 end;
18940
18941 procedure Read_WGL_NV_vertex_array_range;
18942 begin
18943   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18944   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18945 end;
18946
18947 procedure Read_WGL_NV_present_video;
18948 begin
18949   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18950   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18951   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18952 end;
18953
18954 procedure Read_WGL_NV_video_output;
18955 begin
18956   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18957   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18958   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18959   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18960   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18961   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18962 end;
18963
18964 procedure Read_WGL_NV_swap_group;
18965 begin
18966   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18967   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18968   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18969   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18970   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18971   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18972 end;
18973
18974 procedure Read_WGL_NV_gpu_affinity;
18975 begin
18976   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18977   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18978   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18979   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18980   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18981 end;
18982
18983 procedure Read_WGL_NV_video_capture;
18984 begin
18985   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18986   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18987   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18988   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18989   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18990 end;
18991
18992 procedure Read_WGL_NV_copy_image;
18993 begin
18994   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18995 end;
18996
18997 procedure Read_WGL_NV_DX_interop;
18998 begin
18999   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
19000   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
19001   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
19002   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
19003   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
19004   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
19005   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
19006   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
19007 end;
19008
19009
19010 procedure Read_WGL_OML_sync_control;
19011 begin
19012   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
19013   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
19014   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
19015   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
19016   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
19017   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
19018 end;
19019
19020 procedure Read_WGL_3DL_stereo_control;
19021 begin
19022   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
19023 end;
19024
19025 procedure Read_WIN_draw_range_elements;
19026 begin
19027   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
19028 end;
19029
19030 procedure Read_WIN_swap_hint;
19031 begin
19032   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
19033 end;
19034 {$ENDIF}
19035
19036
19037 procedure ReadExtensions;
19038 begin
19039   ReadOpenGLCore;
19040
19041   Read_GL_3DFX_tbuffer;
19042   Read_GL_APPLE_element_array;
19043   Read_GL_APPLE_fence;
19044   Read_GL_APPLE_vertex_array_object;
19045   Read_GL_APPLE_vertex_array_range;
19046   Read_GL_APPLE_texture_range;
19047   Read_GL_APPLE_vertex_program_evaluators;
19048   Read_GL_APPLE_object_purgeable;
19049   Read_GL_ARB_matrix_palette;
19050   Read_GL_ARB_multitexture;
19051   Read_GL_ARB_point_parameters;
19052   Read_GL_ARB_texture_compression;
19053   Read_GL_ARB_transpose_matrix;
19054   Read_GL_ARB_vertex_blend;
19055   Read_GL_ARB_vertex_buffer_object;
19056   Read_GL_ARB_vertex_program;
19057   Read_GL_ARB_window_pos;
19058   Read_GL_ARB_color_buffer_float;
19059   Read_GL_ARB_Shader_Objects;
19060   Read_GL_ARB_occlusion_query;
19061   Read_GL_ARB_draw_instanced;
19062   Read_GL_ARB_framebuffer_object;
19063   Read_GL_ARB_geometry_shader4;
19064   Read_GL_ARB_instanced_arrays;
19065   Read_GL_ARB_map_buffer_range;
19066   Read_GL_ARB_texture_buffer_object;
19067   Read_GL_ARB_vertex_array_object;
19068   Read_GL_ARB_uniform_buffer_object;
19069   Read_GL_ARB_copy_buffer;
19070   Read_GL_ARB_draw_elements_base_vertex;
19071   Read_GL_ARB_provoking_vertex;
19072   Read_GL_ARB_sync;
19073   Read_GL_ARB_texture_multisample;
19074   Read_GL_ARB_draw_buffers_blend;
19075   Read_GL_ARB_sample_shading;
19076   Read_GL_ARB_shading_language_include;
19077   Read_GL_ARB_sparse_texture;
19078   Read_GL_ARB_sparse_buffer;
19079   Read_GL_ARB_blend_func_extended;
19080   Read_GL_ARB_sampler_objects;
19081   Read_GL_ARB_timer_query;
19082   Read_GL_ARB_vertex_type_2_10_10_10_rev;
19083   Read_GL_ARB_draw_indirect;
19084   Read_GL_ARB_gpu_shader_fp64;
19085   Read_GL_ARB_shader_subroutine;
19086   Read_GL_ARB_tessellation_shader;
19087   Read_GL_ARB_transform_feedback2;
19088   Read_GL_ARB_transform_feedback3;
19089   Read_GL_ARB_ES2_compatibility;
19090   Read_GL_ARB_get_program_binary;
19091   Read_GL_ARB_separate_shader_objects;
19092   Read_GL_ARB_vertex_attrib_64bit;
19093   Read_GL_ARB_viewport_array;
19094   Read_GL_ARB_cl_event;
19095   Read_GL_ARB_compute_variable_group_size;
19096   Read_GL_ARB_debug_output;
19097   Read_GL_ARB_robustness;
19098   //
19099   Read_GL_ATI_draw_buffers;
19100   Read_GL_ATI_element_array;
19101   Read_GL_ATI_envmap_bumpmap;
19102   Read_GL_ATI_fragment_shader;
19103   Read_GL_ATI_map_object_buffer;
19104   Read_GL_ATI_pn_triangles;
19105   Read_GL_ATI_separate_stencil;
19106   Read_GL_ATI_vertex_array_object;
19107   Read_GL_ATI_vertex_attrib_array_object;
19108   Read_GL_ATI_vertex_streams;
19109   Read_GL_AMD_performance_monitor;
19110   Read_GL_AMD_vertex_shader_tesselator;
19111   Read_GL_AMD_draw_buffers_blend;
19112   Read_GL_AMD_name_gen_delete;
19113   Read_GL_AMD_debug_output;
19114   Read_GL_AMD_stencil_operation_extended;
19115   Read_GL_EXT_blend_color;
19116   Read_GL_EXT_blend_func_separate;
19117   Read_GL_EXT_blend_minmax;
19118   Read_GL_EXT_color_subtable;
19119   Read_GL_EXT_compiled_vertex_array;
19120   Read_GL_EXT_convolution;
19121   Read_GL_EXT_coordinate_frame;
19122   Read_GL_EXT_copy_texture;
19123   Read_GL_EXT_cull_vertex;
19124   Read_GL_EXT_draw_range_elements;
19125   Read_GL_EXT_fog_coord;
19126   Read_GL_EXT_framebuffer_object;
19127   Read_GL_EXT_histogram;
19128   Read_GL_EXT_index_func;
19129   Read_GL_EXT_index_material;
19130   Read_GL_EXT_multi_draw_arrays;
19131   Read_GL_EXT_multisample;
19132   Read_GL_EXT_paletted_texture;
19133   Read_GL_EXT_pixel_transform;
19134   Read_GL_EXT_point_parameters;
19135   Read_GL_EXT_polygon_offset;
19136   Read_GL_EXT_secondary_color;
19137   Read_GL_EXT_stencil_two_side;
19138   Read_GL_EXT_subtexture;
19139   Read_GL_EXT_texture3D;
19140   Read_GL_EXT_texture_object;
19141   Read_GL_EXT_texture_perturb_normal;
19142   Read_GL_EXT_vertex_array;
19143   Read_GL_EXT_vertex_shader;
19144   Read_GL_EXT_vertex_weighting;
19145   Read_GL_EXT_depth_bounds_test;
19146   Read_GL_EXT_blend_equation_separate;
19147   Read_GL_EXT_stencil_clear_tag;
19148   Read_GL_EXT_framebuffer_blit;
19149   Read_GL_EXT_framebuffer_multisample;
19150   Read_GL_EXT_timer_query;
19151   Read_GL_EXT_gpu_program_parameters;
19152   Read_GL_EXT_bindable_uniform;
19153   Read_GL_EXT_draw_buffers2;
19154   Read_GL_EXT_draw_instanced;
19155   Read_GL_EXT_geometry_shader4;
19156   Read_GL_EXT_gpu_shader4;
19157   Read_GL_EXT_texture_array;
19158   Read_GL_EXT_texture_buffer_object;
19159   Read_GL_EXT_texture_integer;
19160   Read_GL_EXT_transform_feedback;
19161   Read_GL_EXT_direct_state_access;
19162   Read_GL_EXT_separate_shader_objects;
19163   Read_GL_EXT_shader_image_load_store;
19164   Read_GL_EXT_vertex_attrib_64bit;
19165   Read_GL_HP_image_transform;
19166   Read_GL_IBM_multimode_draw_arrays;
19167   Read_GL_IBM_vertex_array_lists;
19168   Read_GL_INGR_blend_func_separate;
19169   Read_GL_INTEL_parallel_arrays;
19170   Read_GL_KHR_blend_equation_advanced;
19171   Read_GL_MESA_resize_buffers;
19172   Read_GL_MESA_window_pos;
19173   Read_GL_NV_evaluators;
19174   Read_GL_NV_fence;
19175   Read_GL_NV_fragment_program;
19176   Read_GL_NV_half_float;
19177   Read_GL_NV_occlusion_query;
19178   Read_GL_NV_pixel_data_range;
19179   Read_GL_NV_point_sprite;
19180   Read_GL_NV_primitive_restart;
19181   Read_GL_NV_register_combiners;
19182   Read_GL_NV_register_combiners2;
19183   Read_GL_NV_vertex_array_range;
19184   Read_GL_NV_vertex_program;
19185   Read_GL_NV_depth_buffer_float;
19186   Read_GL_NV_framebuffer_multisample_coverage;
19187   Read_GL_NV_geometry_program4;
19188   Read_GL_NV_gpu_program4;
19189   Read_GL_NV_parameter_buffer_object;
19190   Read_GL_NV_transform_feedback;
19191   Read_GL_NV_conditional_render;
19192   Read_GL_NV_present_video;
19193   Read_GL_NV_explicit_multisample;
19194   Read_GL_NV_transform_feedback2;
19195   Read_GL_NV_video_capture;
19196   Read_GL_NV_copy_image;
19197   Read_GL_NV_shader_buffer_load;
19198   Read_GL_NV_vertex_buffer_unified_memory;
19199   Read_GL_NV_gpu_program5;
19200   Read_GL_NV_gpu_shader5;
19201   Read_GL_NV_vertex_attrib_integer_64bit;
19202   Read_GL_NV_vdpau_interop;
19203   Read_GL_NV_texture_barrier;
19204   Read_GL_NV_path_rendering;
19205   Read_GL_NV_bindless_texture;
19206   Read_GL_PGI_misc_hints;
19207   Read_GL_SGIS_detail_texture;
19208   Read_GL_SGIS_fog_function;
19209   Read_GL_SGIS_multisample;
19210   Read_GL_SGIS_pixel_texture;
19211   Read_GL_SGIS_point_parameters;
19212   Read_GL_SGIS_sharpen_texture;
19213   Read_GL_SGIS_texture4D;
19214   Read_GL_SGIS_texture_color_mask;
19215   Read_GL_SGIS_texture_filter4;
19216   Read_GL_SGIX_async;
19217   Read_GL_SGIX_flush_raster;
19218   Read_GL_SGIX_fragment_lighting;
19219   Read_GL_SGIX_framezoom;
19220   Read_GL_SGIX_igloo_interface;
19221   Read_GL_SGIX_instruments;
19222   Read_GL_SGIX_list_priority;
19223   Read_GL_SGIX_pixel_texture;
19224   Read_GL_SGIX_polynomial_ffd;
19225   Read_GL_SGIX_reference_plane;
19226   Read_GL_SGIX_sprite;
19227   Read_GL_SGIX_tag_sample_buffer;
19228   Read_GL_SGI_color_table;
19229   Read_GL_SUNX_constant_data;
19230   Read_GL_SUN_global_alpha;
19231   Read_GL_SUN_mesh_array;
19232   Read_GL_SUN_triangle_list;
19233   Read_GL_SUN_vertex;
19234
19235 {$IFDEF DGL_WIN}
19236   Read_WGL_ARB_buffer_region;
19237   Read_WGL_ARB_extensions_string;
19238   Read_WGL_ARB_make_current_read;
19239   Read_WGL_ARB_pbuffer;
19240   Read_WGL_ARB_pixel_format;
19241   Read_WGL_ARB_pixel_format_float;
19242   Read_WGL_ARB_render_texture;
19243   Read_WGL_ARB_create_context;
19244   Read_WGL_AMD_gpu_association;
19245   Read_WGL_EXT_display_color_table;
19246   Read_WGL_EXT_extensions_string;
19247   Read_WGL_EXT_make_current_read;
19248   Read_WGL_EXT_pbuffer;
19249   Read_WGL_EXT_pixel_format;
19250   Read_WGL_EXT_swap_control;
19251   Read_WGL_I3D_digital_video_control;
19252   Read_WGL_I3D_gamma;
19253   Read_WGL_I3D_genlock;
19254   Read_WGL_I3D_image_buffer;
19255   Read_WGL_I3D_swap_frame_lock;
19256   Read_WGL_I3D_swap_frame_usage;
19257   Read_WGL_NV_vertex_array_range;
19258   Read_WGL_NV_present_video;
19259   Read_WGL_NV_video_output;
19260   Read_WGL_NV_swap_group;
19261   Read_WGL_NV_gpu_affinity;
19262   Read_WGL_NV_video_capture;
19263   Read_WGL_NV_copy_image;
19264   Read_WGL_NV_DX_interop;
19265   Read_WGL_OML_sync_control;
19266   Read_WGL_3DL_stereo_control;
19267
19268   Read_WIN_draw_range_elements;
19269   Read_WIN_swap_hint;
19270 {$ENDIF}
19271
19272   ExtensionsRead := True;
19273 end;
19274
19275 // =============================================================================
19276 //  ReadCoreVersion
19277 // =============================================================================
19278
19279 procedure ReadCoreVersion;
19280 var
19281   AnsiBuffer: AnsiString;
19282   Buffer: String;
19283   MajorVersion, MinorVersion: Integer;
19284
19285   procedure TrimAndSplitVersionString(Buffer: String; var Max, Min: Integer);
19286     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19287     // at least however "Major.Minor".
19288   var
19289     Separator: Integer;
19290   begin
19291     try
19292       // There must be at least one dot to separate major and minor version number.
19293       Separator := Pos('.', Buffer);
19294       // At least one number must be before and one after the dot.
19295       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19296       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19297       begin
19298         // OK, it's a valid version string. Now remove unnecessary parts.
19299         Dec(Separator);
19300         // Find last non-numeric character before version number.
19301         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19302           Dec(Separator);
19303         // Delete leading characters which do not belong to the version string.
19304         Delete(Buffer, 1, Separator);
19305         Separator := Pos('.', Buffer) + 1;
19306         // Find first non-numeric character after version number
19307         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19308           Inc(Separator);
19309         // delete trailing characters not belonging to the version string
19310         Delete(Buffer, Separator, 255);
19311         // Now translate the numbers.
19312         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19313         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19314         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19315       end
19316       else
19317         Abort;
19318     except
19319       Min := 0;
19320       Max := 0;
19321     end;
19322   end;
19323
19324
19325 begin
19326   // determine version of implementation
19327   // GL
19328   if not Assigned(@glGetString) then
19329     glGetString := dglGetProcAddress('glGetString');
19330
19331   AnsiBuffer := glGetString(GL_VERSION);
19332   Buffer := String(AnsiBuffer);
19333
19334   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19335
19336   GL_VERSION_1_0 := True;
19337   GL_VERSION_1_1 := False;
19338   GL_VERSION_1_2 := False;
19339   GL_VERSION_1_3 := False;
19340   GL_VERSION_1_4 := False;
19341   GL_VERSION_1_5 := False;
19342   GL_VERSION_2_0 := False;
19343   GL_VERSION_2_1 := False;
19344   GL_VERSION_3_0 := False;
19345   GL_VERSION_3_1 := False;
19346   GL_VERSION_3_2 := False;
19347   GL_VERSION_3_3 := False;
19348   GL_VERSION_4_0 := False;
19349   GL_VERSION_4_1 := False;
19350   GL_VERSION_4_2 := False;
19351   GL_VERSION_4_3 := False;
19352   GL_VERSION_4_4 := False;
19353   GL_VERSION_4_5 := False;
19354
19355   if MajorVersion = 1 then
19356   begin
19357     if MinorVersion >= 1 then
19358       GL_VERSION_1_1 := True;
19359     if MinorVersion >= 2 then
19360       GL_VERSION_1_2 := True;
19361     if MinorVersion >= 3 then
19362       GL_VERSION_1_3 := True;
19363     if MinorVersion >= 4 then
19364       GL_VERSION_1_4 := True;
19365     if MinorVersion >= 5 then
19366       GL_VERSION_1_5 := True;
19367   end;
19368
19369   if MajorVersion >= 2 then
19370   begin
19371     GL_VERSION_1_1 := True;
19372     GL_VERSION_1_2 := True;
19373     GL_VERSION_1_3 := True;
19374     GL_VERSION_1_4 := True;
19375     GL_VERSION_1_5 := True;
19376     GL_VERSION_2_0 := True;
19377
19378     if MinorVersion >= 1 then
19379       GL_VERSION_2_1 := True;
19380   end;
19381
19382   if MajorVersion >= 3 then
19383   begin
19384     GL_VERSION_2_1 := True;
19385     GL_VERSION_3_0 := True;
19386
19387     if MinorVersion >= 1 then
19388       GL_VERSION_3_1 := True;
19389     if MinorVersion >= 2 then
19390       GL_VERSION_3_2 := True;
19391     if MinorVersion >= 3 then
19392       GL_VERSION_3_3 := True;
19393   end;
19394
19395   if MajorVersion >= 4 then
19396   begin
19397     GL_VERSION_3_1 := True;
19398     GL_VERSION_3_2 := True;
19399     GL_VERSION_3_3 := True;
19400     GL_VERSION_4_0 := True;
19401
19402     if MinorVersion >= 1 then
19403       GL_VERSION_4_1 := True;
19404     if MinorVersion >= 2 then
19405       GL_VERSION_4_2 := True;
19406     if MinorVersion >= 3 then
19407       GL_VERSION_4_3 := True;
19408     if MinorVersion >= 4 then
19409       GL_VERSION_4_4 := True;
19410     if MinorVersion >= 5 then
19411       GL_VERSION_4_5:= True;
19412   end;
19413
19414   // GLU
19415   GLU_VERSION_1_1 := False;
19416   GLU_VERSION_1_2 := False;
19417   GLU_VERSION_1_3 := False;
19418
19419   if Assigned(gluGetString) then begin
19420     AnsiBuffer := gluGetString(GLU_VERSION);
19421     Buffer := String(AnsiBuffer);
19422
19423     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19424
19425     GLU_VERSION_1_1 := True;
19426
19427     if MinorVersion >= 2 then
19428       GLU_VERSION_1_2 := True;
19429
19430     if MinorVersion >= 3 then
19431       GLU_VERSION_1_3 := True;
19432   end;
19433 end;
19434
19435
19436 // =============================================================================
19437 //  ReadImplementationProperties
19438 // =============================================================================
19439
19440 procedure ReadImplementationProperties;
19441 var
19442   Buffer: Ansistring;
19443 begin
19444   ReadCoreVersion;
19445
19446   // Check all extensions
19447   Buffer := Int_GetExtensionString;
19448
19449   // 3DFX
19450   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19451   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19452   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19453
19454   // APPLE
19455   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19456   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19457   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19458   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19459   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19460   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19461   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19462   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19463   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19464   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19465   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19466   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19467   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19468   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19469   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19470
19471   // ARB
19472   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19473   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19474   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19475   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19476   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19477   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19478   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19479   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19480   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19481   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19482   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19483   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19484   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19485   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19486   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19487   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19488   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19489   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19490   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19491   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19492   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19493   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19494   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19495   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19496   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19497   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19498   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19499   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19500   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19501   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19502   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19503   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19504   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19505   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19506   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19507   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19508   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19509   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19510   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19511   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19512   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19513   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19514   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19515   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19516   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19517   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19518   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19519   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19520   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19521   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19522   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19523   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19524   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19525   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19526   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19527   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19528   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19529   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19530   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19531   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19532   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19533   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19534   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19535   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19536   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19537   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19538   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19539   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19540   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19541   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19542   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19543   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19544   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19545   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19546   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19547   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19548   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19549   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19550   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19551   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19552   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19553   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19554   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19555   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19556   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19557   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19558   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19559   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19560   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19561   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19562   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19563   GL_ARB_compute_variable_group_size := Int_CheckExtension(Buffer, 'GL_ARB_compute_variable_group_size');
19564
19565   // GL 4.2
19566   GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19567   GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19568   GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19569   GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19570   GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19571   GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19572   GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19573   GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19574   GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19575   GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19576   GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19577
19578   // GL 4.3
19579   GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19580   GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19581   GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19582   GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19583   GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19584   GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19585   GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19586   GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19587   GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19588   GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19589   GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19590   GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19591   GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19592   GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19593   GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19594   GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19595   GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19596   GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19597   GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19598   GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19599   GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19600   GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19601   GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19602   GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19603   GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19604   GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19605
19606   // GL 4.4
19607   GL_ARB_buffer_storage := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19608   GL_ARB_clear_texture := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19609   GL_ARB_enhanced_layouts := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19610   GL_ARB_multi_bind := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19611   GL_ARB_query_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19612   GL_ARB_texture_mirror_clamp_to_edge:= Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19613   GL_ARB_texture_stencil8 := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19614   GL_ARB_vertex_type_10f_11f_11f_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19615   GL_ARB_bindless_texture := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
19616   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19617
19618   // GL 4.5
19619   GL_ARB_clip_control := Int_CheckExtension(Buffer, 'GL_ARB_clip_control');
19620   GL_ARB_cull_distance := Int_CheckExtension(Buffer, 'GL_ARB_cull_distance');
19621   GL_ARB_ES3_1_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_1_compatibility');
19622   GL_ARB_conditional_render_inverted := Int_CheckExtension(Buffer, 'GL_ARB_conditional_render_inverted');
19623   GL_KHR_context_flush_control := Int_CheckExtension(Buffer, 'GL_KHR_context_flush_control');
19624   GL_ARB_derivative_control := Int_CheckExtension(Buffer, 'GL_ARB_derivative_control');
19625   GL_ARB_direct_state_access := Int_CheckExtension(Buffer, 'GL_ARB_direct_state_access');
19626   GL_ARB_get_texture_sub_image := Int_CheckExtension(Buffer, 'GL_ARB_get_texture_sub_image');
19627   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19628   GL_ARB_shader_texture_image_samples := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_image_samples');
19629   GL_ARB_texture_barrier := Int_CheckExtension(Buffer, 'GL_ARB_texture_barrier');
19630
19631   // ATI/AMD
19632   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19633   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19634   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19635   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19636   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19637   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19638   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19639   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19640   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19641   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19642   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19643   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19644   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19645   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19646   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19647   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19648   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19649   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19650   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19651   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19652   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19653   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19654   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19655   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19656   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19657   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19658   // 4.3
19659   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19660   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19661   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19662   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19663   GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19664
19665   // EXT
19666   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19667   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19668   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19669   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19670   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19671   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19672   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19673   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19674   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19675   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19676   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19677   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19678   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19679   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19680   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19681   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19682   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19683   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19684   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19685   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19686   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19687   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19688   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19689   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19690   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19691   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19692   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19693   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19694   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19695   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19696   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19697   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19698   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19699   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19700   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19701   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19702   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19703   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19704   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19705   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19706   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19707   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19708   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19709   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19710   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19711   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19712   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19713   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19714   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19715   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19716   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19717   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19718   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19719   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19720   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19721   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19722   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19723   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19724   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19725   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19726   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19727   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19728   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19729   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19730   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19731   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19732   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19733   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19734   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19735   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19736   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19737   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19738   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19739   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19740   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19741   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19742   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19743   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19744   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19745   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19746   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19747   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19748   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19749   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19750   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19751   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19752   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19753   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19754   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19755   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19756   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19757   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19758   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19759   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19760
19761   // HP
19762   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19763   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19764   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19765   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19766
19767   // IBM
19768   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19769   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19770   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19771   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19772   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19773
19774   // INGR
19775   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19776   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19777   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19778   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19779
19780   // INTEL
19781   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19782   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19783
19784   // MESA
19785   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19786   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19787
19788   // Khronos
19789   // 4.5
19790   GL_KHR_blend_equation_advanced := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced');
19791   GL_KHR_blend_equation_advanced_coherent := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
19792   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19793   GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior');
19794
19795   // NVIDIA
19796   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19797   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19798   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19799   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19800   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19801   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19802   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19803   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19804   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19805   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19806   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19807   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19808   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19809   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19810   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19811   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19812   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19813   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19814   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19815   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19816   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19817   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19818   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19819   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19820   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19821   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19822   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19823   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19824   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19825   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19826   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19827   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19828   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19829   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19830   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19831   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19832   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19833   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19834   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19835   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19836   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19837   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19838   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19839   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19840   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19841   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19842   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19843   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19844   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19845   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19846   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19847   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19848   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19849   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19850   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19851   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19852   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19853   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19854   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19855   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19856   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19857   // 4.3
19858   GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19859   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19860   GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19861
19862   // OML
19863   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19864   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19865   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19866
19867   // PGI
19868   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19869   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19870
19871   // REND
19872   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19873
19874   // S3
19875   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19876
19877   // SGIS
19878   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19879   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19880   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19881   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19882   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19883   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19884   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19885   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19886   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19887   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19888   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19889   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19890   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19891   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19892   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19893
19894   // SGIX
19895   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19896   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19897   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19898   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19899   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19900   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19901   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19902   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19903   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19904   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19905   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19906   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19907   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19908   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19909   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19910   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19911   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19912   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19913   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19914   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19915   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19916   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19917   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19918   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19919   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19920   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19921   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19922   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19923   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19924   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19925   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19926   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19927   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19928   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19929   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19930   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19931   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19932   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19933   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19934   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19935   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19936   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19937
19938   // SGI
19939   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19940   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19941   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19942   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19943
19944   // SUN
19945   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19946   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19947   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19948   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19949   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19950   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19951   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19952
19953   // WIN
19954   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19955   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19956
19957   {$IFDEF DGL_WIN}
19958   // WGL
19959   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19960   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19961   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19962   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19963   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19964   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19965   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19966   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19967   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19968   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19969   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19970   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19971   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19972   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19973   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19974   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19975   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19976   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19977   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19978   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19979   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19980   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19981   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19982   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19983   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19984   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19985   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19986   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19987   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19988   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19989   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19990   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19991   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19992   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19993   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19994   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19995   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19996   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19997   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19998   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19999   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
20000   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
20001   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
20002   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
20003   WGL_ARB_context_flush_control := Int_CheckExtension(Buffer, 'WGL_ARB_context_flush_control');
20004   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
20005   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
20006   {$ENDIF}
20007
20008   {$IFDEF DGL_LINUX}
20009   // GLX
20010   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
20011   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
20012   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
20013   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
20014   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
20015   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
20016   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
20017   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
20018   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
20019   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
20020   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
20021   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
20022   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
20023   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
20024   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
20025   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
20026   GLX_ARB_context_flush_control := Int_CheckExtension(Buffer, 'GLX_ARB_context_flush_control');
20027   {$ENDIF}
20028
20029   ImplementationRead := True;
20030 end;
20031
20032 {$IFDEF DGL_WIN}
20033 // =============================================================================
20034 // RaiseLastOSError
20035 // =============================================================================
20036 // Needed for compatibility with older Delphiversions
20037 // =============================================================================
20038
20039 procedure RaiseLastOSError;
20040 begin
20041 {$IFDEF FPC}
20042   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
20043 {$ELSE}
20044   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
20045     SysUtils.RaiseLastWin32Error;
20046   {$ELSE}
20047     SysUtils.RaiseLastOSError;
20048   {$ENDIF}
20049 {$ENDIF}
20050 end;
20051
20052 // =============================================================================
20053 // CreateRenderingContext
20054 // =============================================================================
20055
20056 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20057 const
20058   OBJ_MEMDC = 10;
20059   OBJ_ENHMETADC = 12;
20060   OBJ_METADC = 4;
20061   PFD_DOUBLEBUFFER = $00000001;
20062   PFD_STEREO = $00000002;
20063   PFD_DRAW_TO_WINDOW = $00000004;
20064   PFD_DRAW_TO_BITMAP = $00000008;
20065   PFD_SUPPORT_GDI = $00000010;
20066   PFD_SUPPORT_OPENGL = $00000020;
20067   PFD_TYPE_RGBA = 0;
20068   PFD_MAIN_PLANE = 0;
20069   PFD_OVERLAY_PLANE = 1;
20070   PFD_UNDERLAY_PLANE = LongWord(-1);
20071   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20072 var
20073   PFDescriptor: TPixelFormatDescriptor;
20074   PixelFormat: Integer;
20075   AType: DWORD;
20076 begin
20077   if GL_LibHandle = nil then
20078     InitOpenGL;
20079
20080   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20081
20082   with PFDescriptor do
20083   begin
20084     nSize := SizeOf(PFDescriptor);
20085     nVersion := 1;
20086     dwFlags := PFD_SUPPORT_OPENGL;
20087
20088     AType := GetObjectType(DC);
20089
20090     if AType = 0 then
20091       RaiseLastOSError;
20092
20093     if AType in MemoryDCs then
20094       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20095     else
20096       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20097
20098     if opDoubleBuffered in Options then
20099       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20100
20101     if opGDI in Options then
20102       dwFlags := dwFlags or PFD_SUPPORT_GDI;
20103
20104     if opStereo in Options then
20105       dwFlags := dwFlags or PFD_STEREO;
20106
20107     iPixelType := PFD_TYPE_RGBA;
20108     cColorBits := ColorBits;
20109     cDepthBits := zBits;
20110     cStencilBits := StencilBits;
20111     cAccumBits := AccumBits;
20112     cAuxBuffers := AuxBuffers;
20113
20114     if Layer = 0 then
20115       iLayerType := PFD_MAIN_PLANE
20116     else
20117     if Layer > 0 then
20118       iLayerType := PFD_OVERLAY_PLANE
20119     else
20120       iLayerType := Byte(PFD_UNDERLAY_PLANE);
20121   end;
20122
20123   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20124
20125   if PixelFormat = 0 then
20126     RaiseLastOSError;
20127
20128   if GetPixelFormat(DC) <> PixelFormat then
20129     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20130       RaiseLastOSError;
20131
20132   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20133
20134   Result := wglCreateContext(DC);
20135
20136   if Result = 0 then
20137     RaiseLastOSError
20138   else
20139     LastPixelFormat := 0;
20140 end;
20141
20142 // =============================================================================
20143 // CreateRenderingContextVersion
20144 // =============================================================================
20145 //  Creates a context for the more recent OpenGL versions (3.0) and up
20146 //  For that we first need to get a normal GL context for getting the
20147 //  function pointer to wglCreateContextAttribsARB first
20148 // =============================================================================
20149 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20150 const
20151   OBJ_MEMDC          = 10;
20152   OBJ_ENHMETADC      = 12;
20153   OBJ_METADC         = 4;
20154   PFD_DOUBLEBUFFER   = $00000001;
20155   PFD_STEREO         = $00000002;
20156   PFD_DRAW_TO_WINDOW = $00000004;
20157   PFD_DRAW_TO_BITMAP = $00000008;
20158   PFD_SUPPORT_GDI    = $00000010;
20159   PFD_SUPPORT_OPENGL = $00000020;
20160   PFD_TYPE_RGBA      = 0;
20161   PFD_MAIN_PLANE     = 0;
20162   PFD_OVERLAY_PLANE  = 1;
20163   PFD_UNDERLAY_PLANE = LongWord(-1);
20164   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20165 var
20166   PFDescriptor : TPixelFormatDescriptor;
20167   PixelFormat  : Integer;
20168   AType        : DWORD;
20169   LegacyRC     : HGLRC;
20170   Attribs      : array of Integer;
20171 begin
20172   if GL_LibHandle = nil then
20173         InitOpenGL;
20174
20175   if not Assigned(GL_LibHandle) then
20176         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
20177
20178   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20179
20180   with PFDescriptor do
20181     begin
20182       nSize    := SizeOf(PFDescriptor);
20183       nVersion := 1;
20184       dwFlags  := PFD_SUPPORT_OPENGL;
20185       AType    := GetObjectType(DC);
20186
20187       if AType = 0 then
20188         RaiseLastOSError;
20189
20190       if AType in MemoryDCs then
20191         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20192       else
20193         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20194
20195       if opDoubleBuffered in Options then
20196         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20197
20198       if opGDI in Options then
20199         dwFlags := dwFlags or PFD_SUPPORT_GDI;
20200
20201       if opStereo in Options then
20202         dwFlags := dwFlags or PFD_STEREO;
20203
20204       iPixelType   := PFD_TYPE_RGBA;
20205       cColorBits   := ColorBits;
20206       cDepthBits   := zBits;
20207       cStencilBits := StencilBits;
20208       cAccumBits   := AccumBits;
20209       cAuxBuffers  := AuxBuffers;
20210
20211       if Layer = 0 then
20212         iLayerType := PFD_MAIN_PLANE
20213       else
20214         if Layer > 0 then
20215           iLayerType := PFD_OVERLAY_PLANE
20216         else
20217           iLayerType := Byte(PFD_UNDERLAY_PLANE);
20218     end;
20219
20220   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20221
20222   if PixelFormat = 0 then
20223         RaiseLastOSError;
20224
20225   if GetPixelFormat(DC) <> PixelFormat then
20226         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20227                 RaiseLastOSError;
20228
20229   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20230
20231   // Create legacy render context first for we need function pointers to
20232   // create new OpenGL render contexts
20233   LegacyRC := wglCreateContext(DC);
20234   wglMakeCurrent(DC, LegacyRC);
20235
20236   // Set attributes to describe our requested context
20237   SetLength(Attribs, 5);
20238   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
20239   Attribs[1] := MajorVersion;
20240   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
20241   Attribs[3] := MinorVersion;
20242
20243   // Add context flag for forward compatible context
20244   //  Forward compatible means no more support for legacy functions like
20245   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
20246   if ForwardCompatible then
20247     begin
20248       SetLength(Attribs, Length(Attribs)+2);
20249       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
20250       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
20251     end;
20252
20253   // Attribute flags must be finalized with a zero
20254   Attribs[High(Attribs)] := 0;
20255
20256   // Get function pointer for new context creation function
20257   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20258
20259   if not Assigned(wglCreateContextAttribsARB) then
20260     begin
20261       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20262       wglDeleteContext(LegacyRC);
20263       exit;
20264     end;
20265
20266   // Create context
20267   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20268
20269   if Result = 0 then
20270     begin
20271       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20272       wglDeleteContext(LegacyRC);
20273       exit;
20274     end;
20275
20276   wglDeleteContext(LegacyRC);
20277
20278   if Result = 0 then
20279         RaiseLastOSError
20280   else
20281         LastPixelFormat := 0;
20282 end;
20283
20284 // =============================================================================
20285 // DestroyRenderingContext
20286 // =============================================================================
20287
20288 procedure DestroyRenderingContext(RC: HGLRC);
20289 begin
20290   wglDeleteContext(RC);
20291 end;
20292
20293
20294 // =============================================================================
20295 // ActivateRenderingContext
20296 // =============================================================================
20297
20298 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20299 begin
20300   Assert((DC <> 0), 'DC must not be 0');
20301   Assert((RC <> 0), 'RC must not be 0');
20302
20303   wglMakeCurrent(DC, RC);
20304
20305   {$ifdef DGL_TINY_HEADER}
20306   ReadCoreVersion;
20307   {$else}
20308   ReadImplementationProperties;
20309
20310   if (loadext) then
20311     ReadExtensions;
20312   {$endif}
20313 end;
20314
20315 // =============================================================================
20316 // DeactivateRenderingContext
20317 // =============================================================================
20318
20319 procedure DeactivateRenderingContext;
20320 begin
20321   wglMakeCurrent(0, 0);
20322 end;
20323 {$ENDIF}
20324
20325
20326 initialization
20327
20328 {$IFDEF CPU386}
20329   Set8087CW($133F);
20330 {$ENDIF}
20331 {$IFDEF DGL_64BIT}
20332   SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide,exOverflow, exUnderflow, exPrecision]);
20333 {$ENDIF}
20334
20335
20336 finalization
20337
20338 end.
20339