Added missing function for GLX_EXT_swap_control
[LazOpenGLCore.git] / dglOpenGL.pas
1 { ============================================================================
2
3        OpenGL 4.5 - Headertranslation
4        Version 4.5
5
6        Supported environments and targets :
7         - (Win32) Delphi 4 and up
8         - (Win32, Win64) Delphi XE2
9         - (Win32, Win64, Linux, MacOSX) FreePascal (1.9.3 and up)
10
11 ==============================================================================
12
13        Copyright (C) DGL-OpenGL-Portteam
14        All Rights Reserved
15
16        Obtained through:
17        Bitbucket source repository - https://bitbucket.org/saschawillems/dglopengl
18        Delphi OpenGL Community(DGL) - www.delphigl.com
19
20        Converted and maintained by DGL's OpenGL-Portteam :
21          - Sascha Willems             - http://www.saschawillems.de
22          - Steffen Xonna (Lossy eX)   - http://www.dev-center.de
23        Additional input :
24          - Andrey Gruzdev (Mac OS X patch for XE2 / FPC)
25          - Lars Middendorf
26          - Martin Waldegger (Mars)
27          - Benjamin Rosseaux (BeRo)   - http://www.0ok.de
28        Additional thanks:
29            sigsegv (libdl.so)
30
31 ==============================================================================
32
33   You may retrieve the latest version of this file at the Delphi OpenGL
34   Community home page, located at http://www.delphigl.com/
35
36   The contents of this file are used with permission, subject to
37   the Mozilla Public License Version 1.1 (the "License"); you may
38   not use this file except in compliance with the License. You may
39   obtain a copy of the License at
40   http://www.mozilla.org/MPL/MPL-1.1.html
41
42   Software distributed under the License is distributed on an
43   "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
44   implied. See the License for the specific language governing
45   rights and limitations under the License.
46
47 ==============================================================================
48
49
50   History : see readme.md
51
52
53 ============================================================================== }
54
55 {$define DGL_DEPRECATED}
56 {
57   This define defines if the header should use deprecated ARB stuff or not.
58   per Default the Header use deprecated Stuff.
59 }
60
61
62 {.$define DGL_TINY_HEADER}
63 {
64   If you enable the define DGL_TINY_HEADER no function automatically will be loaded if you
65   call ActivateRenderingContext. This may some bit faster and the smart linker can delete
66   all non used functions. This will reduce the filesize of your binary file. But in this
67   case you have to load the functions by yourself. There are two ways to do this.
68
69   1. You can load whole extension by calling the func Read_Extensionname. But if you do
70      this it's possible to load functions you dont use. So you have the same "problem"
71      like before. But it's only an bit smaler.
72      > Read_GL_ARB_multitexture;
73
74   2. You are able to load only the functions you exactly need. In this case you are able
75      to use the variables of the dglOpenGL.pas. So you only need to load the functions
76      and you can use the header like before.
77      To do this you have to created and activated an opengl context and than you can load
78      the needed functions.
79      > ActivateRenderingContext(fDC, fRC);
80      > glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
81      > glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
82
83      So only the function "glActiveTextureARB" and "glMultiTexCoord2fARB" will be loaded.
84
85
86   Please notice that the extension variables won't be loaded if this define is active. But
87   you can call dglCheckExtension to check if any extension exists. You can assign them to
88   the variables of the dglOpenGL.pas so all code they use this will find them.
89
90   > GL_ARB_shading_language_100 := dglCheckExtension('GL_ARB_shading_language_100');
91 }
92
93
94 unit dglOpenGL;
95
96 interface
97
98 // defines to configure freepascal
99 {$IFDEF FPC}
100   {$MODE Delphi}
101
102   {$IFNDEF WINDOWS}
103     {$LINKLIB c}
104   {$ENDIF}
105 {$ENDIF}
106
107 // known delphi versions
108 {$IFNDEF FPC}       // if freepascal isnt defined
109   {$IFDEF VER140}   // Delphi 6
110     {$DEFINE DELPHI6_AND_DOWN}
111   {$ENDIF}
112
113   {$IFDEF VER130}   // Delphi 5
114     {$DEFINE DELPHI6_AND_DOWN}
115   {$ENDIF}
116
117   {$IFDEF VER120}   // Delphi 4
118     {$DEFINE DELPHI6_AND_DOWN}
119   {$ENDIF}
120
121   {$IFDEF VER110}   // C++ Builder 3
122     {$DEFINE DELPHI6_AND_DOWN}
123   {$ENDIF}
124
125   {$IFDEF VER100}   // Delphi 3
126     {$DEFINE DELPHI6_AND_DOWN}
127   {$ENDIF}
128 {$ENDIF}
129
130 // Options for Delphi < 5
131 {$IFDEF DELPHI6_AND_DOWN}
132   {$A+}
133 {$ELSE}
134   {$A4}
135 {$ENDIF}
136
137 // generell options
138 {$H+,O+,X+}
139
140 // detecting Windows
141 {$IFDEF Win32}          // Delphi and fpc of 32 Bit Windows
142   {$DEFINE DGL_WIN}
143 {$ENDIF}
144
145 {$IFDEF Win64}          // Delphi and fpc of 32 Bit Windows
146   {$DEFINE DGL_WIN}
147 {$ENDIF}
148
149 // detecting Linux
150 {$IFDEF linux}          // Linux
151   {$DEFINE DGL_LINUX}
152 {$ENDIF}
153
154 {$IFDEF DARWIN}  // Mac OS X and FPC
155    {$DEFINE DGL_MAC}
156 {$ENDIF}
157
158 {$IFDEF DELPHI}  // Mac OS X add Delphi
159 {$IFDEF MACOS}
160    {$DEFINE DGL_MAC}
161 {$ENDIF}
162 {$ENDIF}
163
164
165 // detecting 64 Bit CPU
166 {$IFDEF CPU64}          // fpc on 64 bit cpus
167   {$DEFINE DGL_64BIT}   // dgl define for 64 bit
168 {$ENDIF}
169
170
171
172 uses
173   {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions
174   SysUtils
175   {$IFDEF DGL_WIN}, Windows{$ENDIF}
176   {$IFDEF DGL_LINUX}, X, XLib, XUtil{$ENDIF}
177   ;
178
179 type
180   // Needed for Delphi 6 and less (defined in system.pas for Delphi 7)
181   PPointer = ^Pointer;
182   PCardinal = ^Cardinal;
183
184   GLenum = Cardinal;
185   GLboolean = BYTEBOOL;
186   GLbitfield = Cardinal;
187   GLbyte = Shortint;
188   GLshort = SmallInt;
189   GLint = Integer;
190   GLsizei = Integer;
191   GLubyte = Byte;
192   GLushort = Word;
193   GLuint = Cardinal;
194   GLfloat = Single;
195   GLclampf = Single;
196   GLdouble = Double;
197   GLclampd = Double;
198   GLvoid = Pointer;
199   GLint64 = Int64;
200   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
201
202   TGLenum = GLenum;
203   TGLboolean = GLboolean;
204   TGLbitfield = GLbitfield;
205   TGLbyte = GLbyte;
206   TGLshort = GLshort;
207   TGLint = GLint;
208   TGLsizei = GLsizei;
209   TGLubyte = GLubyte;
210   TGLushort = GLushort;
211   TGLuint = GLuint;
212   TGLfloat = GLfloat;
213   TGLclampf = GLclampf;
214   TGLdouble = GLdouble;
215   TGLclampd = GLclampd;
216   TGLvoid = GLvoid;
217   TGLint64 = GLint64;
218   TGLuint64 = GLuint64;
219
220   PGLboolean = ^GLboolean;
221   PGLbyte = ^GLbyte;
222   PGLshort = ^GLshort;
223   PGLint = ^GLint;
224   PGLsizei = ^GLsizei;
225   PGLubyte = ^GLubyte;
226   PGLushort = ^GLushort;
227   PGLuint = ^GLuint;
228   PGLclampf = ^GLclampf;
229   PGLfloat = ^GLfloat;
230   PGLdouble = ^GLdouble;
231   PGLclampd = ^GLclampd;
232   PGLenum = ^GLenum;
233   PGLvoid = Pointer;
234   PPGLvoid = ^PGLvoid;
235   PGLint64 = ^GLint64;
236   PGLuint64 = ^GLuint64;
237
238   // GL_NV_half_float
239   GLhalfNV = WORD;
240   TGLhalfNV = GLhalfNV;
241   PGLhalfNV = ^GLhalfNV;
242
243   // GL_ARB_shader_objects
244   PGLHandleARB = ^GLHandleARB;
245   GLHandleARB = Integer;
246   GLcharARB = AnsiChar;
247   PGLcharARB = PAnsiChar;
248   PPGLcharARB = ^PGLcharARB;
249
250   // GL_VERSION_1_5
251   GLintptr = GLint;
252   PGLintptr = ^GLintptr;
253   GLsizeiptr = GLsizei;
254
255   // GL_ARB_vertex_buffer_object
256   GLintptrARB = GLint;
257   GLsizeiptrARB = GLsizei;
258
259   // GL_VERSION_2_0
260   GLHandle = Integer;
261   PGLchar = PAnsiChar;
262   PPGLchar = ^PGLChar;
263
264   // GL_EXT_timer_query
265   GLint64EXT = Int64;
266   TGLint64EXT = GLint64EXT;
267   PGLint64EXT = ^GLint64EXT;
268
269   GLuint64EXT = GLuint64;
270   TGLuint64EXT = GLuint64EXT;
271   PGLuint64EXT = ^GLuint64EXT;
272
273   // WGL_ARB_pbuffer
274   HPBUFFERARB = THandle;
275
276   // WGL_EXT_pbuffer
277   HPBUFFEREXT = THandle;
278
279   // WGL_NV_present_video
280   PHVIDEOOUTPUTDEVICENV = ^HVIDEOOUTPUTDEVICENV;
281   HVIDEOOUTPUTDEVICENV = THandle;
282
283   // WGL_NV_video_output
284   PHPVIDEODEV = ^HPVIDEODEV;
285   HPVIDEODEV = THandle;
286
287   // WGL_NV_gpu_affinity
288   PHPGPUNV = ^HPGPUNV;
289   PHGPUNV = ^HGPUNV;
290
291   // WGL_NV_video_capture
292   HVIDEOINPUTDEVICENV = THandle;
293   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
294
295   HPGPUNV = THandle;
296   HGPUNV = THandle;
297
298   // GL_ARB_sync
299   GLsync = Pointer;
300
301   // GL_ARB_cl_event
302   { These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event }
303   _cl_context = record end;
304   _cl_event = record end;
305   p_cl_context = ^_cl_context;
306   p_cl_event = ^_cl_event;
307
308   // GL_ARB_compute_variable_group_size
309   TglDispatchComputeGroupSizeARB = procedure (num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint; group_size_x : GLuint; group_size_y : GLuint; group_size_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
310
311   // GL_ARB_debug_output
312   TglDebugProcARB = procedure (source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
313
314   // GL_AMD_debug_output
315   TglDebugProcAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
316
317   // GL_KHR_debug (4.3)
318   TglDebugProc = procedure(source : GLEnum; type_ : GLEnum; id : GLUInt; severity : GLUInt; length : GLsizei; const message_ : PGLCHar; userParam : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
319
320   // GL_NV_vdpau_interop
321   GLvdpauSurfaceNV = GLintptr;
322   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
323
324
325   // GLX
326   {$IFDEF DGL_LINUX}
327     GLXContext = Pointer;
328     GLXContextID = TXID;
329     GLXDrawable = TXID;
330     GLXFBConfig = Pointer;
331     GLXPbuffer = TXID;
332     GLXPixmap = TXID;
333     GLXWindow = TXID;
334
335     Window = TXID;
336     Colormap = TXID;
337     Pixmap = TXID;
338     Font = TXID;
339   {$ENDIF}
340
341   // Datatypes corresponding to GL's types TGL(name)(type)(count)
342   TGLVectorub2 = array[0..1] of GLubyte;
343   TGLVectori2  = array[0..1] of GLint;
344   TGLVectorf2  = array[0..1] of GLfloat;
345   TGLVectord2  = array[0..1] of GLdouble;
346   TGLVectorp2  = array[0..1] of Pointer;
347
348   TGLVectorub3 = array[0..2] of GLubyte;
349   TGLVectori3  = array[0..2] of GLint;
350   TGLVectorf3  = array[0..2] of GLfloat;
351   TGLVectord3  = array[0..2] of GLdouble;
352   TGLVectorp3  = array[0..2] of Pointer;
353
354   TGLVectorub4 = array[0..3] of GLubyte;
355   TGLVectori4  = array[0..3] of GLint;
356   TGLVectorf4  = array[0..3] of GLfloat;
357   TGLVectord4  = array[0..3] of GLdouble;
358   TGLVectorp4  = array[0..3] of Pointer;
359
360   TGLArrayf4 = TGLVectorf4;
361   TGLArrayf3 = TGLVectorf3;
362   TGLArrayd3 = TGLVectord3;
363   TGLArrayi4 = TGLVectori4;
364   TGLArrayp4 = TGLVectorp4;
365
366   TGlMatrixub3 = array[0..2, 0..2] of GLubyte;
367   TGlMatrixi3  = array[0..2, 0..2] of GLint;
368   TGLMatrixf3  = array[0..2, 0..2] of GLfloat;
369   TGLMatrixd3  = array[0..2, 0..2] of GLdouble;
370
371   TGlMatrixub4 = array[0..3, 0..3] of GLubyte;
372   TGlMatrixi4  = array[0..3, 0..3] of GLint;
373   TGLMatrixf4  = array[0..3, 0..3] of GLfloat;
374   TGLMatrixd4  = array[0..3, 0..3] of GLdouble;
375
376   TGLVector3f = TGLVectorf3;
377
378   // Datatypes corresponding to OpenGL12.pas for easy porting
379   TVector3d = TGLVectord3;
380
381   TVector4i = TGLVectori4;
382   TVector4f = TGLVectorf4;
383   TVector4p = TGLVectorp4;
384
385   TMatrix4f = TGLMatrixf4;
386   TMatrix4d = TGLMatrixd4;
387
388   PGLMatrixd4 = ^TGLMatrixd4;
389   PVector4i = ^TVector4i;
390
391
392
393 {$IFDEF FPC}
394   TRect = packed record
395     Left, Top, Right, Bottom: Longint;
396   end;
397 {$ENDIF}
398
399
400   PGPU_DEVICE = ^GPU_DEVICE;
401   GPU_DEVICE = record
402     cb: DWORD;
403     DeviceName: array [0..31] of AnsiChar;
404     DeviceString: array [0..127] of AnsiChar;
405     Flags: DWORD;
406     rcVirtualScreen: TRect;
407   end;
408
409
410 type
411 {$IFDEF FPC}
412   {$IFDEF DGL_WIN}
413     PWGLSwap = ^TWGLSwap;
414     {$EXTERNALSYM _WGLSWAP}
415       _WGLSWAP = packed record
416         hdc: HDC;
417         uiFlags: UINT;
418       end;
419
420     TWGLSwap = _WGLSWAP;
421   {$EXTERNALSYM WGLSWAP}
422     WGLSWAP = _WGLSWAP;
423
424   {$ENDIF}
425 {$ENDIF}
426
427   // GLU types
428   TGLUNurbs = record
429   end;
430   TGLUQuadric = record
431   end;
432   TGLUTesselator = record
433   end;
434   PGLUNurbs = ^TGLUNurbs;
435   PGLUQuadric = ^TGLUQuadric;
436   PGLUTesselator = ^TGLUTesselator;
437   // backwards compatibility
438   TGLUNurbsObj = TGLUNurbs;
439   TGLUQuadricObj = TGLUQuadric;
440   TGLUTesselatorObj = TGLUTesselator;
441   TGLUTriangulatorObj = TGLUTesselator;
442   PGLUNurbsObj = PGLUNurbs;
443   PGLUQuadricObj = PGLUQuadric;
444   PGLUTesselatorObj = PGLUTesselator;
445   PGLUTriangulatorObj = PGLUTesselator;
446
447   // GLUQuadricCallback
448   TGLUQuadricErrorProc = procedure(errorCode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
449   // GLUTessCallback
450   TGLUTessBeginProc = procedure(AType: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
451   TGLUTessEdgeFlagProc = procedure(Flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
452   TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
453   TGLUTessEndProc = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
454   TGLUTessErrorProc = procedure(ErrNo: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
455   TGLUTessCombineProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
456   TGLUTessBeginDataProc = procedure(AType: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
457   TGLUTessEdgeFlagDataProc = procedure(Flag: GLboolean; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
458   TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
459   TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
460   TGLUTessErrorDataProc = procedure(ErrNo: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
461   TGLUTessCombineDataProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
462   // GLUNurbsCallback
463   TGLUNurbsErrorProc = procedure(ErrorCode: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
464
465 var
466   GL_VERSION_1_0,
467   GL_VERSION_1_1,
468   GL_VERSION_1_2,
469   GL_VERSION_1_3,
470   GL_VERSION_1_4,
471   GL_VERSION_1_5,
472   GL_VERSION_2_0,
473   GL_VERSION_2_1,
474   GL_VERSION_3_0,
475   GL_VERSION_3_1,
476   GL_VERSION_3_2,
477   GL_VERSION_3_3,
478   GL_VERSION_4_0,
479   GL_VERSION_4_1,
480   GL_VERSION_4_2,
481   GL_VERSION_4_3,
482   GL_VERSION_4_4,
483   GL_VERSION_4_5,
484   GLU_VERSION_1_1,
485   GLU_VERSION_1_2,
486   GLU_VERSION_1_3,
487   GL_3DFX_multisample,
488   GL_3DFX_tbuffer,
489   GL_3DFX_texture_compression_FXT1,
490   GL_APPLE_client_storage,
491   GL_APPLE_element_array,
492   GL_APPLE_fence,
493   GL_APPLE_specular_vector,
494   GL_APPLE_transform_hint,
495   GL_APPLE_vertex_array_object,
496   GL_APPLE_vertex_array_range,
497   GL_APPLE_ycbcr_422,
498   GL_APPLE_texture_range,
499   GL_APPLE_float_pixels,
500   GL_APPLE_vertex_program_evaluators,
501   GL_APPLE_aux_depth_stencil,
502   GL_APPLE_object_purgeable,
503   GL_APPLE_row_bytes,
504   GL_APPLE_rgb_422,
505   GL_ARB_depth_texture,
506   GL_ARB_fragment_program,
507   GL_ARB_imaging,
508   GL_ARB_matrix_palette,
509   GL_ARB_multisample,
510   GL_ARB_multitexture,
511   GL_ARB_point_parameters,
512   GL_ARB_shadow,
513   GL_ARB_shadow_ambient,
514   GL_ARB_texture_border_clamp,
515   GL_ARB_texture_compression,
516   GL_ARB_texture_cube_map,
517   GL_ARB_texture_env_add,
518   GL_ARB_texture_env_combine,
519   GL_ARB_texture_env_crossbar,
520   GL_ARB_texture_env_dot3,
521   GL_ARB_texture_mirrored_repeat,
522   GL_ARB_transpose_matrix,
523   GL_ARB_vertex_blend,
524   GL_ARB_vertex_buffer_object,
525   GL_ARB_vertex_program,
526   GL_ARB_window_pos,
527   GL_ARB_shader_objects,
528   GL_ARB_vertex_shader,
529   GL_ARB_fragment_shader,
530   GL_ARB_shading_language_100,
531   GL_ARB_occlusion_query,
532   GL_ARB_texture_non_power_of_two,
533   GL_ARB_point_sprite,
534   GL_ARB_fragment_program_shadow,
535   GL_ARB_draw_buffers,
536   GL_ARB_texture_rectangle,
537   GL_ARB_color_buffer_float,
538   GL_ARB_half_float_pixel,
539   GL_ARB_texture_float,
540   GL_ARB_pixel_buffer_object,
541   GL_ARB_depth_buffer_float,
542   GL_ARB_draw_instanced,
543   GL_ARB_framebuffer_object,
544   GL_ARB_framebuffer_sRGB,
545   GL_ARB_geometry_shader4,
546   GL_ARB_half_float_vertex,
547   GL_ARB_instanced_arrays,
548   GL_ARB_map_buffer_range,
549   GL_ARB_texture_buffer_object,
550   GL_ARB_texture_compression_rgtc,
551   GL_ARB_texture_rg,
552   GL_ARB_vertex_array_object,
553   GL_ARB_uniform_buffer_object,
554   GL_ARB_compatibility,
555   GL_ARB_copy_buffer,
556   GL_ARB_shader_texture_lod,
557   GL_ARB_depth_clamp,
558   GL_ARB_draw_elements_base_vertex,
559   GL_ARB_fragment_coord_conventions,
560   GL_ARB_provoking_vertex,
561   GL_ARB_seamless_cube_map,
562   GL_ARB_sync,
563   GL_ARB_texture_multisample,
564   GL_ARB_vertex_array_bgra,
565   GL_ARB_draw_buffers_blend,
566   GL_ARB_sample_shading,
567   GL_ARB_texture_cube_map_array,
568   GL_ARB_texture_gather,
569   GL_ARB_texture_query_lod,
570   GL_ARB_shading_language_include,
571   GL_ARB_texture_compression_bptc,
572   GL_ARB_blend_func_extended,
573   GL_ARB_explicit_attrib_location,
574   GL_ARB_occlusion_query2,
575   GL_ARB_sampler_objects,
576   GL_ARB_shader_bit_encoding,
577   GL_ARB_texture_rgb10_a2ui,
578   GL_ARB_texture_swizzle,
579   GL_ARB_timer_query,
580   GL_ARB_vertex_type_2_10_10_10_rev,
581   GL_ARB_draw_indirect,
582   GL_ARB_gpu_shader5,
583   GL_ARB_gpu_shader_fp64,
584   GL_ARB_shader_subroutine,
585   GL_ARB_tessellation_shader,
586   GL_ARB_texture_buffer_object_rgb32,
587   GL_ARB_transform_feedback2,
588   GL_ARB_transform_feedback3,
589   GL_ARB_ES2_compatibility,
590   GL_ARB_get_program_binary,
591   GL_ARB_separate_shader_objects,
592   GL_ARB_shader_precision,
593   GL_ARB_vertex_attrib_64bit,
594   GL_ARB_viewport_array,
595
596   // GL 4.2
597   GL_ARB_base_instance,
598   GL_ARB_shading_language_420pack,
599   GL_ARB_transform_feedback_instanced,
600   GL_ARB_compressed_texture_pixel_storage,
601   GL_ARB_conservative_depth,
602   GL_ARB_internalformat_query,
603   GL_ARB_map_buffer_alignment,
604   GL_ARB_shader_atomic_counters,
605   GL_ARB_shader_image_load_store,
606   GL_ARB_shading_language_packing,
607   GL_ARB_texture_storage,
608
609
610   // GL 4.3
611   GL_ARB_arrays_of_arrays,
612   GL_ARB_fragment_layer_viewport,
613   GL_ARB_shader_image_size,
614   GL_ARB_ES3_compatibility,
615   GL_ARB_clear_buffer_object,
616   GL_ARB_compute_shader,
617   GL_ARB_copy_image,
618   GL_KHR_debug,
619   GL_ARB_explicit_uniform_location,
620   GL_ARB_framebuffer_no_attachments,
621   GL_ARB_internalformat_query2,
622   GL_ARB_invalidate_subdata,
623   GL_ARB_multi_draw_indirect,
624   GL_ARB_program_interface_query,
625   GL_ARB_robust_buffer_access_behavior,
626   GL_ARB_shader_storage_buffer_object,
627   GL_ARB_stencil_texturing,
628   GL_ARB_texture_buffer_range,
629   GL_ARB_texture_query_levels,
630   GL_ARB_texture_storage_multisample,
631   GL_ARB_texture_view,
632   GL_ARB_vertex_attrib_binding,
633   GL_NV_path_rendering,
634   GL_AMD_pinned_memory,
635   GL_AMD_stencil_operation_extended,
636   GL_AMD_vertex_shader_viewport_index,
637   GL_AMD_vertex_shader_layer,
638   GL_NV_bindless_texture,
639   GL_NV_shader_atomic_float,
640   GL_AMD_query_buffer_object,
641
642
643   // GL 4.4
644   GL_ARB_buffer_storage,
645   GL_ARB_clear_texture,
646   GL_ARB_enhanced_layouts,
647   GL_ARB_multi_bind,
648   GL_ARB_query_buffer_object,
649   GL_ARB_texture_mirror_clamp_to_edge,
650   GL_ARB_texture_stencil8,
651   GL_ARB_vertex_type_10f_11f_11f_rev,
652   GL_ARB_bindless_texture,
653   GL_ARB_sparse_texture,
654
655   // GL 4.5
656   GL_ARB_clip_control,
657   GL_ARB_cull_distance,
658   GL_ARB_ES3_1_compatibility,
659   GL_ARB_conditional_render_inverted,
660   GL_KHR_context_flush_control,
661   GL_ARB_derivative_control,
662   GL_ARB_direct_state_access,
663   GL_ARB_get_texture_sub_image,
664   GL_KHR_robustness,
665   GL_KHR_blend_equation_advanced,
666   GL_KHR_blend_equation_advanced_coherent,
667   GL_KHR_robust_buffer_access_behavior,
668   GL_ARB_shader_texture_image_samples,
669   GL_ARB_texture_barrier,
670
671   GL_ARB_cl_event,
672   GL_ARB_compute_variable_group_size,
673   GL_ARB_debug_output,
674   GL_ARB_robustness,
675   GL_ARB_shader_stencil_export,
676   GL_ATI_draw_buffers,
677   GL_ATI_element_array,
678   GL_ATI_envmap_bumpmap,
679   GL_ATI_fragment_shader,
680   GL_ATI_map_object_buffer,
681   GL_ATI_pn_triangles,
682   GL_ATI_separate_stencil,
683   GL_ATI_text_fragment_shader,
684   GL_ATI_texture_env_combine3,
685   GL_ATI_texture_float,
686   GL_ATI_texture_mirror_once,
687   GL_ATI_vertex_array_object,
688   GL_ATI_vertex_attrib_array_object,
689   GL_ATI_vertex_streams,
690   GL_ATI_meminfo,
691   GL_AMD_performance_monitor,
692   GL_AMD_texture_texture4,
693   GL_AMD_vertex_shader_tesselator,
694   GL_AMD_draw_buffers_blend,
695   GL_AMD_shader_stencil_export,
696   GL_AMD_seamless_cubemap_per_texture,
697   GL_AMD_conservative_depth,
698   GL_AMD_name_gen_delete,
699   GL_AMD_debug_output,
700   GL_AMD_transform_feedback3_lines_triangles,
701   GL_AMD_depth_clamp_separate,
702   GL_EXT_422_pixels,
703   GL_EXT_abgr,
704   GL_EXT_bgra,
705   GL_EXT_blend_color,
706   GL_EXT_blend_func_separate,
707   GL_EXT_blend_logic_op,
708   GL_EXT_blend_minmax,
709   GL_EXT_blend_subtract,
710   GL_EXT_clip_volume_hint,
711   GL_EXT_cmyka,
712   GL_EXT_color_matrix,
713   GL_EXT_color_subtable,
714   GL_EXT_compiled_vertex_array,
715   GL_EXT_convolution,
716   GL_EXT_coordinate_frame,
717   GL_EXT_copy_texture,
718   GL_EXT_cull_vertex,
719   GL_EXT_draw_range_elements,
720   GL_EXT_fog_coord,
721   GL_EXT_framebuffer_object,
722   GL_EXT_histogram,
723   GL_EXT_index_array_formats,
724   GL_EXT_index_func,
725   GL_EXT_index_material,
726   GL_EXT_index_texture,
727   GL_EXT_light_texture,
728   GL_EXT_misc_attribute,
729   GL_EXT_multi_draw_arrays,
730   GL_EXT_multisample,
731   GL_EXT_packed_pixels,
732   GL_EXT_paletted_texture,
733   GL_EXT_pixel_transform,
734   GL_EXT_pixel_transform_color_table,
735   GL_EXT_point_parameters,
736   GL_EXT_polygon_offset,
737   GL_EXT_rescale_normal,
738   GL_EXT_secondary_color,
739   GL_EXT_separate_specular_color,
740   GL_EXT_shadow_funcs,
741   GL_EXT_shared_texture_palette,
742   GL_EXT_stencil_two_side,
743   GL_EXT_stencil_wrap,
744   GL_EXT_subtexture,
745   GL_EXT_texture,
746   GL_EXT_texture3D,
747   GL_EXT_texture_compression_s3tc,
748   GL_EXT_texture_cube_map,
749   GL_EXT_texture_edge_clamp,
750   GL_EXT_texture_env_add,
751   GL_EXT_texture_env_combine,
752   GL_EXT_texture_env_dot3,
753   GL_EXT_texture_filter_anisotropic,
754   GL_EXT_texture_lod_bias,
755   GL_EXT_texture_object,
756   GL_EXT_texture_perturb_normal,
757   GL_EXT_texture_rectangle,
758   GL_EXT_vertex_array,
759   GL_EXT_vertex_shader,
760   GL_EXT_vertex_weighting,
761   GL_EXT_depth_bounds_test,
762   GL_EXT_texture_mirror_clamp,
763   GL_EXT_blend_equation_separate,
764   GL_EXT_pixel_buffer_object,
765   GL_EXT_texture_compression_dxt1,
766   GL_EXT_stencil_clear_tag,
767   GL_EXT_packed_depth_stencil,
768   GL_EXT_texture_sRGB,
769   GL_EXT_framebuffer_blit,
770   GL_EXT_framebuffer_multisample,
771   GL_EXT_timer_query,
772   GL_EXT_gpu_program_parameters,
773   GL_EXT_bindable_uniform,
774   GL_EXT_draw_buffers2,
775   GL_EXT_draw_instanced,
776   GL_EXT_framebuffer_sRGB,
777   GL_EXT_geometry_shader4,
778   GL_EXT_gpu_shader4,
779   GL_EXT_packed_float,
780   GL_EXT_texture_array,
781   GL_EXT_texture_buffer_object,
782   GL_EXT_texture_compression_latc,
783   GL_EXT_texture_compression_rgtc,
784   GL_EXT_texture_integer,
785   GL_EXT_texture_shared_exponent,
786   GL_EXT_transform_feedback,
787   GL_EXT_direct_state_access,
788   GL_EXT_vertex_array_bgra,
789   GL_EXT_texture_swizzle,
790   GL_EXT_provoking_vertex,
791   GL_EXT_texture_snorm,
792   GL_EXT_separate_shader_objects,
793   GL_EXT_shader_image_load_store,
794   GL_EXT_vertex_attrib_64bit,
795   GL_EXT_texture_sRGB_decode,
796   GL_FfdMaskSGIX,
797   GL_HP_convolution_border_modes,
798   GL_HP_image_transform,
799   GL_HP_occlusion_test,
800   GL_HP_texture_lighting,
801   GL_IBM_cull_vertex,
802   GL_IBM_multimode_draw_arrays,
803   GL_IBM_rasterpos_clip,
804   GL_IBM_texture_mirrored_repeat,
805   GL_IBM_vertex_array_lists,
806   GL_INGR_blend_func_separate,
807   GL_INGR_color_clamp,
808   GL_INGR_interlace_read,
809   GL_INGR_palette_buffer,
810   GL_INTEL_parallel_arrays,
811   GL_INTEL_texture_scissor,
812   GL_MESA_resize_buffers,
813   GL_MESA_window_pos,
814   GL_NV_blend_square,
815   GL_NV_copy_depth_to_color,
816   GL_NV_depth_clamp,
817   GL_NV_evaluators,
818   GL_NV_fence,
819   GL_NV_float_buffer,
820   GL_NV_fog_distance,
821   GL_NV_fragment_program,
822   GL_NV_half_float,
823   GL_NV_light_max_exponent,
824   GL_NV_multisample_filter_hint,
825   GL_NV_occlusion_query,
826   GL_NV_packed_depth_stencil,
827   GL_NV_pixel_data_range,
828   GL_NV_point_sprite,
829   GL_NV_primitive_restart,
830   GL_NV_register_combiners,
831   GL_NV_register_combiners2,
832   GL_NV_texgen_emboss,
833   GL_NV_texgen_reflection,
834   GL_NV_texture_compression_vtc,
835   GL_NV_texture_env_combine4,
836   GL_NV_texture_expand_normal,
837   GL_NV_texture_rectangle,
838   GL_NV_texture_shader,
839   GL_NV_texture_shader2,
840   GL_NV_texture_shader3,
841   GL_NV_vertex_array_range,
842   GL_NV_vertex_array_range2,
843   GL_NV_vertex_program,
844   GL_NV_vertex_program1_1,
845   GL_NV_vertex_program2,
846   GL_NV_fragment_program_option,
847   GL_NV_fragment_program2,
848   GL_NV_vertex_program2_option,
849   GL_NV_vertex_program3,
850   GL_NV_depth_buffer_float,
851   GL_NV_fragment_program4,
852   GL_NV_framebuffer_multisample_coverage,
853   GL_NV_geometry_program4,
854   GL_NV_gpu_program4,
855   GL_NV_parameter_buffer_object,
856   GL_NV_transform_feedback,
857   GL_NV_vertex_program4,
858   GL_NV_conditional_render,
859   GL_NV_present_video,
860   GL_NV_explicit_multisample,
861   GL_NV_transform_feedback2,
862   GL_NV_video_capture,
863   GL_NV_copy_image,
864   GL_NV_parameter_buffer_object2,
865   GL_NV_shader_buffer_load,
866   GL_NV_vertex_buffer_unified_memory,
867   GL_NV_gpu_program5,
868   GL_NV_gpu_shader5,
869   GL_NV_shader_buffer_store,
870   GL_NV_tessellation_program5,
871   GL_NV_vertex_attrib_integer_64bit,
872   GL_NV_multisample_coverage,
873   GL_NV_vdpau_interop,
874   GL_NV_texture_barrier,
875   GL_OML_interlace,
876   GL_OML_resample,
877   GL_OML_subsample,
878   GL_PGI_misc_hints,
879   GL_PGI_vertex_hints,
880   GL_REND_screen_coordinates,
881   GL_S3_s3tc,
882   GL_SGIS_detail_texture,
883   GL_SGIS_fog_function,
884   GL_SGIS_generate_mipmap,
885   GL_SGIS_multisample,
886   GL_SGIS_pixel_texture,
887   GL_SGIS_point_line_texgen,
888   GL_SGIS_point_parameters,
889   GL_SGIS_sharpen_texture,
890   GL_SGIS_texture4D,
891   GL_SGIS_texture_border_clamp,
892   GL_SGIS_texture_color_mask,
893   GL_SGIS_texture_edge_clamp,
894   GL_SGIS_texture_filter4,
895   GL_SGIS_texture_lod,
896   GL_SGIS_texture_select,
897   GL_SGIX_async,
898   GL_SGIX_async_histogram,
899   GL_SGIX_async_pixel,
900   GL_SGIX_blend_alpha_minmax,
901   GL_SGIX_calligraphic_fragment,
902   GL_SGIX_clipmap,
903   GL_SGIX_convolution_accuracy,
904   GL_SGIX_depth_pass_instrument,
905   GL_SGIX_depth_texture,
906   GL_SGIX_flush_raster,
907   GL_SGIX_fog_offset,
908   GL_SGIX_fog_scale,
909   GL_SGIX_fragment_lighting,
910   GL_SGIX_framezoom,
911   GL_SGIX_igloo_interface,
912   GL_SGIX_impact_pixel_texture,
913   GL_SGIX_instruments,
914   GL_SGIX_interlace,
915   GL_SGIX_ir_instrument1,
916   GL_SGIX_list_priority,
917   GL_SGIX_pixel_texture,
918   GL_SGIX_pixel_tiles,
919   GL_SGIX_polynomial_ffd,
920   GL_SGIX_reference_plane,
921   GL_SGIX_resample,
922   GL_SGIX_scalebias_hint,
923   GL_SGIX_shadow,
924   GL_SGIX_shadow_ambient,
925   GL_SGIX_sprite,
926   GL_SGIX_subsample,
927   GL_SGIX_tag_sample_buffer,
928   GL_SGIX_texture_add_env,
929   GL_SGIX_texture_coordinate_clamp,
930   GL_SGIX_texture_lod_bias,
931   GL_SGIX_texture_multi_buffer,
932   GL_SGIX_texture_scale_bias,
933   GL_SGIX_texture_select,
934   GL_SGIX_vertex_preclip,
935   GL_SGIX_ycrcb,
936   GL_SGIX_ycrcb_subsample,
937   GL_SGIX_ycrcba,
938   GL_SGI_color_matrix,
939   GL_SGI_color_table,
940   GL_SGI_depth_pass_instrument,
941   GL_SGI_texture_color_table,
942   GL_SUNX_constant_data,
943   GL_SUN_convolution_border_modes,
944   GL_SUN_global_alpha,
945   GL_SUN_mesh_array,
946   GL_SUN_slice_accum,
947   GL_SUN_triangle_list,
948   GL_SUN_vertex,
949
950   // WGL
951   GL_WIN_phong_shading,
952   GL_WIN_specular_fog,
953   WGL_3DFX_multisample,
954   WGL_ARB_buffer_region,
955   WGL_ARB_extensions_string,
956   WGL_ARB_make_current_read,
957   WGL_ARB_multisample,
958   WGL_ARB_pbuffer,
959   WGL_ARB_pixel_format,
960   WGL_ARB_pixel_format_float,
961   WGL_ARB_render_texture,
962   WGL_ARB_create_context,
963   WGL_ARB_create_context_profile,
964   WGL_ARB_framebuffer_sRGB,
965   WGL_ARB_create_context_robustness,
966   WGL_ATI_pixel_format_float,
967   WGL_AMD_gpu_association,
968   WGL_EXT_depth_float,
969   WGL_EXT_display_color_table,
970   WGL_EXT_extensions_string,
971   WGL_EXT_make_current_read,
972   WGL_EXT_multisample,
973   WGL_EXT_pbuffer,
974   WGL_EXT_pixel_format,
975   WGL_EXT_swap_control,
976   WGL_EXT_create_context_es2_profile,
977   WGL_I3D_digital_video_control,
978   WGL_I3D_gamma,
979   WGL_I3D_genlock,
980   WGL_I3D_image_buffer,
981   WGL_I3D_swap_frame_lock,
982   WGL_I3D_swap_frame_usage,
983   WGL_NV_float_buffer,
984   WGL_NV_render_depth_texture,
985   WGL_NV_render_texture_rectangle,
986   WGL_NV_vertex_array_range,
987   WGL_NV_present_video,
988   WGL_NV_video_output,
989   WGL_NV_swap_group,
990   WGL_NV_gpu_affinity,
991   WGL_NV_video_capture,
992   WGL_NV_copy_image,
993   WGL_NV_multisample_coverage,
994   WGL_NV_DX_interop,
995   WGL_OML_sync_control,
996   WGL_3DL_stereo_control,
997   WGL_ARB_context_flush_control,
998   WIN_draw_range_elements,
999   WIN_swap_hint,
1000
1001   // GLX
1002   GLX_VERSION_1_3,
1003   GLX_VERSION_1_4,
1004   GLX_ARB_multisample,
1005   GLX_ARB_fbconfig_float,
1006   GLX_ARB_get_proc_address,
1007   GLX_ARB_create_context,
1008   GLX_ARB_create_context_profile,
1009   GLX_ARB_vertex_buffer_object,
1010   GLX_ARB_framebuffer_sRGB,
1011   GLX_ARB_create_context_robustness,
1012   GLX_EXT_visual_info,
1013   GLX_EXT_visual_rating,
1014   GLX_EXT_import_context,
1015   GLX_EXT_fbconfig_packed_float,
1016   GLX_EXT_framebuffer_sRGB,
1017   GLX_EXT_texture_from_pixmap,
1018   GLX_EXT_swap_control,
1019   GLX_ARB_context_flush_control,
1020   GLX_EXT_create_context_es2_profile : Boolean;
1021
1022 const
1023   // GL_VERSION_1_1
1024   { AttribMask }
1025   GL_DEPTH_BUFFER_BIT = $00000100;
1026   GL_STENCIL_BUFFER_BIT = $00000400;
1027   GL_COLOR_BUFFER_BIT = $00004000;
1028   { Boolean }
1029   GL_TRUE = 1;
1030   GL_FALSE = 0;
1031   { BeginMode }
1032   GL_POINTS = $0000;
1033   GL_LINES = $0001;
1034   GL_LINE_LOOP = $0002;
1035   GL_LINE_STRIP = $0003;
1036   GL_TRIANGLES = $0004;
1037   GL_TRIANGLE_STRIP = $0005;
1038   GL_TRIANGLE_FAN = $0006;
1039   { AlphaFunction }
1040   GL_NEVER = $0200;
1041   GL_LESS = $0201;
1042   GL_EQUAL = $0202;
1043   GL_LEQUAL = $0203;
1044   GL_GREATER = $0204;
1045   GL_NOTEQUAL = $0205;
1046   GL_GEQUAL = $0206;
1047   GL_ALWAYS = $0207;
1048   { BlendingFactorDest }
1049   GL_ZERO = 0;
1050   GL_ONE = 1;
1051   GL_SRC_COLOR = $0300;
1052   GL_ONE_MINUS_SRC_COLOR = $0301;
1053   GL_SRC_ALPHA = $0302;
1054   GL_ONE_MINUS_SRC_ALPHA = $0303;
1055   GL_DST_ALPHA = $0304;
1056   GL_ONE_MINUS_DST_ALPHA = $0305;
1057   { BlendingFactorSrc }
1058   GL_DST_COLOR = $0306;
1059   GL_ONE_MINUS_DST_COLOR = $0307;
1060   GL_SRC_ALPHA_SATURATE = $0308;
1061   { DrawBufferMode }
1062   GL_NONE = 0;
1063   GL_FRONT_LEFT = $0400;
1064   GL_FRONT_RIGHT = $0401;
1065   GL_BACK_LEFT = $0402;
1066   GL_BACK_RIGHT = $0403;
1067   GL_FRONT = $0404;
1068   GL_BACK = $0405;
1069   GL_LEFT = $0406;
1070   GL_RIGHT = $0407;
1071   GL_FRONT_AND_BACK = $0408;
1072   { ErrorCode }
1073   GL_NO_ERROR = 0;
1074   GL_INVALID_ENUM = $0500;
1075   GL_INVALID_VALUE = $0501;
1076   GL_INVALID_OPERATION = $0502;
1077   GL_OUT_OF_MEMORY = $0505;
1078   { FrontFaceDirection }
1079   GL_CW = $0900;
1080   GL_CCW = $0901;
1081   { GetPName }
1082   GL_POINT_SIZE = $0B11;
1083   GL_POINT_SIZE_RANGE = $0B12;
1084   GL_POINT_SIZE_GRANULARITY = $0B13;
1085   GL_LINE_SMOOTH = $0B20;
1086   GL_LINE_WIDTH = $0B21;
1087   GL_LINE_WIDTH_RANGE = $0B22;
1088   GL_LINE_WIDTH_GRANULARITY = $0B23;
1089   GL_POLYGON_SMOOTH = $0B41;
1090   GL_CULL_FACE = $0B44;
1091   GL_CULL_FACE_MODE = $0B45;
1092   GL_FRONT_FACE = $0B46;
1093   GL_DEPTH_RANGE = $0B70;
1094   GL_DEPTH_TEST = $0B71;
1095   GL_DEPTH_WRITEMASK = $0B72;
1096   GL_DEPTH_CLEAR_VALUE = $0B73;
1097   GL_DEPTH_FUNC = $0B74;
1098   GL_STENCIL_TEST = $0B90;
1099   GL_STENCIL_CLEAR_VALUE = $0B91;
1100   GL_STENCIL_FUNC = $0B92;
1101   GL_STENCIL_VALUE_MASK = $0B93;
1102   GL_STENCIL_FAIL = $0B94;
1103   GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
1104   GL_STENCIL_PASS_DEPTH_PASS = $0B96;
1105   GL_STENCIL_REF = $0B97;
1106   GL_STENCIL_WRITEMASK = $0B98;
1107   GL_VIEWPORT = $0BA2;
1108   GL_DITHER = $0BD0;
1109   GL_BLEND_DST = $0BE0;
1110   GL_BLEND_SRC = $0BE1;
1111   GL_BLEND = $0BE2;
1112   GL_LOGIC_OP_MODE = $0BF0;
1113   GL_COLOR_LOGIC_OP = $0BF2;
1114   GL_DRAW_BUFFER = $0C01;
1115   GL_READ_BUFFER = $0C02;
1116   GL_SCISSOR_BOX = $0C10;
1117   GL_SCISSOR_TEST = $0C11;
1118   GL_COLOR_CLEAR_VALUE = $0C22;
1119   GL_COLOR_WRITEMASK = $0C23;
1120   GL_DOUBLEBUFFER = $0C32;
1121   GL_STEREO = $0C33;
1122   GL_LINE_SMOOTH_HINT = $0C52;
1123   GL_POLYGON_SMOOTH_HINT = $0C53;
1124   GL_UNPACK_SWAP_BYTES = $0CF0;
1125   GL_UNPACK_LSB_FIRST = $0CF1;
1126   GL_UNPACK_ROW_LENGTH = $0CF2;
1127   GL_UNPACK_SKIP_ROWS = $0CF3;
1128   GL_UNPACK_SKIP_PIXELS = $0CF4;
1129   GL_UNPACK_ALIGNMENT = $0CF5;
1130   GL_PACK_SWAP_BYTES = $0D00;
1131   GL_PACK_LSB_FIRST = $0D01;
1132   GL_PACK_ROW_LENGTH = $0D02;
1133   GL_PACK_SKIP_ROWS = $0D03;
1134   GL_PACK_SKIP_PIXELS = $0D04;
1135   GL_PACK_ALIGNMENT = $0D05;
1136   GL_MAX_TEXTURE_SIZE = $0D33;
1137   GL_MAX_VIEWPORT_DIMS = $0D3A;
1138   GL_SUBPIXEL_BITS = $0D50;
1139   GL_TEXTURE_1D = $0DE0;
1140   GL_TEXTURE_2D = $0DE1;
1141   GL_POLYGON_OFFSET_UNITS = $2A00;
1142   GL_POLYGON_OFFSET_POINT = $2A01;
1143   GL_POLYGON_OFFSET_LINE = $2A02;
1144   GL_POLYGON_OFFSET_FILL = $8037;
1145   GL_POLYGON_OFFSET_FACTOR = $8038;
1146   GL_TEXTURE_BINDING_1D = $8068;
1147   GL_TEXTURE_BINDING_2D = $8069;
1148   { GetTextureParameter }
1149   GL_TEXTURE_WIDTH = $1000;
1150   GL_TEXTURE_HEIGHT = $1001;
1151   GL_TEXTURE_INTERNAL_FORMAT = $1003;
1152   GL_TEXTURE_BORDER_COLOR = $1004;
1153   GL_TEXTURE_BORDER = $1005;
1154   GL_TEXTURE_RED_SIZE = $805C;
1155   GL_TEXTURE_GREEN_SIZE = $805D;
1156   GL_TEXTURE_BLUE_SIZE = $805E;
1157   GL_TEXTURE_ALPHA_SIZE = $805F;
1158   { HintMode }
1159   GL_DONT_CARE = $1100;
1160   GL_FASTEST = $1101;
1161   GL_NICEST = $1102;
1162   { DataType }
1163   GL_BYTE = $1400;
1164   GL_UNSIGNED_BYTE = $1401;
1165   GL_SHORT = $1402;
1166   GL_UNSIGNED_SHORT = $1403;
1167   GL_INT = $1404;
1168   GL_UNSIGNED_INT = $1405;
1169   GL_FLOAT = $1406;
1170   GL_DOUBLE = $140A;
1171   { LogicOp }
1172   GL_CLEAR = $1500;
1173   GL_AND = $1501;
1174   GL_AND_REVERSE = $1502;
1175   GL_COPY = $1503;
1176   GL_AND_INVERTED = $1504;
1177   GL_NOOP = $1505;
1178   GL_XOR = $1506;
1179   GL_OR = $1507;
1180   GL_NOR = $1508;
1181   GL_EQUIV = $1509;
1182   GL_INVERT = $150A;
1183   GL_OR_REVERSE = $150B;
1184   GL_COPY_INVERTED = $150C;
1185   GL_OR_INVERTED = $150D;
1186   GL_NAND = $150E;
1187   GL_SET = $150F;
1188   { MatrixMode (for gl3.h, FBO attachment type) }
1189   GL_TEXTURE = $1702;
1190   { PixelCopyType }
1191   GL_COLOR = $1800;
1192   GL_DEPTH = $1801;
1193   GL_STENCIL = $1802;
1194   { PixelFormat }
1195   GL_STENCIL_INDEX = $1901;
1196   GL_DEPTH_COMPONENT = $1902;
1197   GL_RED = $1903;
1198   GL_GREEN = $1904;
1199   GL_BLUE = $1905;
1200   GL_ALPHA = $1906;
1201   GL_RGB = $1907;
1202   GL_RGBA = $1908;
1203   { PolygonMode }
1204   GL_POINT = $1B00;
1205   GL_LINE = $1B01;
1206   GL_FILL = $1B02;
1207   { StencilOp }
1208   GL_KEEP = $1E00;
1209   GL_REPLACE = $1E01;
1210   GL_INCR = $1E02;
1211   GL_DECR = $1E03;
1212   { StringName }
1213   GL_VENDOR = $1F00;
1214   GL_RENDERER = $1F01;
1215   GL_VERSION = $1F02;
1216   GL_EXTENSIONS = $1F03;
1217   { TextureMagFilter }
1218   GL_NEAREST = $2600;
1219   GL_LINEAR = $2601;
1220   { TextureMinFilter }
1221   GL_NEAREST_MIPMAP_NEAREST = $2700;
1222   GL_LINEAR_MIPMAP_NEAREST = $2701;
1223   GL_NEAREST_MIPMAP_LINEAR = $2702;
1224   GL_LINEAR_MIPMAP_LINEAR = $2703;
1225   { TextureParameterName }
1226   GL_TEXTURE_MAG_FILTER = $2800;
1227   GL_TEXTURE_MIN_FILTER = $2801;
1228   GL_TEXTURE_WRAP_S = $2802;
1229   GL_TEXTURE_WRAP_T = $2803;
1230   { TextureTarget }
1231   GL_PROXY_TEXTURE_1D = $8063;
1232   GL_PROXY_TEXTURE_2D = $8064;
1233   { TextureWrapMode }
1234   GL_REPEAT = $2901;
1235   { PixelInternalFormat }
1236   GL_R3_G3_B2 = $2A10;
1237   GL_RGB4 = $804F;
1238   GL_RGB5 = $8050;
1239   GL_RGB8 = $8051;
1240   GL_RGB10 = $8052;
1241   GL_RGB12 = $8053;
1242   GL_RGB16 = $8054;
1243   GL_RGBA2 = $8055;
1244   GL_RGBA4 = $8056;
1245   GL_RGB5_A1 = $8057;
1246   GL_RGBA8 = $8058;
1247   GL_RGB10_A2 = $8059;
1248   GL_RGBA12 = $805A;
1249   GL_RGBA16 = $805B;
1250 {$ifdef DGL_DEPRECATED}
1251   GL_ACCUM = $0100;
1252   GL_LOAD = $0101;
1253   GL_RETURN = $0102;
1254   GL_MULT = $0103;
1255   GL_ADD = $0104;
1256   GL_CURRENT_BIT = $00000001;
1257   GL_POINT_BIT = $00000002;
1258   GL_LINE_BIT = $00000004;
1259   GL_POLYGON_BIT = $00000008;
1260   GL_POLYGON_STIPPLE_BIT = $00000010;
1261   GL_PIXEL_MODE_BIT = $00000020;
1262   GL_LIGHTING_BIT = $00000040;
1263   GL_FOG_BIT = $00000080;
1264   GL_ACCUM_BUFFER_BIT = $00000200;
1265   GL_VIEWPORT_BIT = $00000800;
1266   GL_TRANSFORM_BIT = $00001000;
1267   GL_ENABLE_BIT = $00002000;
1268   GL_HINT_BIT = $00008000;
1269   GL_EVAL_BIT = $00010000;
1270   GL_LIST_BIT = $00020000;
1271   GL_TEXTURE_BIT = $00040000;
1272   GL_SCISSOR_BIT = $00080000;
1273   GL_ALL_ATTRIB_BITS = $000FFFFF;
1274   GL_QUADS = $0007;
1275   GL_QUAD_STRIP = $0008;
1276   GL_POLYGON = $0009;
1277   GL_CLIP_PLANE0 = $3000;
1278   GL_CLIP_PLANE1 = $3001;
1279   GL_CLIP_PLANE2 = $3002;
1280   GL_CLIP_PLANE3 = $3003;
1281   GL_CLIP_PLANE4 = $3004;
1282   GL_CLIP_PLANE5 = $3005;
1283   GL_2_BYTES = $1407;
1284   GL_3_BYTES = $1408;
1285   GL_4_BYTES = $1409;
1286   GL_AUX0 = $0409;
1287   GL_AUX1 = $040A;
1288   GL_AUX2 = $040B;
1289   GL_AUX3 = $040C;
1290   GL_STACK_OVERFLOW = $0503;
1291   GL_STACK_UNDERFLOW = $0504;
1292   GL_2D = $0600;
1293   GL_3D = $0601;
1294   GL_3D_COLOR = $0602;
1295   GL_3D_COLOR_TEXTURE = $0603;
1296   GL_4D_COLOR_TEXTURE = $0604;
1297   GL_PASS_THROUGH_TOKEN = $0700;
1298   GL_POINT_TOKEN = $0701;
1299   GL_LINE_TOKEN = $0702;
1300   GL_POLYGON_TOKEN = $0703;
1301   GL_BITMAP_TOKEN = $0704;
1302   GL_DRAW_PIXEL_TOKEN = $0705;
1303   GL_COPY_PIXEL_TOKEN = $0706;
1304   GL_LINE_RESET_TOKEN = $0707;
1305   GL_EXP = $0800;
1306   GL_EXP2 = $0801;
1307   GL_COEFF = $0A00;
1308   GL_ORDER = $0A01;
1309   GL_DOMAIN = $0A02;
1310   GL_CURRENT_COLOR = $0B00;
1311   GL_CURRENT_INDEX = $0B01;
1312   GL_CURRENT_NORMAL = $0B02;
1313   GL_CURRENT_TEXTURE_COORDS = $0B03;
1314   GL_CURRENT_RASTER_COLOR = $0B04;
1315   GL_CURRENT_RASTER_INDEX = $0B05;
1316   GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
1317   GL_CURRENT_RASTER_POSITION = $0B07;
1318   GL_CURRENT_RASTER_POSITION_VALID = $0B08;
1319   GL_CURRENT_RASTER_DISTANCE = $0B09;
1320   GL_POINT_SMOOTH = $0B10;
1321   GL_LINE_STIPPLE = $0B24;
1322   GL_LINE_STIPPLE_PATTERN = $0B25;
1323   GL_LINE_STIPPLE_REPEAT = $0B26;
1324   GL_LIST_MODE = $0B30;
1325   GL_MAX_LIST_NESTING = $0B31;
1326   GL_LIST_BASE = $0B32;
1327   GL_LIST_INDEX = $0B33;
1328   GL_POLYGON_MODE = $0B40;
1329   GL_POLYGON_STIPPLE = $0B42;
1330   GL_EDGE_FLAG = $0B43;
1331   GL_LIGHTING = $0B50;
1332   GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
1333   GL_LIGHT_MODEL_TWO_SIDE = $0B52;
1334   GL_LIGHT_MODEL_AMBIENT = $0B53;
1335   GL_SHADE_MODEL = $0B54;
1336   GL_COLOR_MATERIAL_FACE = $0B55;
1337   GL_COLOR_MATERIAL_PARAMETER = $0B56;
1338   GL_COLOR_MATERIAL = $0B57;
1339   GL_FOG = $0B60;
1340   GL_FOG_INDEX = $0B61;
1341   GL_FOG_DENSITY = $0B62;
1342   GL_FOG_START = $0B63;
1343   GL_FOG_END = $0B64;
1344   GL_FOG_MODE = $0B65;
1345   GL_FOG_COLOR = $0B66;
1346   GL_ACCUM_CLEAR_VALUE = $0B80;
1347   GL_MATRIX_MODE = $0BA0;
1348   GL_NORMALIZE = $0BA1;
1349   GL_MODELVIEW_STACK_DEPTH = $0BA3;
1350   GL_PROJECTION_STACK_DEPTH = $0BA4;
1351   GL_TEXTURE_STACK_DEPTH = $0BA5;
1352   GL_MODELVIEW_MATRIX = $0BA6;
1353   GL_PROJECTION_MATRIX = $0BA7;
1354   GL_TEXTURE_MATRIX = $0BA8;
1355   GL_ATTRIB_STACK_DEPTH = $0BB0;
1356   GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
1357   GL_ALPHA_TEST = $0BC0;
1358   GL_ALPHA_TEST_FUNC = $0BC1;
1359   GL_ALPHA_TEST_REF = $0BC2;
1360   GL_INDEX_LOGIC_OP = $0BF1;
1361   GL_AUX_BUFFERS = $0C00;
1362   GL_INDEX_CLEAR_VALUE = $0C20;
1363   GL_INDEX_WRITEMASK = $0C21;
1364   GL_INDEX_MODE = $0C30;
1365   GL_RGBA_MODE = $0C31;
1366   GL_RENDER_MODE = $0C40;
1367   GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
1368   GL_POINT_SMOOTH_HINT = $0C51;
1369   GL_FOG_HINT = $0C54;
1370   GL_TEXTURE_GEN_S = $0C60;
1371   GL_TEXTURE_GEN_T = $0C61;
1372   GL_TEXTURE_GEN_R = $0C62;
1373   GL_TEXTURE_GEN_Q = $0C63;
1374   GL_PIXEL_MAP_I_TO_I = $0C70;
1375   GL_PIXEL_MAP_S_TO_S = $0C71;
1376   GL_PIXEL_MAP_I_TO_R = $0C72;
1377   GL_PIXEL_MAP_I_TO_G = $0C73;
1378   GL_PIXEL_MAP_I_TO_B = $0C74;
1379   GL_PIXEL_MAP_I_TO_A = $0C75;
1380   GL_PIXEL_MAP_R_TO_R = $0C76;
1381   GL_PIXEL_MAP_G_TO_G = $0C77;
1382   GL_PIXEL_MAP_B_TO_B = $0C78;
1383   GL_PIXEL_MAP_A_TO_A = $0C79;
1384   GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
1385   GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
1386   GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
1387   GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
1388   GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
1389   GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
1390   GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
1391   GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
1392   GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
1393   GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
1394   GL_MAP_COLOR = $0D10;
1395   GL_MAP_STENCIL = $0D11;
1396   GL_INDEX_SHIFT = $0D12;
1397   GL_INDEX_OFFSET = $0D13;
1398   GL_RED_SCALE = $0D14;
1399   GL_RED_BIAS = $0D15;
1400   GL_ZOOM_X = $0D16;
1401   GL_ZOOM_Y = $0D17;
1402   GL_GREEN_SCALE = $0D18;
1403   GL_GREEN_BIAS = $0D19;
1404   GL_BLUE_SCALE = $0D1A;
1405   GL_BLUE_BIAS = $0D1B;
1406   GL_ALPHA_SCALE = $0D1C;
1407   GL_ALPHA_BIAS = $0D1D;
1408   GL_DEPTH_SCALE = $0D1E;
1409   GL_DEPTH_BIAS = $0D1F;
1410   GL_MAX_EVAL_ORDER = $0D30;
1411   GL_MAX_LIGHTS = $0D31;
1412   GL_MAX_CLIP_PLANES = $0D32;
1413   GL_MAX_PIXEL_MAP_TABLE = $0D34;
1414   GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
1415   GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
1416   GL_MAX_NAME_STACK_DEPTH = $0D37;
1417   GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
1418   GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
1419   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
1420   GL_INDEX_BITS = $0D51;
1421   GL_RED_BITS = $0D52;
1422   GL_GREEN_BITS = $0D53;
1423   GL_BLUE_BITS = $0D54;
1424   GL_ALPHA_BITS = $0D55;
1425   GL_DEPTH_BITS = $0D56;
1426   GL_STENCIL_BITS = $0D57;
1427   GL_ACCUM_RED_BITS = $0D58;
1428   GL_ACCUM_GREEN_BITS = $0D59;
1429   GL_ACCUM_BLUE_BITS = $0D5A;
1430   GL_ACCUM_ALPHA_BITS = $0D5B;
1431   GL_NAME_STACK_DEPTH = $0D70;
1432   GL_AUTO_NORMAL = $0D80;
1433   GL_MAP1_COLOR_4 = $0D90;
1434   GL_MAP1_INDEX = $0D91;
1435   GL_MAP1_NORMAL = $0D92;
1436   GL_MAP1_TEXTURE_COORD_1 = $0D93;
1437   GL_MAP1_TEXTURE_COORD_2 = $0D94;
1438   GL_MAP1_TEXTURE_COORD_3 = $0D95;
1439   GL_MAP1_TEXTURE_COORD_4 = $0D96;
1440   GL_MAP1_VERTEX_3 = $0D97;
1441   GL_MAP1_VERTEX_4 = $0D98;
1442   GL_MAP2_COLOR_4 = $0DB0;
1443   GL_MAP2_INDEX = $0DB1;
1444   GL_MAP2_NORMAL = $0DB2;
1445   GL_MAP2_TEXTURE_COORD_1 = $0DB3;
1446   GL_MAP2_TEXTURE_COORD_2 = $0DB4;
1447   GL_MAP2_TEXTURE_COORD_3 = $0DB5;
1448   GL_MAP2_TEXTURE_COORD_4 = $0DB6;
1449   GL_MAP2_VERTEX_3 = $0DB7;
1450   GL_MAP2_VERTEX_4 = $0DB8;
1451   GL_MAP1_GRID_DOMAIN = $0DD0;
1452   GL_MAP1_GRID_SEGMENTS = $0DD1;
1453   GL_MAP2_GRID_DOMAIN = $0DD2;
1454   GL_MAP2_GRID_SEGMENTS = $0DD3;
1455   GL_FEEDBACK_BUFFER_POINTER = $0DF0;
1456   GL_FEEDBACK_BUFFER_SIZE = $0DF1;
1457   GL_FEEDBACK_BUFFER_TYPE = $0DF2;
1458   GL_SELECTION_BUFFER_POINTER = $0DF3;
1459   GL_SELECTION_BUFFER_SIZE = $0DF4;
1460   GL_LIGHT0 = $4000;
1461   GL_LIGHT1 = $4001;
1462   GL_LIGHT2 = $4002;
1463   GL_LIGHT3 = $4003;
1464   GL_LIGHT4 = $4004;
1465   GL_LIGHT5 = $4005;
1466   GL_LIGHT6 = $4006;
1467   GL_LIGHT7 = $4007;
1468   GL_AMBIENT = $1200;
1469   GL_DIFFUSE = $1201;
1470   GL_SPECULAR = $1202;
1471   GL_POSITION = $1203;
1472   GL_SPOT_DIRECTION = $1204;
1473   GL_SPOT_EXPONENT = $1205;
1474   GL_SPOT_CUTOFF = $1206;
1475   GL_CONSTANT_ATTENUATION = $1207;
1476   GL_LINEAR_ATTENUATION = $1208;
1477   GL_QUADRATIC_ATTENUATION = $1209;
1478   GL_COMPILE = $1300;
1479   GL_COMPILE_AND_EXECUTE = $1301;
1480   GL_EMISSION = $1600;
1481   GL_SHININESS = $1601;
1482   GL_AMBIENT_AND_DIFFUSE = $1602;
1483   GL_COLOR_INDEXES = $1603;
1484   GL_MODELVIEW = $1700;
1485   GL_PROJECTION = $1701;
1486   GL_COLOR_INDEX = $1900;
1487   GL_LUMINANCE = $1909;
1488   GL_LUMINANCE_ALPHA = $190A;
1489   GL_BITMAP = $1A00;
1490   GL_RENDER = $1C00;
1491   GL_FEEDBACK = $1C01;
1492   GL_SELECT = $1C02;
1493   GL_FLAT = $1D00;
1494   GL_SMOOTH = $1D01;
1495   GL_S = $2000;
1496   GL_T = $2001;
1497   GL_R = $2002;
1498   GL_Q = $2003;
1499   GL_MODULATE = $2100;
1500   GL_DECAL = $2101;
1501   GL_TEXTURE_ENV_MODE = $2200;
1502   GL_TEXTURE_ENV_COLOR = $2201;
1503   GL_TEXTURE_ENV = $2300;
1504   GL_EYE_LINEAR = $2400;
1505   GL_OBJECT_LINEAR = $2401;
1506   GL_SPHERE_MAP = $2402;
1507   GL_TEXTURE_GEN_MODE = $2500;
1508   GL_OBJECT_PLANE = $2501;
1509   GL_EYE_PLANE = $2502;
1510   GL_CLAMP = $2900;
1511   GL_CLIENT_PIXEL_STORE_BIT = $00000001;
1512   GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
1513   GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
1514   GL_ALPHA4 = $803B;
1515   GL_ALPHA8 = $803C;
1516   GL_ALPHA12 = $803D;
1517   GL_ALPHA16 = $803E;
1518   GL_LUMINANCE4 = $803F;
1519   GL_LUMINANCE8 = $8040;
1520   GL_LUMINANCE12 = $8041;
1521   GL_LUMINANCE16 = $8042;
1522   GL_LUMINANCE4_ALPHA4 = $8043;
1523   GL_LUMINANCE6_ALPHA2 = $8044;
1524   GL_LUMINANCE8_ALPHA8 = $8045;
1525   GL_LUMINANCE12_ALPHA4 = $8046;
1526   GL_LUMINANCE12_ALPHA12 = $8047;
1527   GL_LUMINANCE16_ALPHA16 = $8048;
1528   GL_INTENSITY = $8049;
1529   GL_INTENSITY4 = $804A;
1530   GL_INTENSITY8 = $804B;
1531   GL_INTENSITY12 = $804C;
1532   GL_INTENSITY16 = $804D;
1533   GL_TEXTURE_LUMINANCE_SIZE = $8060;
1534   GL_TEXTURE_INTENSITY_SIZE = $8061;
1535   GL_TEXTURE_PRIORITY = $8066;
1536   GL_TEXTURE_RESIDENT = $8067;
1537   GL_VERTEX_ARRAY = $8074;
1538   GL_NORMAL_ARRAY = $8075;
1539   GL_COLOR_ARRAY = $8076;
1540   GL_INDEX_ARRAY = $8077;
1541   GL_TEXTURE_COORD_ARRAY = $8078;
1542   GL_EDGE_FLAG_ARRAY = $8079;
1543   GL_VERTEX_ARRAY_SIZE = $807A;
1544   GL_VERTEX_ARRAY_TYPE = $807B;
1545   GL_VERTEX_ARRAY_STRIDE = $807C;
1546   GL_NORMAL_ARRAY_TYPE = $807E;
1547   GL_NORMAL_ARRAY_STRIDE = $807F;
1548   GL_COLOR_ARRAY_SIZE = $8081;
1549   GL_COLOR_ARRAY_TYPE = $8082;
1550   GL_COLOR_ARRAY_STRIDE = $8083;
1551   GL_INDEX_ARRAY_TYPE = $8085;
1552   GL_INDEX_ARRAY_STRIDE = $8086;
1553   GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
1554   GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
1555   GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
1556   GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
1557   GL_VERTEX_ARRAY_POINTER = $808E;
1558   GL_NORMAL_ARRAY_POINTER = $808F;
1559   GL_COLOR_ARRAY_POINTER = $8090;
1560   GL_INDEX_ARRAY_POINTER = $8091;
1561   GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
1562   GL_EDGE_FLAG_ARRAY_POINTER = $8093;
1563   GL_V2F = $2A20;
1564   GL_V3F = $2A21;
1565   GL_C4UB_V2F = $2A22;
1566   GL_C4UB_V3F = $2A23;
1567   GL_C3F_V3F = $2A24;
1568   GL_N3F_V3F = $2A25;
1569   GL_C4F_N3F_V3F = $2A26;
1570   GL_T2F_V3F = $2A27;
1571   GL_T4F_V4F = $2A28;
1572   GL_T2F_C4UB_V3F = $2A29;
1573   GL_T2F_C3F_V3F = $2A2A;
1574   GL_T2F_N3F_V3F = $2A2B;
1575   GL_T2F_C4F_N3F_V3F = $2A2C;
1576   GL_T4F_C4F_N3F_V4F = $2A2D;
1577   GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1578   GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1579   GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1580   GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1581   GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1582   GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1583   GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1584   GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1585   GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
1586   GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
1587 {$endif}
1588
1589   // GL_VERSION_1_2
1590   GL_UNSIGNED_BYTE_3_3_2 = $8032;
1591   GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
1592   GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
1593   GL_UNSIGNED_INT_8_8_8_8 = $8035;
1594   GL_UNSIGNED_INT_10_10_10_2 = $8036;
1595   GL_TEXTURE_BINDING_3D = $806A;
1596   GL_PACK_SKIP_IMAGES = $806B;
1597   GL_PACK_IMAGE_HEIGHT = $806C;
1598   GL_UNPACK_SKIP_IMAGES = $806D;
1599   GL_UNPACK_IMAGE_HEIGHT = $806E;
1600   GL_TEXTURE_3D = $806F;
1601   GL_PROXY_TEXTURE_3D = $8070;
1602   GL_TEXTURE_DEPTH = $8071;
1603   GL_TEXTURE_WRAP_R = $8072;
1604   GL_MAX_3D_TEXTURE_SIZE = $8073;
1605   GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
1606   GL_UNSIGNED_SHORT_5_6_5 = $8363;
1607   GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
1608   GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
1609   GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
1610   GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
1611   GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
1612   GL_BGR = $80E0;
1613   GL_BGRA = $80E1;
1614   GL_MAX_ELEMENTS_VERTICES = $80E8;
1615   GL_MAX_ELEMENTS_INDICES = $80E9;
1616   GL_CLAMP_TO_EDGE = $812F;
1617   GL_TEXTURE_MIN_LOD = $813A;
1618   GL_TEXTURE_MAX_LOD = $813B;
1619   GL_TEXTURE_BASE_LEVEL = $813C;
1620   GL_TEXTURE_MAX_LEVEL = $813D;
1621   GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
1622   GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
1623   GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
1624   GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
1625   GL_ALIASED_LINE_WIDTH_RANGE = $846E;
1626 {$ifdef DGL_DEPRECATED}
1627   GL_RESCALE_NORMAL = $803A;
1628   GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
1629   GL_SINGLE_COLOR = $81F9;
1630   GL_SEPARATE_SPECULAR_COLOR = $81FA;
1631   GL_ALIASED_POINT_SIZE_RANGE = $846D;
1632 {$endif}
1633
1634   // GL_VERSION_1_3
1635   GL_TEXTURE0 = $84C0;
1636   GL_TEXTURE1 = $84C1;
1637   GL_TEXTURE2 = $84C2;
1638   GL_TEXTURE3 = $84C3;
1639   GL_TEXTURE4 = $84C4;
1640   GL_TEXTURE5 = $84C5;
1641   GL_TEXTURE6 = $84C6;
1642   GL_TEXTURE7 = $84C7;
1643   GL_TEXTURE8 = $84C8;
1644   GL_TEXTURE9 = $84C9;
1645   GL_TEXTURE10 = $84CA;
1646   GL_TEXTURE11 = $84CB;
1647   GL_TEXTURE12 = $84CC;
1648   GL_TEXTURE13 = $84CD;
1649   GL_TEXTURE14 = $84CE;
1650   GL_TEXTURE15 = $84CF;
1651   GL_TEXTURE16 = $84D0;
1652   GL_TEXTURE17 = $84D1;
1653   GL_TEXTURE18 = $84D2;
1654   GL_TEXTURE19 = $84D3;
1655   GL_TEXTURE20 = $84D4;
1656   GL_TEXTURE21 = $84D5;
1657   GL_TEXTURE22 = $84D6;
1658   GL_TEXTURE23 = $84D7;
1659   GL_TEXTURE24 = $84D8;
1660   GL_TEXTURE25 = $84D9;
1661   GL_TEXTURE26 = $84DA;
1662   GL_TEXTURE27 = $84DB;
1663   GL_TEXTURE28 = $84DC;
1664   GL_TEXTURE29 = $84DD;
1665   GL_TEXTURE30 = $84DE;
1666   GL_TEXTURE31 = $84DF;
1667   GL_ACTIVE_TEXTURE = $84E0;
1668   GL_MULTISAMPLE = $809D;
1669   GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
1670   GL_SAMPLE_ALPHA_TO_ONE = $809F;
1671   GL_SAMPLE_COVERAGE = $80A0;
1672   GL_SAMPLE_BUFFERS = $80A8;
1673   GL_SAMPLES = $80A9;
1674   GL_SAMPLE_COVERAGE_VALUE = $80AA;
1675   GL_SAMPLE_COVERAGE_INVERT = $80AB;
1676   GL_TEXTURE_CUBE_MAP = $8513;
1677   GL_TEXTURE_BINDING_CUBE_MAP = $8514;
1678   GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
1679   GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
1680   GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
1681   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
1682   GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
1683   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
1684   GL_PROXY_TEXTURE_CUBE_MAP = $851B;
1685   GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
1686   GL_COMPRESSED_RGB = $84ED;
1687   GL_COMPRESSED_RGBA = $84EE;
1688   GL_TEXTURE_COMPRESSION_HINT = $84EF;
1689   GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
1690   GL_TEXTURE_COMPRESSED = $86A1;
1691   GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
1692   GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
1693   GL_CLAMP_TO_BORDER = $812D;
1694 {$ifdef DGL_DEPRECATED}
1695   GL_CLIENT_ACTIVE_TEXTURE = $84E1;
1696   GL_MAX_TEXTURE_UNITS = $84E2;
1697   GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
1698   GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
1699   GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
1700   GL_TRANSPOSE_COLOR_MATRIX = $84E6;
1701   GL_MULTISAMPLE_BIT = $20000000;
1702   GL_NORMAL_MAP = $8511;
1703   GL_REFLECTION_MAP = $8512;
1704   GL_COMPRESSED_ALPHA = $84E9;
1705   GL_COMPRESSED_LUMINANCE = $84EA;
1706   GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
1707   GL_COMPRESSED_INTENSITY = $84EC;
1708   GL_COMBINE = $8570;
1709   GL_COMBINE_RGB = $8571;
1710   GL_COMBINE_ALPHA = $8572;
1711   GL_SOURCE0_RGB = $8580;
1712   GL_SOURCE1_RGB = $8581;
1713   GL_SOURCE2_RGB = $8582;
1714   GL_SOURCE0_ALPHA = $8588;
1715   GL_SOURCE1_ALPHA = $8589;
1716   GL_SOURCE2_ALPHA = $858A;
1717   GL_OPERAND0_RGB = $8590;
1718   GL_OPERAND1_RGB = $8591;
1719   GL_OPERAND2_RGB = $8592;
1720   GL_OPERAND0_ALPHA = $8598;
1721   GL_OPERAND1_ALPHA = $8599;
1722   GL_OPERAND2_ALPHA = $859A;
1723   GL_RGB_SCALE = $8573;
1724   GL_ADD_SIGNED = $8574;
1725   GL_INTERPOLATE = $8575;
1726   GL_SUBTRACT = $84E7;
1727   GL_CONSTANT = $8576;
1728   GL_PRIMARY_COLOR = $8577;
1729   GL_PREVIOUS = $8578;
1730   GL_DOT3_RGB = $86AE;
1731   GL_DOT3_RGBA = $86AF;
1732 {$endif}
1733
1734   // GL_VERSION_1_4
1735   GL_BLEND_DST_RGB = $80C8;
1736   GL_BLEND_SRC_RGB = $80C9;
1737   GL_BLEND_DST_ALPHA = $80CA;
1738   GL_BLEND_SRC_ALPHA = $80CB;
1739   GL_POINT_FADE_THRESHOLD_SIZE = $8128;
1740   GL_DEPTH_COMPONENT16 = $81A5;
1741   GL_DEPTH_COMPONENT24 = $81A6;
1742   GL_DEPTH_COMPONENT32 = $81A7;
1743   GL_MIRRORED_REPEAT = $8370;
1744   GL_MAX_TEXTURE_LOD_BIAS = $84FD;
1745   GL_TEXTURE_LOD_BIAS = $8501;
1746   GL_INCR_WRAP = $8507;
1747   GL_DECR_WRAP = $8508;
1748   GL_TEXTURE_DEPTH_SIZE = $884A;
1749   GL_TEXTURE_COMPARE_MODE = $884C;
1750   GL_TEXTURE_COMPARE_FUNC = $884D;
1751 {$ifdef DGL_DEPRECATED}
1752   GL_POINT_SIZE_MIN = $8126;
1753   GL_POINT_SIZE_MAX = $8127;
1754   GL_POINT_DISTANCE_ATTENUATION = $8129;
1755   GL_GENERATE_MIPMAP = $8191;
1756   GL_GENERATE_MIPMAP_HINT = $8192;
1757   GL_FOG_COORDINATE_SOURCE = $8450;
1758   GL_FOG_COORDINATE = $8451;
1759   GL_FRAGMENT_DEPTH = $8452;
1760   GL_CURRENT_FOG_COORDINATE = $8453;
1761   GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
1762   GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
1763   GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
1764   GL_FOG_COORDINATE_ARRAY = $8457;
1765   GL_COLOR_SUM = $8458;
1766   GL_CURRENT_SECONDARY_COLOR = $8459;
1767   GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
1768   GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
1769   GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
1770   GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
1771   GL_SECONDARY_COLOR_ARRAY = $845E;
1772   GL_TEXTURE_FILTER_CONTROL = $8500;
1773   GL_DEPTH_TEXTURE_MODE = $884B;
1774   GL_COMPARE_R_TO_TEXTURE = $884E;
1775 {$endif}
1776
1777   // GL_VERSION_1_5
1778   GL_BUFFER_SIZE = $8764;
1779   GL_BUFFER_USAGE = $8765;
1780   GL_QUERY_COUNTER_BITS = $8864;
1781   GL_CURRENT_QUERY = $8865;
1782   GL_QUERY_RESULT = $8866;
1783   GL_QUERY_RESULT_AVAILABLE = $8867;
1784   GL_ARRAY_BUFFER = $8892;
1785   GL_ELEMENT_ARRAY_BUFFER = $8893;
1786   GL_ARRAY_BUFFER_BINDING = $8894;
1787   GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
1788   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
1789   GL_READ_ONLY = $88B8;
1790   GL_WRITE_ONLY = $88B9;
1791   GL_READ_WRITE = $88BA;
1792   GL_BUFFER_ACCESS = $88BB;
1793   GL_BUFFER_MAPPED = $88BC;
1794   GL_BUFFER_MAP_POINTER = $88BD;
1795   GL_STREAM_DRAW = $88E0;
1796   GL_STREAM_READ = $88E1;
1797   GL_STREAM_COPY = $88E2;
1798   GL_STATIC_DRAW = $88E4;
1799   GL_STATIC_READ = $88E5;
1800   GL_STATIC_COPY = $88E6;
1801   GL_DYNAMIC_DRAW = $88E8;
1802   GL_DYNAMIC_READ = $88E9;
1803   GL_DYNAMIC_COPY = $88EA;
1804   GL_SAMPLES_PASSED = $8914;
1805 {$ifdef DGL_DEPRECATED}
1806   GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
1807   GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
1808   GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
1809   GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
1810   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
1811   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
1812   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
1813   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
1814   GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
1815   GL_FOG_COORD_SRC = $8450;
1816   GL_FOG_COORD = $8451;
1817   GL_CURRENT_FOG_COORD = $8453;
1818   GL_FOG_COORD_ARRAY_TYPE = $8454;
1819   GL_FOG_COORD_ARRAY_STRIDE = $8455;
1820   GL_FOG_COORD_ARRAY_POINTER = $8456;
1821   GL_FOG_COORD_ARRAY = $8457;
1822   GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
1823   GL_SRC0_RGB = $8580;
1824   GL_SRC1_RGB = $8581;
1825   GL_SRC2_RGB = $8582;
1826   GL_SRC0_ALPHA = $8588;
1827   GL_SRC1_ALPHA = $8589;
1828   GL_SRC2_ALPHA = $858A;
1829 {$endif}
1830
1831   // GL_VERSION_2_0
1832   GL_BLEND_EQUATION_RGB = $8009;
1833   GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
1834   GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
1835   GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
1836   GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
1837   GL_CURRENT_VERTEX_ATTRIB = $8626;
1838   GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
1839   GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
1840   GL_STENCIL_BACK_FUNC = $8800;
1841   GL_STENCIL_BACK_FAIL = $8801;
1842   GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
1843   GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
1844   GL_MAX_DRAW_BUFFERS = $8824;
1845   GL_DRAW_BUFFER0 = $8825;
1846   GL_DRAW_BUFFER1 = $8826;
1847   GL_DRAW_BUFFER2 = $8827;
1848   GL_DRAW_BUFFER3 = $8828;
1849   GL_DRAW_BUFFER4 = $8829;
1850   GL_DRAW_BUFFER5 = $882A;
1851   GL_DRAW_BUFFER6 = $882B;
1852   GL_DRAW_BUFFER7 = $882C;
1853   GL_DRAW_BUFFER8 = $882D;
1854   GL_DRAW_BUFFER9 = $882E;
1855   GL_DRAW_BUFFER10 = $882F;
1856   GL_DRAW_BUFFER11 = $8830;
1857   GL_DRAW_BUFFER12 = $8831;
1858   GL_DRAW_BUFFER13 = $8832;
1859   GL_DRAW_BUFFER14 = $8833;
1860   GL_DRAW_BUFFER15 = $8834;
1861   GL_BLEND_EQUATION_ALPHA = $883D;
1862   GL_MAX_VERTEX_ATTRIBS = $8869;
1863   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
1864   GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
1865   GL_FRAGMENT_SHADER = $8B30;
1866   GL_VERTEX_SHADER = $8B31;
1867   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
1868   GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
1869   GL_MAX_VARYING_FLOATS = $8B4B;
1870   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
1871   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
1872   GL_SHADER_TYPE = $8B4F;
1873   GL_FLOAT_VEC2 = $8B50;
1874   GL_FLOAT_VEC3 = $8B51;
1875   GL_FLOAT_VEC4 = $8B52;
1876   GL_INT_VEC2 = $8B53;
1877   GL_INT_VEC3 = $8B54;
1878   GL_INT_VEC4 = $8B55;
1879   GL_BOOL = $8B56;
1880   GL_BOOL_VEC2 = $8B57;
1881   GL_BOOL_VEC3 = $8B58;
1882   GL_BOOL_VEC4 = $8B59;
1883   GL_FLOAT_MAT2 = $8B5A;
1884   GL_FLOAT_MAT3 = $8B5B;
1885   GL_FLOAT_MAT4 = $8B5C;
1886   GL_SAMPLER_1D = $8B5D;
1887   GL_SAMPLER_2D = $8B5E;
1888   GL_SAMPLER_3D = $8B5F;
1889   GL_SAMPLER_CUBE = $8B60;
1890   GL_SAMPLER_1D_SHADOW = $8B61;
1891   GL_SAMPLER_2D_SHADOW = $8B62;
1892   GL_DELETE_STATUS = $8B80;
1893   GL_COMPILE_STATUS = $8B81;
1894   GL_LINK_STATUS = $8B82;
1895   GL_VALIDATE_STATUS = $8B83;
1896   GL_INFO_LOG_LENGTH = $8B84;
1897   GL_ATTACHED_SHADERS = $8B85;
1898   GL_ACTIVE_UNIFORMS = $8B86;
1899   GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
1900   GL_SHADER_SOURCE_LENGTH = $8B88;
1901   GL_ACTIVE_ATTRIBUTES = $8B89;
1902   GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
1903   GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
1904   GL_SHADING_LANGUAGE_VERSION = $8B8C;
1905   GL_CURRENT_PROGRAM = $8B8D;
1906   GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
1907   GL_LOWER_LEFT = $8CA1;
1908   GL_UPPER_LEFT = $8CA2;
1909   GL_STENCIL_BACK_REF = $8CA3;
1910   GL_STENCIL_BACK_VALUE_MASK = $8CA4;
1911   GL_STENCIL_BACK_WRITEMASK = $8CA5;
1912 {$ifdef DGL_DEPRECATED}
1913   GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
1914   GL_POINT_SPRITE = $8861;
1915   GL_COORD_REPLACE = $8862;
1916   GL_MAX_TEXTURE_COORDS = $8871;
1917 {$endif}
1918
1919   // GL_VERSION_2_1
1920   GL_PIXEL_PACK_BUFFER = $88EB;
1921   GL_PIXEL_UNPACK_BUFFER = $88EC;
1922   GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
1923   GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
1924   GL_FLOAT_MAT2x3 = $8B65;
1925   GL_FLOAT_MAT2x4 = $8B66;
1926   GL_FLOAT_MAT3x2 = $8B67;
1927   GL_FLOAT_MAT3x4 = $8B68;
1928   GL_FLOAT_MAT4x2 = $8B69;
1929   GL_FLOAT_MAT4x3 = $8B6A;
1930   GL_SRGB = $8C40;
1931   GL_SRGB8 = $8C41;
1932   GL_SRGB_ALPHA = $8C42;
1933   GL_SRGB8_ALPHA8 = $8C43;
1934   GL_COMPRESSED_SRGB = $8C48;
1935   GL_COMPRESSED_SRGB_ALPHA = $8C49;
1936 {$ifdef DGL_DEPRECATED}
1937   GL_CURRENT_RASTER_SECONDARY_COLOR = $845F;
1938   GL_SLUMINANCE_ALPHA = $8C44;
1939   GL_SLUMINANCE8_ALPHA8 = $8C45;
1940   GL_SLUMINANCE = $8C46;
1941   GL_SLUMINANCE8 = $8C47;
1942   GL_COMPRESSED_SLUMINANCE = $8C4A;
1943   GL_COMPRESSED_SLUMINANCE_ALPHA = $8C4B;
1944 {$endif}
1945
1946   // GL_VERSION_3_0
1947   GL_COMPARE_REF_TO_TEXTURE = $884E;
1948   GL_CLIP_DISTANCE0 = $3000;
1949   GL_CLIP_DISTANCE1 = $3001;
1950   GL_CLIP_DISTANCE2 = $3002;
1951   GL_CLIP_DISTANCE3 = $3003;
1952   GL_CLIP_DISTANCE4 = $3004;
1953   GL_CLIP_DISTANCE5 = $3005;
1954   GL_CLIP_DISTANCE6 = $3006;
1955   GL_CLIP_DISTANCE7 = $3007;
1956   GL_MAX_CLIP_DISTANCES = $0D32;
1957   GL_MAJOR_VERSION = $821B;
1958   GL_MINOR_VERSION = $821C;
1959   GL_NUM_EXTENSIONS = $821D;
1960   GL_CONTEXT_FLAGS = $821E;
1961   GL_DEPTH_BUFFER = $8223;
1962   GL_STENCIL_BUFFER = $8224;
1963   GL_COMPRESSED_RED = $8225;
1964   GL_COMPRESSED_RG = $8226;
1965   GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = $0001;
1966   GL_RGBA32F = $8814;
1967   GL_RGB32F = $8815;
1968   GL_RGBA16F = $881A;
1969   GL_RGB16F = $881B;
1970   GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
1971   GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
1972   GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
1973   GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
1974   GL_CLAMP_READ_COLOR = $891C;
1975   GL_FIXED_ONLY = $891D;
1976   GL_MAX_VARYING_COMPONENTS = $8B4B;
1977   GL_TEXTURE_1D_ARRAY = $8C18;
1978   GL_PROXY_TEXTURE_1D_ARRAY = $8C19;
1979   GL_TEXTURE_2D_ARRAY = $8C1A;
1980   GL_PROXY_TEXTURE_2D_ARRAY = $8C1B;
1981   GL_TEXTURE_BINDING_1D_ARRAY = $8C1C;
1982   GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
1983   GL_R11F_G11F_B10F = $8C3A;
1984   GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
1985   GL_RGB9_E5 = $8C3D;
1986   GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
1987   GL_TEXTURE_SHARED_SIZE = $8C3F;
1988   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
1989   GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
1990   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
1991   GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
1992   GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
1993   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
1994   GL_PRIMITIVES_GENERATED = $8C87;
1995   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
1996   GL_RASTERIZER_DISCARD = $8C89;
1997   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
1998   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
1999   GL_INTERLEAVED_ATTRIBS = $8C8C;
2000   GL_SEPARATE_ATTRIBS = $8C8D;
2001   GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
2002   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
2003   GL_RGBA32UI = $8D70;
2004   GL_RGB32UI = $8D71;
2005   GL_RGBA16UI = $8D76;
2006   GL_RGB16UI = $8D77;
2007   GL_RGBA8UI = $8D7C;
2008   GL_RGB8UI = $8D7D;
2009   GL_RGBA32I = $8D82;
2010   GL_RGB32I = $8D83;
2011   GL_RGBA16I = $8D88;
2012   GL_RGB16I = $8D89;
2013   GL_RGBA8I = $8D8E;
2014   GL_RGB8I = $8D8F;
2015   GL_RED_INTEGER = $8D94;
2016   GL_GREEN_INTEGER = $8D95;
2017   GL_BLUE_INTEGER = $8D96;
2018   GL_RGB_INTEGER = $8D98;
2019   GL_RGBA_INTEGER = $8D99;
2020   GL_BGR_INTEGER = $8D9A;
2021   GL_BGRA_INTEGER = $8D9B;
2022   GL_SAMPLER_1D_ARRAY = $8DC0;
2023   GL_SAMPLER_2D_ARRAY = $8DC1;
2024   GL_SAMPLER_1D_ARRAY_SHADOW = $8DC3;
2025   GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
2026   GL_SAMPLER_CUBE_SHADOW = $8DC5;
2027   GL_UNSIGNED_INT_VEC2 = $8DC6;
2028   GL_UNSIGNED_INT_VEC3 = $8DC7;
2029   GL_UNSIGNED_INT_VEC4 = $8DC8;
2030   GL_INT_SAMPLER_1D = $8DC9;
2031   GL_INT_SAMPLER_2D = $8DCA;
2032   GL_INT_SAMPLER_3D = $8DCB;
2033   GL_INT_SAMPLER_CUBE = $8DCC;
2034   GL_INT_SAMPLER_1D_ARRAY = $8DCE;
2035   GL_INT_SAMPLER_2D_ARRAY = $8DCF;
2036   GL_UNSIGNED_INT_SAMPLER_1D = $8DD1;
2037   GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
2038   GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
2039   GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
2040   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = $8DD6;
2041   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
2042   GL_QUERY_WAIT = $8E13;
2043   GL_QUERY_NO_WAIT = $8E14;
2044   GL_QUERY_BY_REGION_WAIT = $8E15;
2045   GL_QUERY_BY_REGION_NO_WAIT = $8E16;
2046   GL_BUFFER_ACCESS_FLAGS = $911F;
2047   GL_BUFFER_MAP_LENGTH = $9120;
2048   GL_BUFFER_MAP_OFFSET = $9121;
2049   { Reuse tokens from ARB_depth_buffer_float }
2050   { reuse GL_DEPTH_COMPONENT32F }
2051   { reuse GL_DEPTH32F_STENCIL8 }
2052   { reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV }
2053   { Reuse tokens from ARB_framebuffer_object }
2054   { reuse GL_INVALID_FRAMEBUFFER_OPERATION }
2055   { reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING }
2056   { reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE }
2057   { reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE }
2058   { reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE }
2059   { reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE }
2060   { reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE }
2061   { reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE }
2062   { reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE }
2063   { reuse GL_FRAMEBUFFER_DEFAULT }
2064   { reuse GL_FRAMEBUFFER_UNDEFINED }
2065   { reuse GL_DEPTH_STENCIL_ATTACHMENT }
2066   { reuse GL_INDEX }
2067   { reuse GL_MAX_RENDERBUFFER_SIZE }
2068   { reuse GL_DEPTH_STENCIL }
2069   { reuse GL_UNSIGNED_INT_24_8 }
2070   { reuse GL_DEPTH24_STENCIL8 }
2071   { reuse GL_TEXTURE_STENCIL_SIZE }
2072   { reuse GL_TEXTURE_RED_TYPE }
2073   { reuse GL_TEXTURE_GREEN_TYPE }
2074   { reuse GL_TEXTURE_BLUE_TYPE }
2075   { reuse GL_TEXTURE_ALPHA_TYPE }
2076   { reuse GL_TEXTURE_DEPTH_TYPE }
2077   { reuse GL_UNSIGNED_NORMALIZED }
2078   { reuse GL_FRAMEBUFFER_BINDING }
2079   { reuse GL_DRAW_FRAMEBUFFER_BINDING }
2080   { reuse GL_RENDERBUFFER_BINDING }
2081   { reuse GL_READ_FRAMEBUFFER }
2082   { reuse GL_DRAW_FRAMEBUFFER }
2083   { reuse GL_READ_FRAMEBUFFER_BINDING }
2084   { reuse GL_RENDERBUFFER_SAMPLES }
2085   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE }
2086   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME }
2087   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL }
2088   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE }
2089   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2090   { reuse GL_FRAMEBUFFER_COMPLETE }
2091   { reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT }
2092   { reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT }
2093   { reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER }
2094   { reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER }
2095   { reuse GL_FRAMEBUFFER_UNSUPPORTED }
2096   { reuse GL_MAX_COLOR_ATTACHMENTS }
2097   { reuse GL_COLOR_ATTACHMENT0 }
2098   { reuse GL_COLOR_ATTACHMENT1 }
2099   { reuse GL_COLOR_ATTACHMENT2 }
2100   { reuse GL_COLOR_ATTACHMENT3 }
2101   { reuse GL_COLOR_ATTACHMENT4 }
2102   { reuse GL_COLOR_ATTACHMENT5 }
2103   { reuse GL_COLOR_ATTACHMENT6 }
2104   { reuse GL_COLOR_ATTACHMENT7 }
2105   { reuse GL_COLOR_ATTACHMENT8 }
2106   { reuse GL_COLOR_ATTACHMENT9 }
2107   { reuse GL_COLOR_ATTACHMENT10 }
2108   { reuse GL_COLOR_ATTACHMENT11 }
2109   { reuse GL_COLOR_ATTACHMENT12 }
2110   { reuse GL_COLOR_ATTACHMENT13 }
2111   { reuse GL_COLOR_ATTACHMENT14 }
2112   { reuse GL_COLOR_ATTACHMENT15 }
2113   { reuse GL_DEPTH_ATTACHMENT }
2114   { reuse GL_STENCIL_ATTACHMENT }
2115   { reuse GL_FRAMEBUFFER }
2116   { reuse GL_RENDERBUFFER }
2117   { reuse GL_RENDERBUFFER_WIDTH }
2118   { reuse GL_RENDERBUFFER_HEIGHT }
2119   { reuse GL_RENDERBUFFER_INTERNAL_FORMAT }
2120   { reuse GL_STENCIL_INDEX1 }
2121   { reuse GL_STENCIL_INDEX4 }
2122   { reuse GL_STENCIL_INDEX8 }
2123   { reuse GL_STENCIL_INDEX16 }
2124   { reuse GL_RENDERBUFFER_RED_SIZE }
2125   { reuse GL_RENDERBUFFER_GREEN_SIZE }
2126   { reuse GL_RENDERBUFFER_BLUE_SIZE }
2127   { reuse GL_RENDERBUFFER_ALPHA_SIZE }
2128   { reuse GL_RENDERBUFFER_DEPTH_SIZE }
2129   { reuse GL_RENDERBUFFER_STENCIL_SIZE }
2130   { reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }
2131   { reuse GL_MAX_SAMPLES }
2132   { Reuse tokens from ARB_framebuffer_sRGB }
2133   { reuse GL_FRAMEBUFFER_SRGB }
2134   { Reuse tokens from ARB_half_float_vertex }
2135   { reuse GL_HALF_FLOAT }
2136   { Reuse tokens from ARB_map_buffer_range }
2137   { reuse GL_MAP_READ_BIT }
2138   { reuse GL_MAP_WRITE_BIT }
2139   { reuse GL_MAP_INVALIDATE_RANGE_BIT }
2140   { reuse GL_MAP_INVALIDATE_BUFFER_BIT }
2141   { reuse GL_MAP_FLUSH_EXPLICIT_BIT }
2142   { reuse GL_MAP_UNSYNCHRONIZED_BIT }
2143   { Reuse tokens from ARB_texture_compression_rgtc }
2144   { reuse GL_COMPRESSED_RED_RGTC1 }
2145   { reuse GL_COMPRESSED_SIGNED_RED_RGTC1 }
2146   { reuse GL_COMPRESSED_RG_RGTC2 }
2147   { reuse GL_COMPRESSED_SIGNED_RG_RGTC2 }
2148   { Reuse tokens from ARB_texture_rg }
2149   { reuse GL_RG }
2150   { reuse GL_RG_INTEGER }
2151   { reuse GL_R8 }
2152   { reuse GL_R16 }
2153   { reuse GL_RG8 }
2154   { reuse GL_RG16 }
2155   { reuse GL_R16F }
2156   { reuse GL_R32F }
2157   { reuse GL_RG16F }
2158   { reuse GL_RG32F }
2159   { reuse GL_R8I }
2160   { reuse GL_R8UI }
2161   { reuse GL_R16I }
2162   { reuse GL_R16UI }
2163   { reuse GL_R32I }
2164   { reuse GL_R32UI }
2165   { reuse GL_RG8I }
2166   { reuse GL_RG8UI }
2167   { reuse GL_RG16I }
2168   { reuse GL_RG16UI }
2169   { reuse GL_RG32I }
2170   { reuse GL_RG32UI }
2171   { Reuse tokens from ARB_vertex_array_object }
2172   { reuse GL_VERTEX_ARRAY_BINDING }
2173 {$ifdef DGL_DEPRECATED}
2174   GL_CLAMP_VERTEX_COLOR = $891A;
2175   GL_CLAMP_FRAGMENT_COLOR = $891B;
2176   GL_ALPHA_INTEGER = $8D97;
2177   { Reuse tokens from ARB_framebuffer_object }
2178   { reuse GL_TEXTURE_LUMINANCE_TYPE }
2179   { reuse GL_TEXTURE_INTENSITY_TYPE }
2180 {$endif}
2181
2182   // GL_VERSION_3_1
2183   GL_SAMPLER_2D_RECT = $8B63;
2184   GL_SAMPLER_2D_RECT_SHADOW = $8B64;
2185   GL_SAMPLER_BUFFER = $8DC2;
2186   GL_INT_SAMPLER_2D_RECT = $8DCD;
2187   GL_INT_SAMPLER_BUFFER = $8DD0;
2188   GL_UNSIGNED_INT_SAMPLER_2D_RECT = $8DD5;
2189   GL_UNSIGNED_INT_SAMPLER_BUFFER = $8DD8;
2190   GL_TEXTURE_BUFFER = $8C2A;
2191   GL_MAX_TEXTURE_BUFFER_SIZE = $8C2B;
2192   GL_TEXTURE_BINDING_BUFFER = $8C2C;
2193   GL_TEXTURE_BUFFER_DATA_STORE_BINDING = $8C2D;
2194   GL_TEXTURE_BUFFER_FORMAT = $8C2E;
2195   GL_TEXTURE_RECTANGLE = $84F5;
2196   GL_TEXTURE_BINDING_RECTANGLE = $84F6;
2197   GL_PROXY_TEXTURE_RECTANGLE = $84F7;
2198   GL_MAX_RECTANGLE_TEXTURE_SIZE = $84F8;
2199   GL_RED_SNORM = $8F90;
2200   GL_RG_SNORM = $8F91;
2201   GL_RGB_SNORM = $8F92;
2202   GL_RGBA_SNORM = $8F93;
2203   GL_R8_SNORM = $8F94;
2204   GL_RG8_SNORM = $8F95;
2205   GL_RGB8_SNORM = $8F96;
2206   GL_RGBA8_SNORM = $8F97;
2207   GL_R16_SNORM = $8F98;
2208   GL_RG16_SNORM = $8F99;
2209   GL_RGB16_SNORM = $8F9A;
2210   GL_RGBA16_SNORM = $8F9B;
2211   GL_SIGNED_NORMALIZED = $8F9C;
2212   GL_PRIMITIVE_RESTART = $8F9D;
2213   GL_PRIMITIVE_RESTART_INDEX = $8F9E;
2214   { Reuse tokens from ARB_copy_buffer }
2215   { reuse GL_COPY_READ_BUFFER }
2216   { reuse GL_COPY_WRITE_BUFFER }
2217   { Reuse tokens from ARB_draw_instanced (none) }
2218   { Reuse tokens from ARB_uniform_buffer_object }
2219   { reuse GL_UNIFORM_BUFFER }
2220   { reuse GL_UNIFORM_BUFFER_BINDING }
2221   { reuse GL_UNIFORM_BUFFER_START }
2222   { reuse GL_UNIFORM_BUFFER_SIZE }
2223   { reuse GL_MAX_VERTEX_UNIFORM_BLOCKS }
2224   { reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS }
2225   { reuse GL_MAX_COMBINED_UNIFORM_BLOCKS }
2226   { reuse GL_MAX_UNIFORM_BUFFER_BINDINGS }
2227   { reuse GL_MAX_UNIFORM_BLOCK_SIZE }
2228   { reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS }
2229   { reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS }
2230   { reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT }
2231   { reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH }
2232   { reuse GL_ACTIVE_UNIFORM_BLOCKS }
2233   { reuse GL_UNIFORM_TYPE }
2234   { reuse GL_UNIFORM_SIZE }
2235   { reuse GL_UNIFORM_NAME_LENGTH }
2236   { reuse GL_UNIFORM_BLOCK_INDEX }
2237   { reuse GL_UNIFORM_OFFSET }
2238   { reuse GL_UNIFORM_ARRAY_STRIDE }
2239   { reuse GL_UNIFORM_MATRIX_STRIDE }
2240   { reuse GL_UNIFORM_IS_ROW_MAJOR }
2241   { reuse GL_UNIFORM_BLOCK_BINDING }
2242   { reuse GL_UNIFORM_BLOCK_DATA_SIZE }
2243   { reuse GL_UNIFORM_BLOCK_NAME_LENGTH }
2244   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS }
2245   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES }
2246   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER }
2247   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER }
2248   { reuse GL_INVALID_INDEX }
2249
2250   // GL_VERSION_3_2
2251   GL_CONTEXT_CORE_PROFILE_BIT = $00000001;
2252   GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = $00000002;
2253   GL_LINES_ADJACENCY = $000A;
2254   GL_LINE_STRIP_ADJACENCY = $000B;
2255   GL_TRIANGLES_ADJACENCY = $000C;
2256   GL_TRIANGLE_STRIP_ADJACENCY = $000D;
2257   GL_PROGRAM_POINT_SIZE = $8642;
2258   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = $8C29;
2259   GL_FRAMEBUFFER_ATTACHMENT_LAYERED = $8DA7;
2260   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = $8DA8;
2261   GL_GEOMETRY_SHADER = $8DD9;
2262   GL_GEOMETRY_VERTICES_OUT = $8916;
2263   GL_GEOMETRY_INPUT_TYPE = $8917;
2264   GL_GEOMETRY_OUTPUT_TYPE = $8918;
2265   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = $8DDF;
2266   GL_MAX_GEOMETRY_OUTPUT_VERTICES = $8DE0;
2267   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = $8DE1;
2268   GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
2269   GL_MAX_GEOMETRY_INPUT_COMPONENTS = $9123;
2270   GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = $9124;
2271   GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
2272   GL_CONTEXT_PROFILE_MASK = $9126;
2273   { reuse GL_MAX_VARYING_COMPONENTS }
2274   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2275   { Reuse tokens from ARB_depth_clamp }
2276   { reuse GL_DEPTH_CLAMP }
2277   { Reuse tokens from ARB_draw_elements_base_vertex (none) }
2278   { Reuse tokens from ARB_fragment_coord_conventions (none) }
2279   { Reuse tokens from ARB_provoking_vertex }
2280   { reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION }
2281   { reuse GL_FIRST_VERTEX_CONVENTION }
2282   { reuse GL_LAST_VERTEX_CONVENTION }
2283   { reuse GL_PROVOKING_VERTEX }
2284   { Reuse tokens from ARB_seamless_cube_map }
2285   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
2286   { Reuse tokens from ARB_sync }
2287   { reuse GL_MAX_SERVER_WAIT_TIMEOUT }
2288   { reuse GL_OBJECT_TYPE }
2289   { reuse GL_SYNC_CONDITION }
2290   { reuse GL_SYNC_STATUS }
2291   { reuse GL_SYNC_FLAGS }
2292   { reuse GL_SYNC_FENCE }
2293   { reuse GL_SYNC_GPU_COMMANDS_COMPLETE }
2294   { reuse GL_UNSIGNALED }
2295   { reuse GL_SIGNALED }
2296   { reuse GL_ALREADY_SIGNALED }
2297   { reuse GL_TIMEOUT_EXPIRED }
2298   { reuse GL_CONDITION_SATISFIED }
2299   { reuse GL_WAIT_FAILED }
2300   { reuse GL_TIMEOUT_IGNORED }
2301   { reuse GL_SYNC_FLUSH_COMMANDS_BIT }
2302   { reuse GL_TIMEOUT_IGNORED }
2303   { Reuse tokens from ARB_texture_multisample }
2304   { reuse GL_SAMPLE_POSITION }
2305   { reuse GL_SAMPLE_MASK }
2306   { reuse GL_SAMPLE_MASK_VALUE }
2307   { reuse GL_MAX_SAMPLE_MASK_WORDS }
2308   { reuse GL_TEXTURE_2D_MULTISAMPLE }
2309   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE }
2310   { reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY }
2311   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY }
2312   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE }
2313   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY }
2314   { reuse GL_TEXTURE_SAMPLES }
2315   { reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS }
2316   { reuse GL_SAMPLER_2D_MULTISAMPLE }
2317   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE }
2318   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE }
2319   { reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY }
2320   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2321   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2322   { reuse GL_MAX_COLOR_TEXTURE_SAMPLES }
2323   { reuse GL_MAX_DEPTH_TEXTURE_SAMPLES }
2324   { reuse GL_MAX_INTEGER_SAMPLES }
2325   { Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core }
2326
2327   // GL_VERSION_3_3
2328   GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
2329   { Reuse tokens from ARB_blend_func_extended }
2330   { reuse GL_SRC1_COLOR }
2331   { reuse GL_ONE_MINUS_SRC1_COLOR }
2332   { reuse GL_ONE_MINUS_SRC1_ALPHA }
2333   { reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS }
2334   { Reuse tokens from ARB_explicit_attrib_location (none) }
2335   { Reuse tokens from ARB_occlusion_query2 }
2336   { reuse GL_ANY_SAMPLES_PASSED }
2337   { Reuse tokens from ARB_sampler_objects }
2338   { reuse GL_SAMPLER_BINDING }
2339   { Reuse tokens from ARB_shader_bit_encoding (none) }
2340   { Reuse tokens from ARB_texture_rgb10_a2ui }
2341   { reuse GL_RGB10_A2UI }
2342   { Reuse tokens from ARB_texture_swizzle }
2343   { reuse GL_TEXTURE_SWIZZLE_R }
2344   { reuse GL_TEXTURE_SWIZZLE_G }
2345   { reuse GL_TEXTURE_SWIZZLE_B }
2346   { reuse GL_TEXTURE_SWIZZLE_A }
2347   { reuse GL_TEXTURE_SWIZZLE_RGBA }
2348   { Reuse tokens from ARB_timer_query }
2349   { reuse GL_TIME_ELAPSED }
2350   { reuse GL_TIMESTAMP }
2351   { Reuse tokens from ARB_vertex_type_2_10_10_10_rev }
2352   { reuse GL_INT_2_10_10_10_REV }
2353
2354   // GL_VERSION_4_0
2355   GL_SAMPLE_SHADING = $8C36;
2356   GL_MIN_SAMPLE_SHADING_VALUE = $8C37;
2357   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
2358   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
2359   GL_TEXTURE_CUBE_MAP_ARRAY = $9009;
2360   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = $900A;
2361   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = $900B;
2362   GL_SAMPLER_CUBE_MAP_ARRAY = $900C;
2363   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = $900D;
2364   GL_INT_SAMPLER_CUBE_MAP_ARRAY = $900E;
2365   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = $900F;
2366   { Reuse tokens from ARB_texture_query_lod (none) }
2367   { Reuse tokens from ARB_draw_buffers_blend (none) }
2368   { Reuse tokens from ARB_draw_indirect }
2369   { reuse GL_DRAW_INDIRECT_BUFFER }
2370   { reuse GL_DRAW_INDIRECT_BUFFER_BINDING }
2371   { Reuse tokens from ARB_gpu_shader5 }
2372   { reuse GL_GEOMETRY_SHADER_INVOCATIONS }
2373   { reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS }
2374   { reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET }
2375   { reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET }
2376   { reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS }
2377   { reuse GL_MAX_VERTEX_STREAMS }
2378   { Reuse tokens from ARB_gpu_shader_fp64 }
2379   { reuse GL_DOUBLE_VEC2 }
2380   { reuse GL_DOUBLE_VEC3 }
2381   { reuse GL_DOUBLE_VEC4 }
2382   { reuse GL_DOUBLE_MAT2 }
2383   { reuse GL_DOUBLE_MAT3 }
2384   { reuse GL_DOUBLE_MAT4 }
2385   { reuse GL_DOUBLE_MAT2x3 }
2386   { reuse GL_DOUBLE_MAT2x4 }
2387   { reuse GL_DOUBLE_MAT3x2 }
2388   { reuse GL_DOUBLE_MAT3x4 }
2389   { reuse GL_DOUBLE_MAT4x2 }
2390   { reuse GL_DOUBLE_MAT4x3 }
2391   { Reuse tokens from ARB_shader_subroutine }
2392   { reuse GL_ACTIVE_SUBROUTINES }
2393   { reuse GL_ACTIVE_SUBROUTINE_UNIFORMS }
2394   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS }
2395   { reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH }
2396   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH }
2397   { reuse GL_MAX_SUBROUTINES }
2398   { reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS }
2399   { reuse GL_NUM_COMPATIBLE_SUBROUTINES }
2400   { reuse GL_COMPATIBLE_SUBROUTINES }
2401   { Reuse tokens from ARB_tessellation_shader }
2402   { reuse GL_PATCHES }
2403   { reuse GL_PATCH_VERTICES }
2404   { reuse GL_PATCH_DEFAULT_INNER_LEVEL }
2405   { reuse GL_PATCH_DEFAULT_OUTER_LEVEL }
2406   { reuse GL_TESS_CONTROL_OUTPUT_VERTICES }
2407   { reuse GL_TESS_GEN_MODE }
2408   { reuse GL_TESS_GEN_SPACING }
2409   { reuse GL_TESS_GEN_VERTEX_ORDER }
2410   { reuse GL_TESS_GEN_POINT_MODE }
2411   { reuse GL_ISOLINES }
2412   { reuse GL_FRACTIONAL_ODD }
2413   { reuse GL_FRACTIONAL_EVEN }
2414   { reuse GL_MAX_PATCH_VERTICES }
2415   { reuse GL_MAX_TESS_GEN_LEVEL }
2416   { reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS }
2417   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS }
2418   { reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS }
2419   { reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS }
2420   { reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS }
2421   { reuse GL_MAX_TESS_PATCH_COMPONENTS }
2422   { reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS }
2423   { reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS }
2424   { reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS }
2425   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS }
2426   { reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS }
2427   { reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS }
2428   { reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS }
2429   { reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS }
2430   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER }
2431   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER }
2432   { reuse GL_TESS_EVALUATION_SHADER }
2433   { reuse GL_TESS_CONTROL_SHADER }
2434   { Reuse tokens from ARB_texture_buffer_object_rgb32 (none) }
2435   { Reuse tokens from ARB_transform_feedback2 }
2436   { reuse GL_TRANSFORM_FEEDBACK }
2437   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED }
2438   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE }
2439   { reuse GL_TRANSFORM_FEEDBACK_BINDING }
2440   { Reuse tokens from ARB_transform_feedback3 }
2441   { reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS }
2442   { reuse GL_MAX_VERTEX_STREAMS }
2443
2444   // GL_VERSION_4_1
2445   { Reuse tokens from ARB_ES2_compatibility }
2446   { reuse GL_FIXED }
2447   { reuse GL_IMPLEMENTATION_COLOR_READ_TYPE }
2448   { reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT }
2449   { reuse GL_LOW_FLOAT }
2450   { reuse GL_MEDIUM_FLOAT }
2451   { reuse GL_HIGH_FLOAT }
2452   { reuse GL_LOW_INT }
2453   { reuse GL_MEDIUM_INT }
2454   { reuse GL_HIGH_INT }
2455   { reuse GL_SHADER_COMPILER }
2456   { reuse GL_NUM_SHADER_BINARY_FORMATS }
2457   { reuse GL_MAX_VERTEX_UNIFORM_VECTORS }
2458   { reuse GL_MAX_VARYING_VECTORS }
2459   { reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS }
2460   { reuse GL_RGB565 }
2461   { Reuse tokens from ARB_get_program_binary }
2462   { reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT }
2463   { reuse GL_PROGRAM_BINARY_LENGTH }
2464   { reuse GL_NUM_PROGRAM_BINARY_FORMATS }
2465   { reuse GL_PROGRAM_BINARY_FORMATS }
2466   { Reuse tokens from ARB_separate_shader_objects }
2467   { reuse GL_VERTEX_SHADER_BIT }
2468   { reuse GL_FRAGMENT_SHADER_BIT }
2469   { reuse GL_GEOMETRY_SHADER_BIT }
2470   { reuse GL_TESS_CONTROL_SHADER_BIT }
2471   { reuse GL_TESS_EVALUATION_SHADER_BIT }
2472   { reuse GL_ALL_SHADER_BITS }
2473   { reuse GL_PROGRAM_SEPARABLE }
2474   { reuse GL_ACTIVE_PROGRAM }
2475   { reuse GL_PROGRAM_PIPELINE_BINDING }
2476   { Reuse tokens from ARB_shader_precision (none) }
2477   { Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already }
2478   { Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already }
2479   { reuse GL_MAX_VIEWPORTS }
2480   { reuse GL_VIEWPORT_SUBPIXEL_BITS }
2481   { reuse GL_VIEWPORT_BOUNDS_RANGE }
2482   { reuse GL_LAYER_PROVOKING_VERTEX }
2483   { reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX }
2484   { reuse GL_UNDEFINED_VERTEX }
2485
2486   // GL_VERSION_4_2
2487   { Reuse tokens from ARB_base_instance (none) }
2488   { Reuse tokens from ARB_shading_language_420pack (none) }
2489   { Reuse tokens from ARB_transform_feedback_instanced (none) }
2490   { Reuse tokens from ARB_compressed_texture_pixel_storage }
2491   { reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH }
2492   { reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT }
2493   { reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH }
2494   { reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE }
2495   { reuse GL_PACK_COMPRESSED_BLOCK_WIDTH }
2496   { reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT }
2497   { reuse GL_PACK_COMPRESSED_BLOCK_DEPTH }
2498   { reuse GL_PACK_COMPRESSED_BLOCK_SIZE }
2499   { Reuse tokens from ARB_conservative_depth (none) }
2500   { Reuse tokens from ARB_internalformat_query }
2501   { reuse GL_NUM_SAMPLE_COUNTS }
2502   { Reuse tokens from ARB_map_buffer_alignment }
2503   { reuse GL_MIN_MAP_BUFFER_ALIGNMENT }
2504   { Reuse tokens from ARB_shader_atomic_counters }
2505   { reuse GL_ATOMIC_COUNTER_BUFFER }
2506   { reuse GL_ATOMIC_COUNTER_BUFFER_BINDING }
2507   { reuse GL_ATOMIC_COUNTER_BUFFER_START }
2508   { reuse GL_ATOMIC_COUNTER_BUFFER_SIZE }
2509   { reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE }
2510   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS }
2511   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES }
2512   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER }
2513   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER }
2514   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER }
2515   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER }
2516   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER }
2517   { reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS }
2518   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS }
2519   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS }
2520   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS }
2521   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS }
2522   { reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS }
2523   { reuse GL_MAX_VERTEX_ATOMIC_COUNTERS }
2524   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS }
2525   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS }
2526   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS }
2527   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS }
2528   { reuse GL_MAX_COMBINED_ATOMIC_COUNTERS }
2529   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE }
2530   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS }
2531   { reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS }
2532   { reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX }
2533   { reuse GL_UNSIGNED_INT_ATOMIC_COUNTER }
2534   { Reuse tokens from ARB_shader_image_load_store }
2535   { reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT }
2536   { reuse GL_ELEMENT_ARRAY_BARRIER_BIT }
2537   { reuse GL_UNIFORM_BARRIER_BIT }
2538   { reuse GL_TEXTURE_FETCH_BARRIER_BIT }
2539   { reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT }
2540   { reuse GL_COMMAND_BARRIER_BIT }
2541   { reuse GL_PIXEL_BUFFER_BARRIER_BIT }
2542   { reuse GL_TEXTURE_UPDATE_BARRIER_BIT }
2543   { reuse GL_BUFFER_UPDATE_BARRIER_BIT }
2544   { reuse GL_FRAMEBUFFER_BARRIER_BIT }
2545   { reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT }
2546   { reuse GL_ATOMIC_COUNTER_BARRIER_BIT }
2547   { reuse GL_ALL_BARRIER_BITS }
2548   { reuse GL_MAX_IMAGE_UNITS }
2549   { reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS }
2550   { reuse GL_IMAGE_BINDING_NAME }
2551   { reuse GL_IMAGE_BINDING_LEVEL }
2552   { reuse GL_IMAGE_BINDING_LAYERED }
2553   { reuse GL_IMAGE_BINDING_LAYER }
2554   { reuse GL_IMAGE_BINDING_ACCESS }
2555   { reuse GL_IMAGE_1D }
2556   { reuse GL_IMAGE_2D }
2557   { reuse GL_IMAGE_3D }
2558   { reuse GL_IMAGE_2D_RECT }
2559   { reuse GL_IMAGE_CUBE }
2560   { reuse GL_IMAGE_BUFFER }
2561   { reuse GL_IMAGE_1D_ARRAY }
2562   { reuse GL_IMAGE_2D_ARRAY }
2563   { reuse GL_IMAGE_CUBE_MAP_ARRAY }
2564   { reuse GL_IMAGE_2D_MULTISAMPLE }
2565   { reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY }
2566   { reuse GL_INT_IMAGE_1D }
2567   { reuse GL_INT_IMAGE_2D }
2568   { reuse GL_INT_IMAGE_3D }
2569   { reuse GL_INT_IMAGE_2D_RECT }
2570   { reuse GL_INT_IMAGE_CUBE }
2571   { reuse GL_INT_IMAGE_BUFFER }
2572   { reuse GL_INT_IMAGE_1D_ARRAY }
2573   { reuse GL_INT_IMAGE_2D_ARRAY }
2574   { reuse GL_INT_IMAGE_CUBE_MAP_ARRAY }
2575   { reuse GL_INT_IMAGE_2D_MULTISAMPLE }
2576   { reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2577   { reuse GL_UNSIGNED_INT_IMAGE_1D }
2578   { reuse GL_UNSIGNED_INT_IMAGE_2D }
2579   { reuse GL_UNSIGNED_INT_IMAGE_3D }
2580   { reuse GL_UNSIGNED_INT_IMAGE_2D_RECT }
2581   { reuse GL_UNSIGNED_INT_IMAGE_CUBE }
2582   { reuse GL_UNSIGNED_INT_IMAGE_BUFFER }
2583   { reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY }
2584   { reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY }
2585   { reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY }
2586   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE }
2587   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2588   { reuse GL_MAX_IMAGE_SAMPLES }
2589   { reuse GL_IMAGE_BINDING_FORMAT }
2590   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE }
2591   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE }
2592   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS }
2593   { reuse GL_MAX_VERTEX_IMAGE_UNIFORMS }
2594   { reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS }
2595   { reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS }
2596   { reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS }
2597   { reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS }
2598   { reuse GL_MAX_COMBINED_IMAGE_UNIFORMS }
2599   { Reuse tokens from ARB_shading_language_packing (none) }
2600   { Reuse tokens from ARB_texture_storage }
2601   { reuse GL_TEXTURE_IMMUTABLE_FORMAT }
2602
2603   // GL_VERSION_4_3
2604   GL_NUM_SHADING_LANGUAGE_VERSIONS  = $82E9;
2605   GL_VERTEX_ATTRIB_ARRAY_LONG = $874E;
2606   { Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) }
2607   { Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) }
2608   { Reuse tokens from ARB_shader_image_size (none, GLSL only) }
2609   { Reuse tokens from ARB_ES3_compatibility }
2610   { reuse GL_COMPRESSED_RGB8_ETC2 }
2611   { reuse GL_COMPRESSED_SRGB8_ETC2 }
2612   { reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2613   { reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2614   { reuse GL_COMPRESSED_RGBA8_ETC2_EAC }
2615   { reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC }
2616   { reuse GL_COMPRESSED_R11_EAC }
2617   { reuse GL_COMPRESSED_SIGNED_R11_EAC }
2618   { reuse GL_COMPRESSED_RG11_EAC }
2619   { reuse GL_COMPRESSED_SIGNED_RG11_EAC }
2620   { reuse GL_PRIMITIVE_RESTART_FIXED_INDEX }
2621   { reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE }
2622   { reuse GL_MAX_ELEMENT_INDEX }
2623   { Reuse tokens from ARB_clear_buffer_object (none) }
2624   { Reuse tokens from ARB_compute_shader }
2625   { reuse GL_COMPUTE_SHADER }
2626   { reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS }
2627   { reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS }
2628   { reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS }
2629   { reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE }
2630   { reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS }
2631   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS }
2632   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS }
2633   { reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS }
2634   { reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS }
2635   { reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT }
2636   { reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE }
2637   { reuse GL_COMPUTE_LOCAL_WORK_SIZE }
2638   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER }
2639   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER }
2640   { reuse GL_DISPATCH_INDIRECT_BUFFER }
2641   { reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING }
2642   { Reuse tokens from ARB_copy_image (none) }
2643   { Reuse tokens from KHR_debug }
2644   { reuse GL_DEBUG_OUTPUT_SYNCHRONOUS }
2645   { reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH }
2646   { reuse GL_DEBUG_CALLBACK_FUNCTION }
2647   { reuse GL_DEBUG_CALLBACK_USER_PARAM }
2648   { reuse GL_DEBUG_SOURCE_API }
2649   { reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM }
2650   { reuse GL_DEBUG_SOURCE_SHADER_COMPILER }
2651   { reuse GL_DEBUG_SOURCE_THIRD_PARTY }
2652   { reuse GL_DEBUG_SOURCE_APPLICATION }
2653   { reuse GL_DEBUG_SOURCE_OTHER }
2654   { reuse GL_DEBUG_TYPE_ERROR }
2655   { reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR }
2656   { reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR }
2657   { reuse GL_DEBUG_TYPE_PORTABILITY }
2658   { reuse GL_DEBUG_TYPE_PERFORMANCE }
2659   { reuse GL_DEBUG_TYPE_OTHER }
2660   { reuse GL_MAX_DEBUG_MESSAGE_LENGTH }
2661   { reuse GL_MAX_DEBUG_LOGGED_MESSAGES }
2662   { reuse GL_DEBUG_LOGGED_MESSAGES }
2663   { reuse GL_DEBUG_SEVERITY_HIGH }
2664   { reuse GL_DEBUG_SEVERITY_MEDIUM }
2665   { reuse GL_DEBUG_SEVERITY_LOW }
2666   { reuse GL_DEBUG_TYPE_MARKER }
2667   { reuse GL_DEBUG_TYPE_PUSH_GROUP }
2668   { reuse GL_DEBUG_TYPE_POP_GROUP }
2669   { reuse GL_DEBUG_SEVERITY_NOTIFICATION }
2670   { reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH }
2671   { reuse GL_DEBUG_GROUP_STACK_DEPTH }
2672   { reuse GL_BUFFER }
2673   { reuse GL_SHADER }
2674   { reuse GL_PROGRAM }
2675   { reuse GL_QUERY }
2676   { reuse GL_PROGRAM_PIPELINE }
2677   { reuse GL_SAMPLER }
2678   { reuse GL_DISPLAY_LIST }
2679   { reuse GL_MAX_LABEL_LENGTH }
2680   { reuse GL_DEBUG_OUTPUT }
2681   { reuse GL_CONTEXT_FLAG_DEBUG_BIT }
2682   { reuse GL_STACK_UNDERFLOW }
2683   { reuse GL_STACK_OVERFLOW }
2684   { Reuse tokens from ARB_explicit_uniform_location }
2685   { reuse GL_MAX_UNIFORM_LOCATIONS }
2686   { Reuse tokens from ARB_framebuffer_no_attachments }
2687   { reuse GL_FRAMEBUFFER_DEFAULT_WIDTH }
2688   { reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT }
2689   { reuse GL_FRAMEBUFFER_DEFAULT_LAYERS }
2690   { reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES }
2691   { reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS }
2692   { reuse GL_MAX_FRAMEBUFFER_WIDTH }
2693   { reuse GL_MAX_FRAMEBUFFER_HEIGHT }
2694   { reuse GL_MAX_FRAMEBUFFER_LAYERS }
2695   { reuse GL_MAX_FRAMEBUFFER_SAMPLES }
2696   { Reuse tokens from ARB_internalformat_query2 }
2697   { reuse GL_INTERNALFORMAT_SUPPORTED }
2698   { reuse GL_INTERNALFORMAT_PREFERRED }
2699   { reuse GL_INTERNALFORMAT_RED_SIZE }
2700   { reuse GL_INTERNALFORMAT_GREEN_SIZE }
2701   { reuse GL_INTERNALFORMAT_BLUE_SIZE }
2702   { reuse GL_INTERNALFORMAT_ALPHA_SIZE }
2703   { reuse GL_INTERNALFORMAT_DEPTH_SIZE }
2704   { reuse GL_INTERNALFORMAT_STENCIL_SIZE }
2705   { reuse GL_INTERNALFORMAT_SHARED_SIZE }
2706   { reuse GL_INTERNALFORMAT_RED_TYPE }
2707   { reuse GL_INTERNALFORMAT_GREEN_TYPE }
2708   { reuse GL_INTERNALFORMAT_BLUE_TYPE }
2709   { reuse GL_INTERNALFORMAT_ALPHA_TYPE }
2710   { reuse GL_INTERNALFORMAT_DEPTH_TYPE }
2711   { reuse GL_INTERNALFORMAT_STENCIL_TYPE }
2712   { reuse GL_MAX_WIDTH }
2713   { reuse GL_MAX_HEIGHT }
2714   { reuse GL_MAX_DEPTH }
2715   { reuse GL_MAX_LAYERS }
2716   { reuse GL_MAX_COMBINED_DIMENSIONS }
2717   { reuse GL_COLOR_COMPONENTS }
2718   { reuse GL_DEPTH_COMPONENTS }
2719   { reuse GL_STENCIL_COMPONENTS }
2720   { reuse GL_COLOR_RENDERABLE }
2721   { reuse GL_DEPTH_RENDERABLE }
2722   { reuse GL_STENCIL_RENDERABLE }
2723   { reuse GL_FRAMEBUFFER_RENDERABLE }
2724   { reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED }
2725   { reuse GL_FRAMEBUFFER_BLEND }
2726   { reuse GL_READ_PIXELS }
2727   { reuse GL_READ_PIXELS_FORMAT }
2728   { reuse GL_READ_PIXELS_TYPE }
2729   { reuse GL_TEXTURE_IMAGE_FORMAT }
2730   { reuse GL_TEXTURE_IMAGE_TYPE }
2731   { reuse GL_GET_TEXTURE_IMAGE_FORMAT }
2732   { reuse GL_GET_TEXTURE_IMAGE_TYPE }
2733   { reuse GL_MIPMAP }
2734   { reuse GL_MANUAL_GENERATE_MIPMAP }
2735   { reuse GL_AUTO_GENERATE_MIPMAP }
2736   { reuse GL_COLOR_ENCODING }
2737   { reuse GL_SRGB_READ }
2738   { reuse GL_SRGB_WRITE }
2739   { reuse GL_FILTER }
2740   { reuse GL_VERTEX_TEXTURE }
2741   { reuse GL_TESS_CONTROL_TEXTURE }
2742   { reuse GL_TESS_EVALUATION_TEXTURE }
2743   { reuse GL_GEOMETRY_TEXTURE }
2744   { reuse GL_FRAGMENT_TEXTURE }
2745   { reuse GL_COMPUTE_TEXTURE }
2746   { reuse GL_TEXTURE_SHADOW }
2747   { reuse GL_TEXTURE_GATHER }
2748   { reuse GL_TEXTURE_GATHER_SHADOW }
2749   { reuse GL_SHADER_IMAGE_LOAD }
2750   { reuse GL_SHADER_IMAGE_STORE }
2751   { reuse GL_SHADER_IMAGE_ATOMIC }
2752   { reuse GL_IMAGE_TEXEL_SIZE }
2753   { reuse GL_IMAGE_COMPATIBILITY_CLASS }
2754   { reuse GL_IMAGE_PIXEL_FORMAT }
2755   { reuse GL_IMAGE_PIXEL_TYPE }
2756   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST }
2757   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST }
2758   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE }
2759   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE }
2760   { reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH }
2761   { reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT }
2762   { reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE }
2763   { reuse GL_CLEAR_BUFFER }
2764   { reuse GL_TEXTURE_VIEW }
2765   { reuse GL_VIEW_COMPATIBILITY_CLASS }
2766   { reuse GL_FULL_SUPPORT }
2767   { reuse GL_CAVEAT_SUPPORT }
2768   { reuse GL_IMAGE_CLASS_4_X_32 }
2769   { reuse GL_IMAGE_CLASS_2_X_32 }
2770   { reuse GL_IMAGE_CLASS_1_X_32 }
2771   { reuse GL_IMAGE_CLASS_4_X_16 }
2772   { reuse GL_IMAGE_CLASS_2_X_16 }
2773   { reuse GL_IMAGE_CLASS_1_X_16 }
2774   { reuse GL_IMAGE_CLASS_4_X_8 }
2775   { reuse GL_IMAGE_CLASS_2_X_8 }
2776   { reuse GL_IMAGE_CLASS_1_X_8 }
2777   { reuse GL_IMAGE_CLASS_11_11_10 }
2778   { reuse GL_IMAGE_CLASS_10_10_10_2 }
2779   { reuse GL_VIEW_CLASS_128_BITS }
2780   { reuse GL_VIEW_CLASS_96_BITS }
2781   { reuse GL_VIEW_CLASS_64_BITS }
2782   { reuse GL_VIEW_CLASS_48_BITS }
2783   { reuse GL_VIEW_CLASS_32_BITS }
2784   { reuse GL_VIEW_CLASS_24_BITS }
2785   { reuse GL_VIEW_CLASS_16_BITS }
2786   { reuse GL_VIEW_CLASS_8_BITS }
2787   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGB }
2788   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA }
2789   { reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA }
2790   { reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA }
2791   { reuse GL_VIEW_CLASS_RGTC1_RED }
2792   { reuse GL_VIEW_CLASS_RGTC2_RG }
2793   { reuse GL_VIEW_CLASS_BPTC_UNORM }
2794   { reuse GL_VIEW_CLASS_BPTC_FLOAT }
2795   { Reuse tokens from ARB_invalidate_subdata (none) }
2796   { Reuse tokens from ARB_multi_draw_indirect (none) }
2797   { Reuse tokens from ARB_program_interface_query }
2798   { reuse GL_UNIFORM }
2799   { reuse GL_UNIFORM_BLOCK }
2800   { reuse GL_PROGRAM_INPUT }
2801   { reuse GL_PROGRAM_OUTPUT }
2802   { reuse GL_BUFFER_VARIABLE }
2803   { reuse GL_SHADER_STORAGE_BLOCK }
2804   { reuse GL_VERTEX_SUBROUTINE }
2805   { reuse GL_TESS_CONTROL_SUBROUTINE }
2806   { reuse GL_TESS_EVALUATION_SUBROUTINE }
2807   { reuse GL_GEOMETRY_SUBROUTINE }
2808   { reuse GL_FRAGMENT_SUBROUTINE }
2809   { reuse GL_COMPUTE_SUBROUTINE }
2810   { reuse GL_VERTEX_SUBROUTINE_UNIFORM }
2811   { reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM }
2812   { reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM }
2813   { reuse GL_GEOMETRY_SUBROUTINE_UNIFORM }
2814   { reuse GL_FRAGMENT_SUBROUTINE_UNIFORM }
2815   { reuse GL_COMPUTE_SUBROUTINE_UNIFORM }
2816   { reuse GL_TRANSFORM_FEEDBACK_VARYING }
2817   { reuse GL_ACTIVE_RESOURCES }
2818   { reuse GL_MAX_NAME_LENGTH }
2819   { reuse GL_MAX_NUM_ACTIVE_VARIABLES }
2820   { reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES }
2821   { reuse GL_NAME_LENGTH }
2822   { reuse GL_TYPE }
2823   { reuse GL_ARRAY_SIZE }
2824   { reuse GL_OFFSET }
2825   { reuse GL_BLOCK_INDEX }
2826   { reuse GL_ARRAY_STRIDE }
2827   { reuse GL_MATRIX_STRIDE }
2828   { reuse GL_IS_ROW_MAJOR }
2829   { reuse GL_ATOMIC_COUNTER_BUFFER_INDEX }
2830   { reuse GL_BUFFER_BINDING }
2831   { reuse GL_BUFFER_DATA_SIZE }
2832   { reuse GL_NUM_ACTIVE_VARIABLES }
2833   { reuse GL_ACTIVE_VARIABLES }
2834   { reuse GL_REFERENCED_BY_VERTEX_SHADER }
2835   { reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER }
2836   { reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER }
2837   { reuse GL_REFERENCED_BY_GEOMETRY_SHADER }
2838   { reuse GL_REFERENCED_BY_FRAGMENT_SHADER }
2839   { reuse GL_REFERENCED_BY_COMPUTE_SHADER }
2840   { reuse GL_TOP_LEVEL_ARRAY_SIZE }
2841   { reuse GL_TOP_LEVEL_ARRAY_STRIDE }
2842   { reuse GL_LOCATION }
2843   { reuse GL_LOCATION_INDEX }
2844   { reuse GL_IS_PER_PATCH }
2845   { Reuse tokens from ARB_robust_buffer_access_behavior (none) }
2846   { Reuse tokens from ARB_shader_storage_buffer_object }
2847   { reuse GL_SHADER_STORAGE_BUFFER }
2848   { reuse GL_SHADER_STORAGE_BUFFER_BINDING }
2849   { reuse GL_SHADER_STORAGE_BUFFER_START }
2850   { reuse GL_SHADER_STORAGE_BUFFER_SIZE }
2851   { reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS }
2852   { reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS }
2853   { reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS }
2854   { reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS }
2855   { reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS }
2856   { reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS }
2857   { reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS }
2858   { reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS }
2859   { reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE }
2860   { reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT }
2861   { reuse GL_SHADER_STORAGE_BARRIER_BIT }
2862   { reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES }
2863   { Reuse tokens from ARB_stencil_texturing }
2864   { reuse GL_DEPTH_STENCIL_TEXTURE_MODE }
2865   { Reuse tokens from ARB_texture_buffer_range }
2866   { reuse GL_TEXTURE_BUFFER_OFFSET }
2867   { reuse GL_TEXTURE_BUFFER_SIZE }
2868   { reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT }
2869   { Reuse tokens from ARB_texture_query_levels (none) }
2870   { Reuse tokens from ARB_texture_storage_multisample (none) }
2871   { Reuse tokens from ARB_texture_view }
2872   { reuse GL_TEXTURE_VIEW_MIN_LEVEL }
2873   { reuse GL_TEXTURE_VIEW_NUM_LEVELS }
2874   { reuse GL_TEXTURE_VIEW_MIN_LAYER }
2875   { reuse GL_TEXTURE_VIEW_NUM_LAYERS }
2876   { reuse GL_TEXTURE_IMMUTABLE_LEVELS }
2877   { Reuse tokens from ARB_vertex_attrib_binding }
2878   { reuse GL_VERTEX_ATTRIB_BINDING }
2879   { reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET }
2880   { reuse GL_VERTEX_BINDING_DIVISOR }
2881   { reuse GL_VERTEX_BINDING_OFFSET }
2882   { reuse GL_VERTEX_BINDING_STRIDE }
2883   { reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET }
2884   { reuse GL_MAX_VERTEX_ATTRIB_BINDINGS }
2885
2886
2887   // GL_3DFX_multisample
2888   GL_MULTISAMPLE_3DFX = $86B2;
2889   GL_SAMPLE_BUFFERS_3DFX = $86B3;
2890   GL_SAMPLES_3DFX = $86B4;
2891   GL_MULTISAMPLE_BIT_3DFX = $20000000;
2892
2893   // GL_3DFX_texture_compression_FXT1
2894   GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
2895   GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
2896
2897   // GL_APPLE_client_storage
2898   GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
2899
2900   // GL_APPLE_element_array
2901   GL_ELEMENT_ARRAY_APPLE = $8A0C;
2902   GL_ELEMENT_ARRAY_TYPE_APPLE = $8A0D;
2903   GL_ELEMENT_ARRAY_POINTER_APPLE = $8A0E;
2904
2905   // GL_APPLE_fence
2906   GL_DRAW_PIXELS_APPLE = $8A0A;
2907   GL_FENCE_APPLE = $8A0B;
2908
2909   // GL_APPLE_specular_vector
2910   GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
2911
2912   // GL_APPLE_transform_hint
2913   GL_TRANSFORM_HINT_APPLE = $85B1;
2914
2915   // GL_APPLE_vertex_array_object
2916   GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
2917
2918   // GL_APPLE_vertex_array_range
2919   GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
2920   GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
2921   GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
2922   GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
2923   GL_STORAGE_CLIENT_APPLE = $85B4;
2924   GL_STORAGE_CACHED_APPLE = $85BE;
2925   GL_STORAGE_SHARED_APPLE = $85BF;
2926
2927   // GL_APPLE_ycbcr_422
2928   GL_YCBCR_422_APPLE = $85B9;
2929   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
2930   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
2931   GL_RGB_RAW_422_APPLE = $8A51;
2932
2933   // GL_APPLE_texture_range
2934   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
2935   GL_TEXTURE_RANGE_POINTER_APPLE = $85B8;
2936   GL_TEXTURE_STORAGE_HINT_APPLE = $85BC;
2937   GL_STORAGE_PRIVATE_APPLE = $85BD;
2938   { reuse GL_STORAGE_CACHED_APPLE }
2939   { reuse GL_STORAGE_SHARED_APPLE }
2940
2941   // GL_APPLE_float_pixels
2942   GL_HALF_APPLE = $140B;
2943   GL_RGBA_FLOAT32_APPLE = $8814;
2944   GL_RGB_FLOAT32_APPLE = $8815;
2945   GL_ALPHA_FLOAT32_APPLE = $8816;
2946   GL_INTENSITY_FLOAT32_APPLE = $8817;
2947   GL_LUMINANCE_FLOAT32_APPLE = $8818;
2948   GL_LUMINANCE_ALPHA_FLOAT32_APPLE = $8819;
2949   GL_RGBA_FLOAT16_APPLE = $881A;
2950   GL_RGB_FLOAT16_APPLE = $881B;
2951   GL_ALPHA_FLOAT16_APPLE = $881C;
2952   GL_INTENSITY_FLOAT16_APPLE = $881D;
2953   GL_LUMINANCE_FLOAT16_APPLE = $881E;
2954   GL_LUMINANCE_ALPHA_FLOAT16_APPLE = $881F;
2955   GL_COLOR_FLOAT_APPLE = $8A0F;
2956
2957   // GL_APPLE_vertex_program_evaluators
2958   GL_VERTEX_ATTRIB_MAP1_APPLE = $8A00;
2959   GL_VERTEX_ATTRIB_MAP2_APPLE = $8A01;
2960   GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = $8A02;
2961   GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = $8A03;
2962   GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = $8A04;
2963   GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = $8A05;
2964   GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = $8A06;
2965   GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = $8A07;
2966   GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = $8A08;
2967   GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = $8A09;
2968
2969   // GL_APPLE_aux_depth_stencil
2970   GL_AUX_DEPTH_STENCIL_APPLE = $8A14;
2971
2972   // GL_APPLE_object_purgeable
2973   GL_BUFFER_OBJECT_APPLE = $85B3;
2974   GL_RELEASED_APPLE = $8A19;
2975   GL_VOLATILE_APPLE = $8A1A;
2976   GL_RETAINED_APPLE = $8A1B;
2977   GL_UNDEFINED_APPLE = $8A1C;
2978   GL_PURGEABLE_APPLE = $8A1D;
2979
2980   // GL_APPLE_row_bytes
2981   GL_PACK_ROW_BYTES_APPLE = $8A15;
2982   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
2983
2984   // GL_APPLE_rgb_422
2985   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
2986   { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }
2987
2988   // GL_ARB_depth_texture
2989   GL_DEPTH_COMPONENT16_ARB = $81A5;
2990   GL_DEPTH_COMPONENT24_ARB = $81A6;
2991   GL_DEPTH_COMPONENT32_ARB = $81A7;
2992   GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
2993   GL_DEPTH_TEXTURE_MODE_ARB = $884B;
2994
2995   // GL_ARB_fragment_program
2996   GL_FRAGMENT_PROGRAM_ARB = $8804;
2997   GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
2998   GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
2999   GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
3000   GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
3001   GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
3002   GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
3003   GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
3004   GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
3005   GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
3006   GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
3007   GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
3008   GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
3009   GL_MAX_TEXTURE_COORDS_ARB = $8871;
3010   GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
3011
3012   // GL_ARB_imaging
3013   GL_CONSTANT_COLOR_ARB = $8001;
3014   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3015   GL_CONSTANT_ALPHA = $8003;
3016   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3017   GL_BLEND_COLOR = $8005;
3018   GL_FUNC_ADD = $8006;
3019   GL_MIN = $8007;
3020   GL_MAX = $8008;
3021   GL_BLEND_EQUATION = $8009;
3022   GL_FUNC_SUBTRACT = $800A;
3023   GL_FUNC_REVERSE_SUBTRACT = $800B;
3024 {$ifdef DGL_DEPRECATED}
3025   GL_CONVOLUTION_1D = $8010;
3026   GL_CONVOLUTION_2D = $8011;
3027   GL_SEPARABLE_2D = $8012;
3028   GL_CONVOLUTION_BORDER_MODE = $8013;
3029   GL_CONVOLUTION_FILTER_SCALE = $8014;
3030   GL_CONVOLUTION_FILTER_BIAS = $8015;
3031   GL_REDUCE = $8016;
3032   GL_CONVOLUTION_FORMAT = $8017;
3033   GL_CONVOLUTION_WIDTH = $8018;
3034   GL_CONVOLUTION_HEIGHT = $8019;
3035   GL_MAX_CONVOLUTION_WIDTH = $801A;
3036   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3037   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3038   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3039   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3040   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3041   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3042   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3043   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3044   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3045   GL_HISTOGRAM = $8024;
3046   GL_PROXY_HISTOGRAM = $8025;
3047   GL_HISTOGRAM_WIDTH = $8026;
3048   GL_HISTOGRAM_FORMAT = $8027;
3049   GL_HISTOGRAM_RED_SIZE = $8028;
3050   GL_HISTOGRAM_GREEN_SIZE = $8029;
3051   GL_HISTOGRAM_BLUE_SIZE = $802A;
3052   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3053   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3054   GL_HISTOGRAM_SINK = $802D;
3055   GL_MINMAX = $802E;
3056   GL_MINMAX_FORMAT = $802F;
3057   GL_MINMAX_SINK = $8030;
3058   GL_TABLE_TOO_LARGE = $8031;
3059   GL_COLOR_MATRIX = $80B1;
3060   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3061   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3062   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3063   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3064   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3065   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3066   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3067   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3068   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3069   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3070   GL_COLOR_TABLE = $80D0;
3071   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3072   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3073   GL_PROXY_COLOR_TABLE = $80D3;
3074   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3075   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3076   GL_COLOR_TABLE_SCALE = $80D6;
3077   GL_COLOR_TABLE_BIAS = $80D7;
3078   GL_COLOR_TABLE_FORMAT = $80D8;
3079   GL_COLOR_TABLE_WIDTH = $80D9;
3080   GL_COLOR_TABLE_RED_SIZE = $80DA;
3081   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3082   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3083   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3084   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3085   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3086   GL_CONSTANT_BORDER = $8151;
3087   GL_REPLICATE_BORDER = $8153;
3088   GL_CONVOLUTION_BORDER_COLOR = $8154;
3089 {$endif}
3090
3091   // GL_ARB_matrix_palette
3092   GL_MATRIX_PALETTE_ARB = $8840;
3093   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3094   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3095   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3096   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3097   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3098   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3099   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3100   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3101   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3102
3103   // GL_ARB_multisample
3104   GL_MULTISAMPLE_ARB = $809D;
3105   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3106   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3107   GL_SAMPLE_COVERAGE_ARB = $80A0;
3108   GL_SAMPLE_BUFFERS_ARB = $80A8;
3109   GL_SAMPLES_ARB = $80A9;
3110   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3111   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3112   GL_MULTISAMPLE_BIT_ARB = $20000000;
3113
3114   // GL_ARB_multitexture
3115   GL_TEXTURE0_ARB = $84C0;
3116   GL_TEXTURE1_ARB = $84C1;
3117   GL_TEXTURE2_ARB = $84C2;
3118   GL_TEXTURE3_ARB = $84C3;
3119   GL_TEXTURE4_ARB = $84C4;
3120   GL_TEXTURE5_ARB = $84C5;
3121   GL_TEXTURE6_ARB = $84C6;
3122   GL_TEXTURE7_ARB = $84C7;
3123   GL_TEXTURE8_ARB = $84C8;
3124   GL_TEXTURE9_ARB = $84C9;
3125   GL_TEXTURE10_ARB = $84CA;
3126   GL_TEXTURE11_ARB = $84CB;
3127   GL_TEXTURE12_ARB = $84CC;
3128   GL_TEXTURE13_ARB = $84CD;
3129   GL_TEXTURE14_ARB = $84CE;
3130   GL_TEXTURE15_ARB = $84CF;
3131   GL_TEXTURE16_ARB = $84D0;
3132   GL_TEXTURE17_ARB = $84D1;
3133   GL_TEXTURE18_ARB = $84D2;
3134   GL_TEXTURE19_ARB = $84D3;
3135   GL_TEXTURE20_ARB = $84D4;
3136   GL_TEXTURE21_ARB = $84D5;
3137   GL_TEXTURE22_ARB = $84D6;
3138   GL_TEXTURE23_ARB = $84D7;
3139   GL_TEXTURE24_ARB = $84D8;
3140   GL_TEXTURE25_ARB = $84D9;
3141   GL_TEXTURE26_ARB = $84DA;
3142   GL_TEXTURE27_ARB = $84DB;
3143   GL_TEXTURE28_ARB = $84DC;
3144   GL_TEXTURE29_ARB = $84DD;
3145   GL_TEXTURE30_ARB = $84DE;
3146   GL_TEXTURE31_ARB = $84DF;
3147   GL_ACTIVE_TEXTURE_ARB = $84E0;
3148   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3149   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3150
3151   // GL_ARB_point_parameters
3152   GL_POINT_SIZE_MIN_ARB = $8126;
3153   GL_POINT_SIZE_MAX_ARB = $8127;
3154   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3155   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3156
3157   // GL_ARB_shadow
3158   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3159   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3160   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3161
3162   // GL_ARB_shadow_ambient
3163   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3164
3165   // GL_ARB_sparse_buffer
3166   GL_SPARSE_STORAGE_BIT_ARB = $0400;
3167   GL_SPARSE_BUFFER_PAGE_SIZE_ARB = $82F8;
3168
3169   // GL_ARB_texture_border_clamp
3170   GL_CLAMP_TO_BORDER_ARB = $812D;
3171
3172   // GL_ARB_texture_compression
3173   GL_COMPRESSED_ALPHA_ARB = $84E9;
3174   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3175   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3176   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3177   GL_COMPRESSED_RGB_ARB = $84ED;
3178   GL_COMPRESSED_RGBA_ARB = $84EE;
3179   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3180   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3181   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3182   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3183   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3184
3185   // GL_ARB_texture_cube_map
3186   GL_NORMAL_MAP_ARB = $8511;
3187   GL_REFLECTION_MAP_ARB = $8512;
3188   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3189   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3190   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3191   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3192   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3193   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3194   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3195   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3196   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3197   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3198
3199   // GL_ARB_texture_env_combine
3200   GL_COMBINE_ARB = $8570;
3201   GL_COMBINE_RGB_ARB = $8571;
3202   GL_COMBINE_ALPHA_ARB = $8572;
3203   GL_SOURCE0_RGB_ARB = $8580;
3204   GL_SOURCE1_RGB_ARB = $8581;
3205   GL_SOURCE2_RGB_ARB = $8582;
3206   GL_SOURCE0_ALPHA_ARB = $8588;
3207   GL_SOURCE1_ALPHA_ARB = $8589;
3208   GL_SOURCE2_ALPHA_ARB = $858A;
3209   GL_OPERAND0_RGB_ARB = $8590;
3210   GL_OPERAND1_RGB_ARB = $8591;
3211   GL_OPERAND2_RGB_ARB = $8592;
3212   GL_OPERAND0_ALPHA_ARB = $8598;
3213   GL_OPERAND1_ALPHA_ARB = $8599;
3214   GL_OPERAND2_ALPHA_ARB = $859A;
3215   GL_RGB_SCALE_ARB = $8573;
3216   GL_ADD_SIGNED_ARB = $8574;
3217   GL_INTERPOLATE_ARB = $8575;
3218   GL_SUBTRACT_ARB = $84E7;
3219   GL_CONSTANT_ARB = $8576;
3220   GL_PRIMARY_COLOR_ARB = $8577;
3221   GL_PREVIOUS_ARB = $8578;
3222
3223   // GL_ARB_texture_env_dot3
3224   GL_DOT3_RGB_ARB = $86AE;
3225   GL_DOT3_RGBA_ARB = $86AF;
3226
3227   // GL_ARB_texture_mirrored_repeat
3228   GL_MIRRORED_REPEAT_ARB = $8370;
3229
3230   // GL_ARB_transpose_matrix
3231   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3232   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3233   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3234   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3235
3236   // GL_ARB_vertex_blend
3237   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3238   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3239   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3240   GL_VERTEX_BLEND_ARB = $86A7;
3241   GL_CURRENT_WEIGHT_ARB = $86A8;
3242   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3243   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3244   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3245   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3246   GL_WEIGHT_ARRAY_ARB = $86AD;
3247   GL_MODELVIEW0_ARB = $1700;
3248   GL_MODELVIEW1_ARB = $850A;
3249   GL_MODELVIEW2_ARB = $8722;
3250   GL_MODELVIEW3_ARB = $8723;
3251   GL_MODELVIEW4_ARB = $8724;
3252   GL_MODELVIEW5_ARB = $8725;
3253   GL_MODELVIEW6_ARB = $8726;
3254   GL_MODELVIEW7_ARB = $8727;
3255   GL_MODELVIEW8_ARB = $8728;
3256   GL_MODELVIEW9_ARB = $8729;
3257   GL_MODELVIEW10_ARB = $872A;
3258   GL_MODELVIEW11_ARB = $872B;
3259   GL_MODELVIEW12_ARB = $872C;
3260   GL_MODELVIEW13_ARB = $872D;
3261   GL_MODELVIEW14_ARB = $872E;
3262   GL_MODELVIEW15_ARB = $872F;
3263   GL_MODELVIEW16_ARB = $8730;
3264   GL_MODELVIEW17_ARB = $8731;
3265   GL_MODELVIEW18_ARB = $8732;
3266   GL_MODELVIEW19_ARB = $8733;
3267   GL_MODELVIEW20_ARB = $8734;
3268   GL_MODELVIEW21_ARB = $8735;
3269   GL_MODELVIEW22_ARB = $8736;
3270   GL_MODELVIEW23_ARB = $8737;
3271   GL_MODELVIEW24_ARB = $8738;
3272   GL_MODELVIEW25_ARB = $8739;
3273   GL_MODELVIEW26_ARB = $873A;
3274   GL_MODELVIEW27_ARB = $873B;
3275   GL_MODELVIEW28_ARB = $873C;
3276   GL_MODELVIEW29_ARB = $873D;
3277   GL_MODELVIEW30_ARB = $873E;
3278   GL_MODELVIEW31_ARB = $873F;
3279
3280   // GL_ARB_vertex_buffer_object
3281   GL_BUFFER_SIZE_ARB = $8764;
3282   GL_BUFFER_USAGE_ARB = $8765;
3283   GL_ARRAY_BUFFER_ARB = $8892;
3284   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3285   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3286   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3287   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3288   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3289   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3290   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3291   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3292   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3293   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3294   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3295   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3296   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3297   GL_READ_ONLY_ARB = $88B8;
3298   GL_WRITE_ONLY_ARB = $88B9;
3299   GL_READ_WRITE_ARB = $88BA;
3300   GL_BUFFER_ACCESS_ARB = $88BB;
3301   GL_BUFFER_MAPPED_ARB = $88BC;
3302   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3303   GL_STREAM_DRAW_ARB = $88E0;
3304   GL_STREAM_READ_ARB = $88E1;
3305   GL_STREAM_COPY_ARB = $88E2;
3306   GL_STATIC_DRAW_ARB = $88E4;
3307   GL_STATIC_READ_ARB = $88E5;
3308   GL_STATIC_COPY_ARB = $88E6;
3309   GL_DYNAMIC_DRAW_ARB = $88E8;
3310   GL_DYNAMIC_READ_ARB = $88E9;
3311   GL_DYNAMIC_COPY_ARB = $88EA;
3312
3313   // GL_ARB_vertex_program
3314   GL_COLOR_SUM_ARB = $8458;
3315   GL_VERTEX_PROGRAM_ARB = $8620;
3316   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3317   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3318   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3319   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3320   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3321   GL_PROGRAM_LENGTH_ARB = $8627;
3322   GL_PROGRAM_STRING_ARB = $8628;
3323   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3324   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3325   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3326   GL_CURRENT_MATRIX_ARB = $8641;
3327   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3328   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3329   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3330   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3331   GL_PROGRAM_BINDING_ARB = $8677;
3332   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3333   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3334   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3335   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3336   GL_PROGRAM_FORMAT_ARB = $8876;
3337   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3338   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3339   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3340   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3341   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3342   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3343   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3344   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3345   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3346   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3347   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3348   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3349   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3350   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3351   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3352   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3353   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3354   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3355   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3356   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3357   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3358   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3359   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3360   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3361   GL_MATRIX0_ARB = $88C0;
3362   GL_MATRIX1_ARB = $88C1;
3363   GL_MATRIX2_ARB = $88C2;
3364   GL_MATRIX3_ARB = $88C3;
3365   GL_MATRIX4_ARB = $88C4;
3366   GL_MATRIX5_ARB = $88C5;
3367   GL_MATRIX6_ARB = $88C6;
3368   GL_MATRIX7_ARB = $88C7;
3369   GL_MATRIX8_ARB = $88C8;
3370   GL_MATRIX9_ARB = $88C9;
3371   GL_MATRIX10_ARB = $88CA;
3372   GL_MATRIX11_ARB = $88CB;
3373   GL_MATRIX12_ARB = $88CC;
3374   GL_MATRIX13_ARB = $88CD;
3375   GL_MATRIX14_ARB = $88CE;
3376   GL_MATRIX15_ARB = $88CF;
3377   GL_MATRIX16_ARB = $88D0;
3378   GL_MATRIX17_ARB = $88D1;
3379   GL_MATRIX18_ARB = $88D2;
3380   GL_MATRIX19_ARB = $88D3;
3381   GL_MATRIX20_ARB = $88D4;
3382   GL_MATRIX21_ARB = $88D5;
3383   GL_MATRIX22_ARB = $88D6;
3384   GL_MATRIX23_ARB = $88D7;
3385   GL_MATRIX24_ARB = $88D8;
3386   GL_MATRIX25_ARB = $88D9;
3387   GL_MATRIX26_ARB = $88DA;
3388   GL_MATRIX27_ARB = $88DB;
3389   GL_MATRIX28_ARB = $88DC;
3390   GL_MATRIX29_ARB = $88DD;
3391   GL_MATRIX30_ARB = $88DE;
3392   GL_MATRIX31_ARB = $88DF;
3393
3394   // GL_ARB_draw_buffers
3395   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3396   GL_DRAW_BUFFER0_ARB = $8825;
3397   GL_DRAW_BUFFER1_ARB = $8826;
3398   GL_DRAW_BUFFER2_ARB = $8827;
3399   GL_DRAW_BUFFER3_ARB = $8828;
3400   GL_DRAW_BUFFER4_ARB = $8829;
3401   GL_DRAW_BUFFER5_ARB = $882A;
3402   GL_DRAW_BUFFER6_ARB = $882B;
3403   GL_DRAW_BUFFER7_ARB = $882C;
3404   GL_DRAW_BUFFER8_ARB = $882D;
3405   GL_DRAW_BUFFER9_ARB = $882E;
3406   GL_DRAW_BUFFER10_ARB = $882F;
3407   GL_DRAW_BUFFER11_ARB = $8830;
3408   GL_DRAW_BUFFER12_ARB = $8831;
3409   GL_DRAW_BUFFER13_ARB = $8832;
3410   GL_DRAW_BUFFER14_ARB = $8833;
3411   GL_DRAW_BUFFER15_ARB = $8834;
3412
3413   // GL_ARB_texture_rectangle
3414   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3415   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3416   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3417   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3418
3419   // GL_ARB_color_buffer_float
3420   GL_RGBA_FLOAT_MODE_ARB = $8820;
3421   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3422   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3423   GL_CLAMP_READ_COLOR_ARB = $891C;
3424   GL_FIXED_ONLY_ARB = $891D;
3425   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3426   GLX_RGBA_FLOAT_TYPE = $20B9;
3427   GLX_RGBA_FLOAT_BIT = $00000004;
3428
3429   // GL_ARB_compute_variable_group_size
3430   GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = $9344;
3431   GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = $90EB;
3432   GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = $9345;
3433   GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = $91BF;
3434
3435   // GL_ARB_half_float_pixel
3436   GL_HALF_FLOAT_ARB = $140B;
3437
3438   // GL_ARB_texture_float
3439   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3440   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3441   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3442   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3443   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3444   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3445   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3446   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3447   GL_RGBA32F_ARB = $8814;
3448   GL_RGB32F_ARB = $8815;
3449   GL_ALPHA32F_ARB = $8816;
3450   GL_INTENSITY32F_ARB = $8817;
3451   GL_LUMINANCE32F_ARB = $8818;
3452   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3453   GL_RGBA16F_ARB = $881A;
3454   GL_RGB16F_ARB = $881B;
3455   GL_ALPHA16F_ARB = $881C;
3456   GL_INTENSITY16F_ARB = $881D;
3457   GL_LUMINANCE16F_ARB = $881E;
3458   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3459
3460   // GL_ARB_pixel_buffer_object
3461   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3462   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3463   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3464   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3465
3466   // GL_ARB_depth_buffer_float
3467   GL_DEPTH_COMPONENT32F = $8CAC;
3468   GL_DEPTH32F_STENCIL8 = $8CAD;
3469   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3470
3471   // GL_ARB_framebuffer_object
3472   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3473   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3474   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3475   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3476   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3477   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3478   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3479   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3480   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3481   GL_FRAMEBUFFER_DEFAULT = $8218;
3482   GL_FRAMEBUFFER_UNDEFINED = $8219;
3483   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3484   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3485   GL_DEPTH_STENCIL = $84F9;
3486   GL_UNSIGNED_INT_24_8 = $84FA;
3487   GL_DEPTH24_STENCIL8 = $88F0;
3488   GL_TEXTURE_STENCIL_SIZE = $88F1;
3489   GL_TEXTURE_RED_TYPE = $8C10;
3490   GL_TEXTURE_GREEN_TYPE = $8C11;
3491   GL_TEXTURE_BLUE_TYPE = $8C12;
3492   GL_TEXTURE_ALPHA_TYPE = $8C13;
3493   GL_TEXTURE_DEPTH_TYPE = $8C16;
3494   GL_UNSIGNED_NORMALIZED = $8C17;
3495   GL_FRAMEBUFFER_BINDING = $8CA6;
3496   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3497   GL_RENDERBUFFER_BINDING = $8CA7;
3498   GL_READ_FRAMEBUFFER = $8CA8;
3499   GL_DRAW_FRAMEBUFFER = $8CA9;
3500   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3501   GL_RENDERBUFFER_SAMPLES = $8CAB;
3502   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3503   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3504   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3505   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3506   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3507   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3508   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3509   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3510   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3511   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3512   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3513   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3514   GL_COLOR_ATTACHMENT0 = $8CE0;
3515   GL_COLOR_ATTACHMENT1 = $8CE1;
3516   GL_COLOR_ATTACHMENT2 = $8CE2;
3517   GL_COLOR_ATTACHMENT3 = $8CE3;
3518   GL_COLOR_ATTACHMENT4 = $8CE4;
3519   GL_COLOR_ATTACHMENT5 = $8CE5;
3520   GL_COLOR_ATTACHMENT6 = $8CE6;
3521   GL_COLOR_ATTACHMENT7 = $8CE7;
3522   GL_COLOR_ATTACHMENT8 = $8CE8;
3523   GL_COLOR_ATTACHMENT9 = $8CE9;
3524   GL_COLOR_ATTACHMENT10 = $8CEA;
3525   GL_COLOR_ATTACHMENT11 = $8CEB;
3526   GL_COLOR_ATTACHMENT12 = $8CEC;
3527   GL_COLOR_ATTACHMENT13 = $8CED;
3528   GL_COLOR_ATTACHMENT14 = $8CEE;
3529   GL_COLOR_ATTACHMENT15 = $8CEF;
3530   GL_DEPTH_ATTACHMENT = $8D00;
3531   GL_STENCIL_ATTACHMENT = $8D20;
3532   GL_FRAMEBUFFER = $8D40;
3533   GL_RENDERBUFFER = $8D41;
3534   GL_RENDERBUFFER_WIDTH = $8D42;
3535   GL_RENDERBUFFER_HEIGHT = $8D43;
3536   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3537   GL_STENCIL_INDEX1 = $8D46;
3538   GL_STENCIL_INDEX4 = $8D47;
3539   GL_STENCIL_INDEX8 = $8D48;
3540   GL_STENCIL_INDEX16 = $8D49;
3541   GL_RENDERBUFFER_RED_SIZE = $8D50;
3542   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3543   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3544   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3545   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3546   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3547   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3548   GL_MAX_SAMPLES = $8D57;
3549 {$ifdef DGL_DEPRECATED}
3550   GL_INDEX = $8222;
3551   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3552   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3553 {$endif}
3554
3555   // GL_ARB_framebuffer_sRGB
3556   GL_FRAMEBUFFER_SRGB = $8DB9;
3557
3558   // GL_ARB_geometry_shader4
3559   GL_LINES_ADJACENCY_ARB = $000A;
3560   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3561   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3562   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3563   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3564   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3565   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3566   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3567   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3568   GL_GEOMETRY_SHADER_ARB = $8DD9;
3569   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3570   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3571   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3572   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3573   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3574   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3575   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3576   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3577   { reuse GL_MAX_VARYING_COMPONENTS }
3578   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3579
3580   // GL_ARB_half_float_vertex
3581   GL_HALF_FLOAT = $140B;
3582
3583   // GL_ARB_instanced_arrays
3584   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3585
3586   // GL_ARB_map_buffer_range
3587   GL_MAP_READ_BIT = $0001;
3588   GL_MAP_WRITE_BIT = $0002;
3589   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3590   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3591   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3592   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3593
3594   // GL_ARB_texture_buffer_object
3595   GL_TEXTURE_BUFFER_ARB = $8C2A;
3596   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3597   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3598   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3599   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3600
3601   // GL_ARB_texture_compression_rgtc
3602   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3603   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3604   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3605   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3606
3607   // GL_ARB_texture_rg
3608   GL_RG = $8227;
3609   GL_RG_INTEGER = $8228;
3610   GL_R8 = $8229;
3611   GL_R16 = $822A;
3612   GL_RG8 = $822B;
3613   GL_RG16 = $822C;
3614   GL_R16F = $822D;
3615   GL_R32F = $822E;
3616   GL_RG16F = $822F;
3617   GL_RG32F = $8230;
3618   GL_R8I = $8231;
3619   GL_R8UI = $8232;
3620   GL_R16I = $8233;
3621   GL_R16UI = $8234;
3622   GL_R32I = $8235;
3623   GL_R32UI = $8236;
3624   GL_RG8I = $8237;
3625   GL_RG8UI = $8238;
3626   GL_RG16I = $8239;
3627   GL_RG16UI = $823A;
3628   GL_RG32I = $823B;
3629   GL_RG32UI = $823C;
3630
3631   // GL_ARB_vertex_array_object
3632   GL_VERTEX_ARRAY_BINDING = $85B5;
3633
3634   // GL_ARB_uniform_buffer_object
3635   GL_UNIFORM_BUFFER = $8A11;
3636   GL_UNIFORM_BUFFER_BINDING = $8A28;
3637   GL_UNIFORM_BUFFER_START = $8A29;
3638   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3639   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3640   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3641   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3642   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3643   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3644   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3645   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3646   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3647   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3648   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3649   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3650   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3651   GL_UNIFORM_TYPE = $8A37;
3652   GL_UNIFORM_SIZE = $8A38;
3653   GL_UNIFORM_NAME_LENGTH = $8A39;
3654   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3655   GL_UNIFORM_OFFSET = $8A3B;
3656   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3657   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3658   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3659   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3660   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3661   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3662   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
3663   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
3664   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
3665   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
3666   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
3667   GL_INVALID_INDEX = $FFFFFFFF;
3668
3669   // GL_ARB_compatibility
3670   { ARB_compatibility just defines tokens from core 3.0 }
3671
3672   // GL_ARB_copy_buffer
3673   GL_COPY_READ_BUFFER_BINDING = $8F36;
3674   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
3675   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
3676   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
3677
3678   // GL_ARB_depth_clamp
3679   GL_DEPTH_CLAMP = $864F;
3680
3681   // GL_ARB_provoking_vertex
3682   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
3683   GL_FIRST_VERTEX_CONVENTION = $8E4D;
3684   GL_LAST_VERTEX_CONVENTION = $8E4E;
3685   GL_PROVOKING_VERTEX = $8E4F;
3686
3687   // GL_ARB_seamless_cube_map
3688   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
3689
3690   // GL_ARB_sync
3691   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
3692   GL_OBJECT_TYPE = $9112;
3693   GL_SYNC_CONDITION = $9113;
3694   GL_SYNC_STATUS = $9114;
3695   GL_SYNC_FLAGS = $9115;
3696   GL_SYNC_FENCE = $9116;
3697   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
3698   GL_UNSIGNALED = $9118;
3699   GL_SIGNALED = $9119;
3700   GL_ALREADY_SIGNALED = $911A;
3701   GL_TIMEOUT_EXPIRED = $911B;
3702   GL_CONDITION_SATISFIED = $911C;
3703   GL_WAIT_FAILED = $911D;
3704   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
3705   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
3706
3707   // GL_ARB_texture_multisample
3708   GL_SAMPLE_POSITION = $8E50;
3709   GL_SAMPLE_MASK = $8E51;
3710   GL_SAMPLE_MASK_VALUE = $8E52;
3711   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
3712   GL_TEXTURE_2D_MULTISAMPLE = $9100;
3713   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
3714   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
3715   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
3716   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
3717   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
3718   GL_TEXTURE_SAMPLES = $9106;
3719   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
3720   GL_SAMPLER_2D_MULTISAMPLE = $9108;
3721   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
3722   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
3723   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
3724   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
3725   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
3726   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
3727   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
3728   GL_MAX_INTEGER_SAMPLES = $9110;
3729
3730   // GL_ARB_vertex_array_bgra
3731   { reuse GL_BGRA }
3732
3733   // GL_ARB_sample_shading
3734   GL_SAMPLE_SHADING_ARB = $8C36;
3735   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
3736
3737   // GL_ARB_texture_cube_map_array
3738   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
3739   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
3740   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
3741   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
3742   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
3743   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
3744   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
3745
3746   // GL_ARB_texture_gather
3747   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
3748   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
3749
3750   // GL_ARB_shading_language_include
3751   GL_SHADER_INCLUDE_ARB = $8DAE;
3752   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
3753   GL_NAMED_STRING_TYPE_ARB = $8DEA;
3754
3755   // GL_ARB_texture_compression_bptc
3756   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
3757   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
3758   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
3759   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
3760
3761   // GL_ARB_blend_func_extended
3762   GL_SRC1_COLOR = $88F9;
3763   { reuse GL_SRC1_ALPHA }
3764   GL_ONE_MINUS_SRC1_COLOR = $88FA;
3765   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
3766   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
3767
3768   // GL_ARB_occlusion_query2
3769   GL_ANY_SAMPLES_PASSED = $8C2F;
3770
3771   // GL_ARB_sampler_objects
3772   GL_SAMPLER_BINDING = $8919;
3773
3774   // GL_ARB_texture_rgb10_a2ui
3775   GL_RGB10_A2UI = $906F;
3776
3777   // GL_ARB_texture_swizzle
3778   GL_TEXTURE_SWIZZLE_R = $8E42;
3779   GL_TEXTURE_SWIZZLE_G = $8E43;
3780   GL_TEXTURE_SWIZZLE_B = $8E44;
3781   GL_TEXTURE_SWIZZLE_A = $8E45;
3782   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
3783
3784   // GL_ARB_SPARSE_TEXTURE
3785   GL_TEXTURE_SPARSE_ARB = $91A6;
3786   GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = $91A7;
3787   GL_NUM_VIRTUAL_PAGE_SIZES_ARB = $91A8;
3788   GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = $91A9;
3789   GL_NUM_SPARSE_LEVELS_ARB = $91AA;
3790   GL_VIRTUAL_PAGE_SIZE_X_ARB = $9195;
3791   GL_VIRTUAL_PAGE_SIZE_Y_ARB = $9196;
3792   GL_VIRTUAL_PAGE_SIZE_Z_ARB = $9197;
3793   GL_MAX_SPARSE_TEXTURE_SIZE_ARB = $9198;
3794   GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = $9199;
3795   GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = $919A;
3796   GL_MIN_SPARSE_LEVEL_ARB = $919B;
3797
3798   // GL_ARB_timer_query
3799   GL_TIME_ELAPSED = $88BF;
3800   GL_TIMESTAMP = $8E28;
3801
3802   // GL_ARB_vertex_type_2_10_10_10_rev
3803   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
3804   GL_INT_2_10_10_10_REV = $8D9F;
3805
3806   // GL_ARB_draw_indirect
3807   GL_DRAW_INDIRECT_BUFFER = $8F3F;
3808   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
3809
3810   // GL_ARB_gpu_shader5
3811   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
3812   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
3813   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
3814   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
3815   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
3816   { reuse GL_MAX_VERTEX_STREAMS }
3817
3818   // GL_ARB_gpu_shader_fp64
3819   { reuse GL_DOUBLE }
3820   GL_DOUBLE_VEC2 = $8FFC;
3821   GL_DOUBLE_VEC3 = $8FFD;
3822   GL_DOUBLE_VEC4 = $8FFE;
3823   GL_DOUBLE_MAT2 = $8F46;
3824   GL_DOUBLE_MAT3 = $8F47;
3825   GL_DOUBLE_MAT4 = $8F48;
3826   GL_DOUBLE_MAT2x3 = $8F49;
3827   GL_DOUBLE_MAT2x4 = $8F4A;
3828   GL_DOUBLE_MAT3x2 = $8F4B;
3829   GL_DOUBLE_MAT3x4 = $8F4C;
3830   GL_DOUBLE_MAT4x2 = $8F4D;
3831   GL_DOUBLE_MAT4x3 = $8F4E;
3832
3833   // GL_ARB_shader_subroutine
3834   GL_ACTIVE_SUBROUTINES = $8DE5;
3835   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
3836   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
3837   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
3838   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
3839   GL_MAX_SUBROUTINES = $8DE7;
3840   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
3841   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
3842   GL_COMPATIBLE_SUBROUTINES = $8E4B;
3843   { reuse GL_UNIFORM_SIZE }
3844   { reuse GL_UNIFORM_NAME_LENGTH }
3845
3846   // GL_ARB_tessellation_shader
3847   GL_PATCHES = $000E;
3848   GL_PATCH_VERTICES = $8E72;
3849   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
3850   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
3851   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
3852   GL_TESS_GEN_MODE = $8E76;
3853   GL_TESS_GEN_SPACING = $8E77;
3854   GL_TESS_GEN_VERTEX_ORDER = $8E78;
3855   GL_TESS_GEN_POINT_MODE = $8E79;
3856   { reuse GL_TRIANGLES }
3857   { reuse GL_QUADS }
3858   GL_ISOLINES = $8E7A;
3859   { reuse GL_EQUAL }
3860   GL_FRACTIONAL_ODD = $8E7B;
3861   GL_FRACTIONAL_EVEN = $8E7C;
3862   { reuse GL_CCW }
3863   { reuse GL_CW }
3864   GL_MAX_PATCH_VERTICES = $8E7D;
3865   GL_MAX_TESS_GEN_LEVEL = $8E7E;
3866   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
3867   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
3868   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
3869   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
3870   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
3871   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
3872   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
3873   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
3874   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
3875   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
3876   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
3877   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
3878   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
3879   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
3880   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
3881   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
3882   GL_TESS_EVALUATION_SHADER = $8E87;
3883   GL_TESS_CONTROL_SHADER = $8E88;
3884
3885   // GL_ARB_texture_buffer_object_rgb32
3886   { reuse GL_RGB32F }
3887   { reuse GL_RGB32UI }
3888   { reuse GL_RGB32I }
3889
3890   // GL_ARB_transform_feedback2
3891   GL_TRANSFORM_FEEDBACK = $8E22;
3892   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
3893   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
3894   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
3895   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
3896   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
3897
3898   // GL_ARB_transform_feedback_overflow_query
3899   GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = $82EC;
3900   GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = $82ED;
3901
3902   // GL_ARB_transform_feedback3
3903   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
3904   GL_MAX_VERTEX_STREAMS = $8E71;
3905
3906   // GL_ARB_ES2_compatibility
3907   GL_FIXED = $140C;
3908   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
3909   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
3910   GL_LOW_FLOAT = $8DF0;
3911   GL_MEDIUM_FLOAT = $8DF1;
3912   GL_HIGH_FLOAT = $8DF2;
3913   GL_LOW_INT = $8DF3;
3914   GL_MEDIUM_INT = $8DF4;
3915   GL_HIGH_INT = $8DF5;
3916   GL_SHADER_COMPILER = $8DFA;
3917   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
3918   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
3919   GL_MAX_VARYING_VECTORS = $8DFC;
3920   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
3921   GL_RGB565 = $8D62;
3922
3923   // GL_ARB_get_program_binary
3924   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
3925   GL_PROGRAM_BINARY_LENGTH = $8741;
3926   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
3927   GL_PROGRAM_BINARY_FORMATS = $87FF;
3928
3929   // GL_ARB_separate_shader_objects
3930   GL_VERTEX_SHADER_BIT = $00000001;
3931   GL_FRAGMENT_SHADER_BIT = $00000002;
3932   GL_GEOMETRY_SHADER_BIT = $00000004;
3933   GL_TESS_CONTROL_SHADER_BIT = $00000008;
3934   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
3935   GL_ALL_SHADER_BITS = $FFFFFFFF;
3936   GL_PROGRAM_SEPARABLE = $8258;
3937   GL_ACTIVE_PROGRAM = $8259;
3938   GL_PROGRAM_PIPELINE_BINDING = $825A;
3939
3940   // GL_ARB_vertex_attrib_64bit
3941   { reuse GL_RGB32I }
3942   { reuse GL_DOUBLE_VEC2 }
3943   { reuse GL_DOUBLE_VEC3 }
3944   { reuse GL_DOUBLE_VEC4 }
3945   { reuse GL_DOUBLE_MAT2 }
3946   { reuse GL_DOUBLE_MAT3 }
3947   { reuse GL_DOUBLE_MAT4 }
3948   { reuse GL_DOUBLE_MAT2x3 }
3949   { reuse GL_DOUBLE_MAT2x4 }
3950   { reuse GL_DOUBLE_MAT3x2 }
3951   { reuse GL_DOUBLE_MAT3x4 }
3952   { reuse GL_DOUBLE_MAT4x2 }
3953   { reuse GL_DOUBLE_MAT4x3 }
3954
3955   // GL_ARB_viewport_array
3956   { reuse GL_SCISSOR_BOX }
3957   { reuse GL_VIEWPORT }
3958   { reuse GL_DEPTH_RANGE }
3959   { reuse GL_SCISSOR_TEST }
3960   GL_MAX_VIEWPORTS = $825B;
3961   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
3962   GL_VIEWPORT_BOUNDS_RANGE = $825D;
3963   GL_LAYER_PROVOKING_VERTEX = $825E;
3964   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
3965   GL_UNDEFINED_VERTEX = $8260;
3966   { reuse GL_FIRST_VERTEX_CONVENTION }
3967   { reuse GL_LAST_VERTEX_CONVENTION }
3968   { reuse GL_PROVOKING_VERTEX }
3969
3970   // GL_ARB_cl_event
3971   GL_SYNC_CL_EVENT_ARB = $8240;
3972   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
3973
3974   // GL_ARB_debug_output
3975   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
3976   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
3977   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
3978   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
3979   GL_DEBUG_SOURCE_API_ARB = $8246;
3980   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
3981   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
3982   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
3983   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
3984   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
3985   GL_DEBUG_TYPE_ERROR_ARB = $824C;
3986   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
3987   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
3988   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
3989   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
3990   GL_DEBUG_TYPE_OTHER_ARB = $8251;
3991   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
3992   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
3993   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
3994   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
3995   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
3996   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
3997
3998   // GL_ARB_robustness
3999   { reuse GL_NO_ERROR }
4000   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
4001   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
4002   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
4003   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
4004   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
4005   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
4006   GL_NO_RESET_NOTIFICATION_ARB = $8261;
4007
4008   //  GL_ARB_compressed_texture_pixel_storage
4009   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4010   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4011   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4012   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4013   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4014   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4015   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4016   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4017
4018   // GL_ARB_internalformat_query
4019   GL_NUM_SAMPLE_COUNTS              = $09380;
4020
4021   // GL_ARB_map_buffer_alignment
4022   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4023
4024   // GL_ARB_shader_atomic_counters
4025   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4026   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4027   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4028   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4029   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4030   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4031   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4032   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4033   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4034   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4035   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4036   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4037   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4038   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4039   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4040   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4041   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4042   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4043   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4044   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4045   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4046   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4047   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4048   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4049   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4050   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4051   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4052   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4053   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4054
4055   // GL_ARB_shader_image_load_store
4056   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4057   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4058   GL_UNIFORM_BARRIER_BIT            = $00000004;
4059   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4060   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4061   GL_COMMAND_BARRIER_BIT            = $00000040;
4062   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4063   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4064   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4065   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4066   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4067   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4068   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4069   GL_MAX_IMAGE_UNITS                = $8F38;
4070   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4071   GL_IMAGE_BINDING_NAME             = $8F3A;
4072   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4073   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4074   GL_IMAGE_BINDING_LAYER            = $8F3D;
4075   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4076   GL_IMAGE_1D                       = $904C;
4077   GL_IMAGE_2D                       = $904D;
4078   GL_IMAGE_3D                       = $904E;
4079   GL_IMAGE_2D_RECT                  = $904F;
4080   GL_IMAGE_CUBE                     = $9050;
4081   GL_IMAGE_BUFFER                   = $9051;
4082   GL_IMAGE_1D_ARRAY                 = $9052;
4083   GL_IMAGE_2D_ARRAY                 = $9053;
4084   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4085   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4086   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4087   GL_INT_IMAGE_1D                   = $9057;
4088   GL_INT_IMAGE_2D                   = $9058;
4089   GL_INT_IMAGE_3D                   = $9059;
4090   GL_INT_IMAGE_2D_RECT              = $905A;
4091   GL_INT_IMAGE_CUBE                 = $905B;
4092   GL_INT_IMAGE_BUFFER               = $905C;
4093   GL_INT_IMAGE_1D_ARRAY             = $905D;
4094   GL_INT_IMAGE_2D_ARRAY             = $905E;
4095   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4096   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4097   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4098   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4099   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4100   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4101   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4102   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4103   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4104   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4105   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4106   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4107   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4108   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4109   GL_MAX_IMAGE_SAMPLES              = $906D;
4110   GL_IMAGE_BINDING_FORMAT           = $906E;
4111   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4112   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4113   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4114   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4115   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4116   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4117   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4118   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4119   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4120
4121   // GL_ARB_texture_storage
4122   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4123
4124   // 4.3
4125   // GL_KHR_texture_compression_astc_hdr
4126   GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4127   GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4128   GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4129   GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4130   GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4131   GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4132   GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4133   GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4134   GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4135   GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4136   GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4137   GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4138   GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4139   GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4140   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4141   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4142   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4143   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4144   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4145   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4146   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4147   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4148   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4149   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4150   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4151   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4152   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4153   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4154   // (4.3) GL_KHR_debug
4155   GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4156   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4157   GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4158   GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4159   GL_DEBUG_SOURCE_API               = $8246;
4160   GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4161   GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4162   GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4163   GL_DEBUG_SOURCE_APPLICATION       = $824A;
4164   GL_DEBUG_SOURCE_OTHER             = $824B;
4165   GL_DEBUG_TYPE_ERROR               = $824C;
4166   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4167   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4168   GL_DEBUG_TYPE_PORTABILITY         = $824F;
4169   GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4170   GL_DEBUG_TYPE_OTHER               = $8251;
4171   GL_DEBUG_TYPE_MARKER              = $8268;
4172   GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4173   GL_DEBUG_TYPE_POP_GROUP           = $826A;
4174   GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4175   GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4176   GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4177   GL_BUFFER                         = $82E0;
4178   GL_SHADER                         = $82E1;
4179   GL_PROGRAM                        = $82E2;
4180   GL_QUERY                          = $82E3;
4181   GL_PROGRAM_PIPELINE               = $82E4;
4182   GL_SAMPLER                        = $82E6;
4183   GL_DISPLAY_LIST                   = $82E7;
4184   GL_MAX_LABEL_LENGTH               = $82E8;
4185   GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4186   GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4187   GL_DEBUG_LOGGED_MESSAGES          = $9145;
4188   GL_DEBUG_SEVERITY_HIGH            = $9146;
4189   GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4190   GL_DEBUG_SEVERITY_LOW             = $9148;
4191   GL_DEBUG_OUTPUT                   = $92E0;
4192   GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4193   GL_COMPUTE_SHADER                 = $91B9;
4194   GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4195   GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4196   GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4197   GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4198   GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4199   GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4200   GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4201   GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4202   GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4203   GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4204   GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4205   GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4206   GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4207   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4208   GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4209   GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4210   GL_COMPUTE_SHADER_BIT             = $00000020;
4211   GL_COMPRESSED_RGB8_ETC2           = $9274;
4212   GL_COMPRESSED_SRGB8_ETC2          = $9275;
4213   GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4214   GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4215   GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4216   GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4217   GL_COMPRESSED_R11_EAC             = $9270;
4218   GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4219   GL_COMPRESSED_RG11_EAC            = $9272;
4220   GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4221   GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4222   GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4223   GL_MAX_ELEMENT_INDEX              = $8D6B;
4224       GL_MAX_UNIFORM_LOCATIONS          = $826E;
4225   GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4226   GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4227   GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4228   GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4229   GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4230   GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4231   GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4232   GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4233   GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4234         GL_INTERNALFORMAT_SUPPORTED       = $826F;
4235   GL_INTERNALFORMAT_PREFERRED       = $8270;
4236   GL_INTERNALFORMAT_RED_SIZE        = $8271;
4237   GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4238   GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4239   GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4240   GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4241   GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4242   GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4243   GL_INTERNALFORMAT_RED_TYPE        = $8278;
4244   GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4245   GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4246   GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4247   GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4248   GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4249   GL_MAX_WIDTH                      = $827E;
4250   GL_MAX_HEIGHT                     = $827F;
4251   GL_MAX_DEPTH                      = $8280;
4252   GL_MAX_LAYERS                     = $8281;
4253   GL_MAX_COMBINED_DIMENSIONS        = $8282;
4254   GL_COLOR_COMPONENTS               = $8283;
4255   GL_DEPTH_COMPONENTS               = $8284;
4256   GL_STENCIL_COMPONENTS             = $8285;
4257   GL_COLOR_RENDERABLE               = $8286;
4258   GL_DEPTH_RENDERABLE               = $8287;
4259   GL_STENCIL_RENDERABLE             = $8288;
4260   GL_FRAMEBUFFER_RENDERABLE         = $8289;
4261   GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4262   GL_FRAMEBUFFER_BLEND              = $828B;
4263   GL_READ_PIXELS                    = $828C;
4264   GL_READ_PIXELS_FORMAT             = $828D;
4265   GL_READ_PIXELS_TYPE               = $828E;
4266   GL_TEXTURE_IMAGE_FORMAT           = $828F;
4267   GL_TEXTURE_IMAGE_TYPE             = $8290;
4268   GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4269   GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4270   GL_MIPMAP                         = $8293;
4271   GL_MANUAL_GENERATE_MIPMAP         = $8294;
4272   GL_AUTO_GENERATE_MIPMAP           = $8295;
4273   GL_COLOR_ENCODING                 = $8296;
4274   GL_SRGB_READ                      = $8297;
4275   GL_SRGB_WRITE                     = $8298;
4276   GL_SRGB_DECODE_ARB                = $8299;
4277   GL_FILTER                         = $829A;
4278   GL_VERTEX_TEXTURE                 = $829B;
4279   GL_TESS_CONTROL_TEXTURE           = $829C;
4280   GL_TESS_EVALUATION_TEXTURE        = $829D;
4281   GL_GEOMETRY_TEXTURE               = $829E;
4282   GL_FRAGMENT_TEXTURE               = $829F;
4283   GL_COMPUTE_TEXTURE                = $82A0;
4284   GL_TEXTURE_SHADOW                 = $82A1;
4285   GL_TEXTURE_GATHER                 = $82A2;
4286   GL_TEXTURE_GATHER_SHADOW          = $82A3;
4287   GL_SHADER_IMAGE_LOAD              = $82A4;
4288   GL_SHADER_IMAGE_STORE             = $82A5;
4289   GL_SHADER_IMAGE_ATOMIC            = $82A6;
4290   GL_IMAGE_TEXEL_SIZE               = $82A7;
4291   GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4292   GL_IMAGE_PIXEL_FORMAT             = $82A9;
4293   GL_IMAGE_PIXEL_TYPE               = $82AA;
4294   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4295   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4296   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4297   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4298   GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4299   GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4300   GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4301   GL_CLEAR_BUFFER                   = $82B4;
4302   GL_TEXTURE_VIEW                   = $82B5;
4303   GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4304   GL_FULL_SUPPORT                   = $82B7;
4305   GL_CAVEAT_SUPPORT                 = $82B8;
4306   GL_IMAGE_CLASS_4_X_32             = $82B9;
4307   GL_IMAGE_CLASS_2_X_32             = $82BA;
4308   GL_IMAGE_CLASS_1_X_32             = $82BB;
4309   GL_IMAGE_CLASS_4_X_16             = $82BC;
4310   GL_IMAGE_CLASS_2_X_16             = $82BD;
4311   GL_IMAGE_CLASS_1_X_16             = $82BE;
4312   GL_IMAGE_CLASS_4_X_8              = $82BF;
4313   GL_IMAGE_CLASS_2_X_8              = $82C0;
4314   GL_IMAGE_CLASS_1_X_8              = $82C1;
4315   GL_IMAGE_CLASS_11_11_10           = $82C2;
4316   GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4317   GL_VIEW_CLASS_128_BITS            = $82C4;
4318   GL_VIEW_CLASS_96_BITS             = $82C5;
4319   GL_VIEW_CLASS_64_BITS             = $82C6;
4320   GL_VIEW_CLASS_48_BITS             = $82C7;
4321   GL_VIEW_CLASS_32_BITS             = $82C8;
4322   GL_VIEW_CLASS_24_BITS             = $82C9;
4323   GL_VIEW_CLASS_16_BITS             = $82CA;
4324   GL_VIEW_CLASS_8_BITS              = $82CB;
4325   GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4326   GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4327   GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4328   GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4329   GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4330   GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4331   GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4332   GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4333   GL_UNIFORM                        = $92E1;
4334   GL_UNIFORM_BLOCK                  = $92E2;
4335   GL_PROGRAM_INPUT                  = $92E3;
4336   GL_PROGRAM_OUTPUT                 = $92E4;
4337   GL_BUFFER_VARIABLE                = $92E5;
4338   GL_SHADER_STORAGE_BLOCK           = $92E6;
4339   GL_VERTEX_SUBROUTINE              = $92E8;
4340   GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4341   GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4342   GL_GEOMETRY_SUBROUTINE            = $92EB;
4343   GL_FRAGMENT_SUBROUTINE            = $92EC;
4344   GL_COMPUTE_SUBROUTINE             = $92ED;
4345   GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4346   GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4347   GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4348   GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4349   GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4350   GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4351   GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4352   GL_ACTIVE_RESOURCES               = $92F5;
4353   GL_MAX_NAME_LENGTH                = $92F6;
4354   GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4355   GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4356   GL_NAME_LENGTH                    = $92F9;
4357   GL_TYPE                           = $92FA;
4358   GL_ARRAY_SIZE                     = $92FB;
4359   GL_OFFSET                         = $92FC;
4360   GL_BLOCK_INDEX                    = $92FD;
4361   GL_ARRAY_STRIDE                   = $92FE;
4362   GL_MATRIX_STRIDE                  = $92FF;
4363   GL_IS_ROW_MAJOR                   = $9300;
4364   GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4365   GL_BUFFER_BINDING                 = $9302;
4366   GL_BUFFER_DATA_SIZE               = $9303;
4367   GL_NUM_ACTIVE_VARIABLES           = $9304;
4368   GL_ACTIVE_VARIABLES               = $9305;
4369   GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4370   GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4371   GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4372   GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4373   GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4374   GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4375   GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4376   GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4377   GL_LOCATION                       = $930E;
4378   GL_LOCATION_INDEX                 = $930F;
4379   GL_IS_PER_PATCH                   = $92E7;
4380   GL_SHADER_STORAGE_BUFFER          = $90D2;
4381   GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4382   GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4383   GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4384   GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4385   GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4386   GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4387   GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4388   GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4389   GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4390   GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4391   GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4392   GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4393   GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4394   GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4395   GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4396   GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4397
4398   GL_TEXTURE_BUFFER_OFFSET          = $919D;
4399   GL_TEXTURE_BUFFER_SIZE            = $919E;
4400   GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4401   GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4402   GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4403   GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4404   GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4405   GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4406   GL_VERTEX_ATTRIB_BINDING          = $82D4;
4407   GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4408   GL_VERTEX_BINDING_DIVISOR         = $82D6;
4409   GL_VERTEX_BINDING_OFFSET          = $82D7;
4410   GL_VERTEX_BINDING_STRIDE          = $82D8;
4411   GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4412   GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4413
4414   // GL 4.4
4415   GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4416   GL_MAP_PERSISTENT_BIT               = $0040;
4417   GL_MAP_COHERENT_BIT                 = $0080;
4418   GL_DYNAMIC_STORAGE_BIT              = $0100;
4419   GL_CLIENT_STORAGE_BIT               = $0200;
4420   GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4421   GL_BUFFER_IMMUTABLE_STORAGE           = $821F;
4422   GL_BUFFER_STORAGE_FLAGS               = $8220;
4423   GL_CLEAR_TEXTURE                      = $9365;
4424   GL_LOCATION_COMPONENT                 = $934A;
4425   GL_TRANSFORM_FEEDBACK_BUFFER_INDEX    = $934B;
4426   GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4427   GL_QUERY_BUFFER                       = $9192;
4428   GL_QUERY_BUFFER_BARRIER_BIT           = $00008000;
4429   GL_QUERY_BUFFER_BINDING               = $9193;
4430   GL_QUERY_RESULT_NO_WAIT               = $9194;
4431   GL_MIRROR_CLAMP_TO_EDGE               = $8743;
4432
4433   // GL 4.5
4434   GL_CONTEXT_LOST                   = $0507;
4435   GL_NEGATIVE_ONE_TO_ONE            = $935E;
4436   GL_ZERO_TO_ONE                    = $935F;
4437   GL_CLIP_ORIGIN                    = $935C;
4438   GL_CLIP_DEPTH_MODE                = $935D;
4439   GL_QUERY_WAIT_INVERTED            = $8E17;
4440   GL_QUERY_NO_WAIT_INVERTED         = $8E18;
4441   GL_QUERY_BY_REGION_WAIT_INVERTED  = $8E19;
4442   GL_QUERY_BY_REGION_NO_WAIT_INVERTED = $8E1A;
4443   GL_MAX_CULL_DISTANCES             = $82F9;
4444   GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = $82FA;
4445   GL_TEXTURE_TARGET                 = $1006;
4446   GL_QUERY_TARGET                   = $82EA;
4447   GL_TEXTURE_BINDING                = $82EB;
4448   GL_GUILTY_CONTEXT_RESET           = $8253;
4449   GL_INNOCENT_CONTEXT_RESET         = $8254;
4450   GL_UNKNOWN_CONTEXT_RESET          = $8255;
4451   GL_RESET_NOTIFICATION_STRATEGY    = $8256;
4452   GL_LOSE_CONTEXT_ON_RESET          = $8252;
4453   GL_NO_RESET_NOTIFICATION          = $8261;
4454   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = $00000004;
4455   GL_CONTEXT_RELEASE_BEHAVIOR       = $82FB;
4456   GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = $82FC;
4457
4458   // GL_ATI_draw_buffers
4459   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4460   GL_DRAW_BUFFER0_ATI = $8825;
4461   GL_DRAW_BUFFER1_ATI = $8826;
4462   GL_DRAW_BUFFER2_ATI = $8827;
4463   GL_DRAW_BUFFER3_ATI = $8828;
4464   GL_DRAW_BUFFER4_ATI = $8829;
4465   GL_DRAW_BUFFER5_ATI = $882A;
4466   GL_DRAW_BUFFER6_ATI = $882B;
4467   GL_DRAW_BUFFER7_ATI = $882C;
4468   GL_DRAW_BUFFER8_ATI = $882D;
4469   GL_DRAW_BUFFER9_ATI = $882E;
4470   GL_DRAW_BUFFER10_ATI = $882F;
4471   GL_DRAW_BUFFER11_ATI = $8830;
4472   GL_DRAW_BUFFER12_ATI = $8831;
4473   GL_DRAW_BUFFER13_ATI = $8832;
4474   GL_DRAW_BUFFER14_ATI = $8833;
4475   GL_DRAW_BUFFER15_ATI = $8834;
4476
4477   // GL_ATI_element_array
4478   GL_ELEMENT_ARRAY_ATI = $8768;
4479   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4480   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4481
4482   // GL_ATI_envmap_bumpmap
4483   GL_BUMP_ROT_MATRIX_ATI = $8775;
4484   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4485   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4486   GL_BUMP_TEX_UNITS_ATI = $8778;
4487   GL_DUDV_ATI = $8779;
4488   GL_DU8DV8_ATI = $877A;
4489   GL_BUMP_ENVMAP_ATI = $877B;
4490   GL_BUMP_TARGET_ATI = $877C;
4491
4492   // GL_ATI_fragment_shader
4493   GL_FRAGMENT_SHADER_ATI = $8920;
4494   GL_REG_0_ATI = $8921;
4495   GL_REG_1_ATI = $8922;
4496   GL_REG_2_ATI = $8923;
4497   GL_REG_3_ATI = $8924;
4498   GL_REG_4_ATI = $8925;
4499   GL_REG_5_ATI = $8926;
4500   GL_REG_6_ATI = $8927;
4501   GL_REG_7_ATI = $8928;
4502   GL_REG_8_ATI = $8929;
4503   GL_REG_9_ATI = $892A;
4504   GL_REG_10_ATI = $892B;
4505   GL_REG_11_ATI = $892C;
4506   GL_REG_12_ATI = $892D;
4507   GL_REG_13_ATI = $892E;
4508   GL_REG_14_ATI = $892F;
4509   GL_REG_15_ATI = $8930;
4510   GL_REG_16_ATI = $8931;
4511   GL_REG_17_ATI = $8932;
4512   GL_REG_18_ATI = $8933;
4513   GL_REG_19_ATI = $8934;
4514   GL_REG_20_ATI = $8935;
4515   GL_REG_21_ATI = $8936;
4516   GL_REG_22_ATI = $8937;
4517   GL_REG_23_ATI = $8938;
4518   GL_REG_24_ATI = $8939;
4519   GL_REG_25_ATI = $893A;
4520   GL_REG_26_ATI = $893B;
4521   GL_REG_27_ATI = $893C;
4522   GL_REG_28_ATI = $893D;
4523   GL_REG_29_ATI = $893E;
4524   GL_REG_30_ATI = $893F;
4525   GL_REG_31_ATI = $8940;
4526   GL_CON_0_ATI = $8941;
4527   GL_CON_1_ATI = $8942;
4528   GL_CON_2_ATI = $8943;
4529   GL_CON_3_ATI = $8944;
4530   GL_CON_4_ATI = $8945;
4531   GL_CON_5_ATI = $8946;
4532   GL_CON_6_ATI = $8947;
4533   GL_CON_7_ATI = $8948;
4534   GL_CON_8_ATI = $8949;
4535   GL_CON_9_ATI = $894A;
4536   GL_CON_10_ATI = $894B;
4537   GL_CON_11_ATI = $894C;
4538   GL_CON_12_ATI = $894D;
4539   GL_CON_13_ATI = $894E;
4540   GL_CON_14_ATI = $894F;
4541   GL_CON_15_ATI = $8950;
4542   GL_CON_16_ATI = $8951;
4543   GL_CON_17_ATI = $8952;
4544   GL_CON_18_ATI = $8953;
4545   GL_CON_19_ATI = $8954;
4546   GL_CON_20_ATI = $8955;
4547   GL_CON_21_ATI = $8956;
4548   GL_CON_22_ATI = $8957;
4549   GL_CON_23_ATI = $8958;
4550   GL_CON_24_ATI = $8959;
4551   GL_CON_25_ATI = $895A;
4552   GL_CON_26_ATI = $895B;
4553   GL_CON_27_ATI = $895C;
4554   GL_CON_28_ATI = $895D;
4555   GL_CON_29_ATI = $895E;
4556   GL_CON_30_ATI = $895F;
4557   GL_CON_31_ATI = $8960;
4558   GL_MOV_ATI = $8961;
4559   GL_ADD_ATI = $8963;
4560   GL_MUL_ATI = $8964;
4561   GL_SUB_ATI = $8965;
4562   GL_DOT3_ATI = $8966;
4563   GL_DOT4_ATI = $8967;
4564   GL_MAD_ATI = $8968;
4565   GL_LERP_ATI = $8969;
4566   GL_CND_ATI = $896A;
4567   GL_CND0_ATI = $896B;
4568   GL_DOT2_ADD_ATI = $896C;
4569   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4570   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4571   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4572   GL_NUM_PASSES_ATI = $8970;
4573   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4574   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4575   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4576   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4577   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4578   GL_SWIZZLE_STR_ATI = $8976;
4579   GL_SWIZZLE_STQ_ATI = $8977;
4580   GL_SWIZZLE_STR_DR_ATI = $8978;
4581   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4582   GL_SWIZZLE_STRQ_ATI = $897A;
4583   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4584   GL_RED_BIT_ATI = $00000001;
4585   GL_GREEN_BIT_ATI = $00000002;
4586   GL_BLUE_BIT_ATI = $00000004;
4587   GL_2X_BIT_ATI = $00000001;
4588   GL_4X_BIT_ATI = $00000002;
4589   GL_8X_BIT_ATI = $00000004;
4590   GL_HALF_BIT_ATI = $00000008;
4591   GL_QUARTER_BIT_ATI = $00000010;
4592   GL_EIGHTH_BIT_ATI = $00000020;
4593   GL_SATURATE_BIT_ATI = $00000040;
4594   GL_COMP_BIT_ATI = $00000002;
4595   GL_NEGATE_BIT_ATI = $00000004;
4596   GL_BIAS_BIT_ATI = $00000008;
4597
4598   // GL_ATI_pn_triangles
4599   GL_PN_TRIANGLES_ATI = $87F0;
4600   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4601   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4602   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4603   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4604   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4605   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4606   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4607   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4608
4609   // GL_ATI_separate_stencil
4610   GL_STENCIL_BACK_FUNC_ATI = $8800;
4611   GL_STENCIL_BACK_FAIL_ATI = $8801;
4612   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4613   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4614
4615   // GL_ATI_text_fragment_shader
4616   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4617
4618   // GL_ATI_texture_env_combine3
4619   GL_MODULATE_ADD_ATI = $8744;
4620   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4621   GL_MODULATE_SUBTRACT_ATI = $8746;
4622
4623   // GL_ATI_texture_float
4624   GL_RGBA_FLOAT32_ATI = $8814;
4625   GL_RGB_FLOAT32_ATI = $8815;
4626   GL_ALPHA_FLOAT32_ATI = $8816;
4627   GL_INTENSITY_FLOAT32_ATI = $8817;
4628   GL_LUMINANCE_FLOAT32_ATI = $8818;
4629   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4630   GL_RGBA_FLOAT16_ATI = $881A;
4631   GL_RGB_FLOAT16_ATI = $881B;
4632   GL_ALPHA_FLOAT16_ATI = $881C;
4633   GL_INTENSITY_FLOAT16_ATI = $881D;
4634   GL_LUMINANCE_FLOAT16_ATI = $881E;
4635   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4636
4637   // GL_ATI_texture_mirror_once
4638   GL_MIRROR_CLAMP_ATI = $8742;
4639   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4640
4641   // GL_ATI_vertex_array_object
4642   GL_STATIC_ATI = $8760;
4643   GL_DYNAMIC_ATI = $8761;
4644   GL_PRESERVE_ATI = $8762;
4645   GL_DISCARD_ATI = $8763;
4646   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4647   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4648   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4649   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4650
4651   // GL_ATI_vertex_streams
4652   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4653   GL_VERTEX_STREAM0_ATI = $876C;
4654   GL_VERTEX_STREAM1_ATI = $876D;
4655   GL_VERTEX_STREAM2_ATI = $876E;
4656   GL_VERTEX_STREAM3_ATI = $876F;
4657   GL_VERTEX_STREAM4_ATI = $8770;
4658   GL_VERTEX_STREAM5_ATI = $8771;
4659   GL_VERTEX_STREAM6_ATI = $8772;
4660   GL_VERTEX_STREAM7_ATI = $8773;
4661   GL_VERTEX_SOURCE_ATI = $8774;
4662
4663   // GL_ATI_meminfo
4664   GL_VBO_FREE_MEMORY_ATI = $87FB;
4665   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4666   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4667
4668   // GL_AMD_performance_monitor
4669   GL_COUNTER_TYPE_AMD = $8BC0;
4670   GL_COUNTER_RANGE_AMD = $8BC1;
4671   GL_UNSIGNED_INT64_AMD = $8BC2;
4672   GL_PERCENTAGE_AMD = $8BC3;
4673   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4674   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4675   GL_PERFMON_RESULT_AMD = $8BC6;
4676
4677   // GL_AMD_vertex_shader_tesselator
4678   GL_SAMPLER_BUFFER_AMD = $9001;
4679   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4680   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4681   GL_TESSELLATION_MODE_AMD = $9004;
4682   GL_TESSELLATION_FACTOR_AMD = $9005;
4683   GL_DISCRETE_AMD = $9006;
4684   GL_CONTINUOUS_AMD = $9007;
4685
4686   // GL_AMD_seamless_cubemap_per_texture
4687   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4688
4689   // GL_AMD_name_gen_delete
4690   GL_DATA_BUFFER_AMD = $9151;
4691   GL_PERFORMANCE_MONITOR_AMD = $9152;
4692   GL_QUERY_OBJECT_AMD = $9153;
4693   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
4694   GL_SAMPLER_OBJECT_AMD = $9155;
4695
4696   // GL_AMD_debug_output
4697   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
4698   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
4699   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
4700   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
4701   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
4702   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
4703   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
4704   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
4705   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
4706   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
4707   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
4708   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
4709   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
4710
4711   // GL_AMD_depth_clamp_separate
4712   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
4713   GL_DEPTH_CLAMP_FAR_AMD = $901F;
4714
4715   // GL_EXT_422_pixels
4716   GL_422_EXT = $80CC;
4717   GL_422_REV_EXT = $80CD;
4718   GL_422_AVERAGE_EXT = $80CE;
4719   GL_422_REV_AVERAGE_EXT = $80CF;
4720
4721   // GL_EXT_abgr
4722   GL_ABGR_EXT = $8000;
4723
4724   // GL_EXT_bgra
4725   GL_BGR_EXT = $80E0;
4726   GL_BGRA_EXT = $80E1;
4727
4728   // GL_EXT_blend_color
4729   GL_CONSTANT_COLOR_EXT = $8001;
4730   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
4731   GL_CONSTANT_ALPHA_EXT = $8003;
4732   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
4733   GL_BLEND_COLOR_EXT = $8005;
4734
4735   // GL_EXT_blend_func_separate
4736   GL_BLEND_DST_RGB_EXT = $80C8;
4737   GL_BLEND_SRC_RGB_EXT = $80C9;
4738   GL_BLEND_DST_ALPHA_EXT = $80CA;
4739   GL_BLEND_SRC_ALPHA_EXT = $80CB;
4740
4741   // GL_EXT_blend_minmax
4742   GL_FUNC_ADD_EXT = $8006;
4743   GL_MIN_EXT = $8007;
4744   GL_MAX_EXT = $8008;
4745   GL_BLEND_EQUATION_EXT = $8009;
4746
4747   // GL_EXT_blend_subtract
4748   GL_FUNC_SUBTRACT_EXT = $800A;
4749   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
4750
4751   // GL_EXT_clip_volume_hint
4752   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
4753
4754   // GL_EXT_cmyka
4755   GL_CMYK_EXT = $800C;
4756   GL_CMYKA_EXT = $800D;
4757   GL_PACK_CMYK_HINT_EXT = $800E;
4758   GL_UNPACK_CMYK_HINT_EXT = $800F;
4759
4760   // GL_EXT_compiled_vertex_array
4761   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
4762   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
4763
4764   // GL_EXT_convolution
4765   GL_CONVOLUTION_1D_EXT = $8010;
4766   GL_CONVOLUTION_2D_EXT = $8011;
4767   GL_SEPARABLE_2D_EXT = $8012;
4768   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
4769   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
4770   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
4771   GL_REDUCE_EXT = $8016;
4772   GL_CONVOLUTION_FORMAT_EXT = $8017;
4773   GL_CONVOLUTION_WIDTH_EXT = $8018;
4774   GL_CONVOLUTION_HEIGHT_EXT = $8019;
4775   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
4776   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
4777   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
4778   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
4779   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
4780   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
4781   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
4782   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
4783   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
4784   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
4785
4786   // GL_EXT_coordinate_frame
4787   GL_TANGENT_ARRAY_EXT = $8439;
4788   GL_BINORMAL_ARRAY_EXT = $843A;
4789   GL_CURRENT_TANGENT_EXT = $843B;
4790   GL_CURRENT_BINORMAL_EXT = $843C;
4791   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
4792   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
4793   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
4794   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
4795   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
4796   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
4797   GL_MAP1_TANGENT_EXT = $8444;
4798   GL_MAP2_TANGENT_EXT = $8445;
4799   GL_MAP1_BINORMAL_EXT = $8446;
4800   GL_MAP2_BINORMAL_EXT = $8447;
4801
4802   // GL_EXT_cull_vertex
4803   GL_CULL_VERTEX_EXT = $81AA;
4804   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
4805   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
4806
4807   // GL_EXT_draw_range_elements
4808   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
4809   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
4810
4811   // GL_EXT_fog_coord
4812   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
4813   GL_FOG_COORDINATE_EXT = $8451;
4814   GL_FRAGMENT_DEPTH_EXT = $8452;
4815   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
4816   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
4817   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
4818   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
4819   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
4820
4821   // GL_EXT_framebuffer_object
4822   GL_FRAMEBUFFER_EXT = $8D40;
4823   GL_RENDERBUFFER_EXT = $8D41;
4824   GL_STENCIL_INDEX_EXT = $8D45;
4825   GL_STENCIL_INDEX1_EXT = $8D46;
4826   GL_STENCIL_INDEX4_EXT = $8D47;
4827   GL_STENCIL_INDEX8_EXT = $8D48;
4828   GL_STENCIL_INDEX16_EXT = $8D49;
4829   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
4830   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
4831   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
4832   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
4833   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
4834   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
4835   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
4836   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
4837   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
4838   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
4839   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
4840   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
4841   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
4842   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
4843   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
4844   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
4845   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
4846   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
4847   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
4848   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
4849   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
4850   GL_COLOR_ATTACHMENT13_EXT = $8CED;
4851   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
4852   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
4853   GL_DEPTH_ATTACHMENT_EXT = $8D00;
4854   GL_STENCIL_ATTACHMENT_EXT = $8D20;
4855   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
4856   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
4857   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
4858   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
4859   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
4860   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
4861   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
4862   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
4863   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
4864   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
4865   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
4866   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
4867   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
4868   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
4869   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
4870
4871   // GL_EXT_histogram
4872   GL_HISTOGRAM_EXT = $8024;
4873   GL_PROXY_HISTOGRAM_EXT = $8025;
4874   GL_HISTOGRAM_WIDTH_EXT = $8026;
4875   GL_HISTOGRAM_FORMAT_EXT = $8027;
4876   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
4877   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
4878   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
4879   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
4880   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
4881   GL_HISTOGRAM_SINK_EXT = $802D;
4882   GL_MINMAX_EXT = $802E;
4883   GL_MINMAX_FORMAT_EXT = $802F;
4884   GL_MINMAX_SINK_EXT = $8030;
4885   GL_TABLE_TOO_LARGE_EXT = $8031;
4886
4887   // GL_EXT_index_array_formats
4888   GL_IUI_V2F_EXT = $81AD;
4889   GL_IUI_V3F_EXT = $81AE;
4890   GL_IUI_N3F_V2F_EXT = $81AF;
4891   GL_IUI_N3F_V3F_EXT = $81B0;
4892   GL_T2F_IUI_V2F_EXT = $81B1;
4893   GL_T2F_IUI_V3F_EXT = $81B2;
4894   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
4895   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
4896
4897   // GL_EXT_index_func
4898   GL_INDEX_TEST_EXT = $81B5;
4899   GL_INDEX_TEST_FUNC_EXT = $81B6;
4900   GL_INDEX_TEST_REF_EXT = $81B7;
4901
4902   // GL_EXT_index_material
4903   GL_INDEX_MATERIAL_EXT = $81B8;
4904   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
4905   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
4906
4907   // GL_EXT_light_texture
4908   GL_FRAGMENT_MATERIAL_EXT = $8349;
4909   GL_FRAGMENT_NORMAL_EXT = $834A;
4910   GL_FRAGMENT_COLOR_EXT = $834C;
4911   GL_ATTENUATION_EXT = $834D;
4912   GL_SHADOW_ATTENUATION_EXT = $834E;
4913   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
4914   GL_TEXTURE_LIGHT_EXT = $8350;
4915   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
4916   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
4917
4918   // GL_EXT_multisample
4919   GL_MULTISAMPLE_EXT = $809D;
4920   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
4921   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
4922   GL_SAMPLE_MASK_EXT = $80A0;
4923   GL_1PASS_EXT = $80A1;
4924   GL_2PASS_0_EXT = $80A2;
4925   GL_2PASS_1_EXT = $80A3;
4926   GL_4PASS_0_EXT = $80A4;
4927   GL_4PASS_1_EXT = $80A5;
4928   GL_4PASS_2_EXT = $80A6;
4929   GL_4PASS_3_EXT = $80A7;
4930   GL_SAMPLE_BUFFERS_EXT = $80A8;
4931   GL_SAMPLES_EXT = $80A9;
4932   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
4933   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
4934   GL_SAMPLE_PATTERN_EXT = $80AC;
4935   GL_MULTISAMPLE_BIT_EXT = $20000000;
4936
4937   // GL_EXT_packed_pixels
4938   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
4939   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
4940   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
4941   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
4942   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
4943
4944   // GL_EXT_paletted_texture
4945   GL_COLOR_INDEX1_EXT = $80E2;
4946   GL_COLOR_INDEX2_EXT = $80E3;
4947   GL_COLOR_INDEX4_EXT = $80E4;
4948   GL_COLOR_INDEX8_EXT = $80E5;
4949   GL_COLOR_INDEX12_EXT = $80E6;
4950   GL_COLOR_INDEX16_EXT = $80E7;
4951   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
4952
4953   // GL_EXT_pixel_transform
4954   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
4955   GL_PIXEL_MAG_FILTER_EXT = $8331;
4956   GL_PIXEL_MIN_FILTER_EXT = $8332;
4957   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
4958   GL_CUBIC_EXT = $8334;
4959   GL_AVERAGE_EXT = $8335;
4960   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
4961   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
4962   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
4963
4964   // GL_EXT_point_parameters
4965   GL_POINT_SIZE_MIN_EXT = $8126;
4966   GL_POINT_SIZE_MAX_EXT = $8127;
4967   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
4968   GL_DISTANCE_ATTENUATION_EXT = $8129;
4969
4970   // GL_EXT_polygon_offset
4971   GL_POLYGON_OFFSET_EXT = $8037;
4972   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
4973   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
4974
4975   // GL_EXT_rescale_normal
4976   GL_RESCALE_NORMAL_EXT = $803A;
4977
4978   // GL_EXT_secondary_color
4979   GL_COLOR_SUM_EXT = $8458;
4980   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
4981   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
4982   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
4983   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
4984   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
4985   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
4986
4987   // GL_EXT_separate_specular_color
4988   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
4989   GL_SINGLE_COLOR_EXT = $81F9;
4990   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
4991
4992   // GL_EXT_shared_texture_palette
4993   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
4994
4995   // GL_EXT_stencil_two_side
4996   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
4997   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
4998
4999   // GL_EXT_stencil_wrap
5000   GL_INCR_WRAP_EXT = $8507;
5001   GL_DECR_WRAP_EXT = $8508;
5002
5003   // GL_EXT_texture
5004   GL_ALPHA4_EXT = $803B;
5005   GL_ALPHA8_EXT = $803C;
5006   GL_ALPHA12_EXT = $803D;
5007   GL_ALPHA16_EXT = $803E;
5008   GL_LUMINANCE4_EXT = $803F;
5009   GL_LUMINANCE8_EXT = $8040;
5010   GL_LUMINANCE12_EXT = $8041;
5011   GL_LUMINANCE16_EXT = $8042;
5012   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5013   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5014   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5015   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5016   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5017   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5018   GL_INTENSITY_EXT = $8049;
5019   GL_INTENSITY4_EXT = $804A;
5020   GL_INTENSITY8_EXT = $804B;
5021   GL_INTENSITY12_EXT = $804C;
5022   GL_INTENSITY16_EXT = $804D;
5023   GL_RGB2_EXT = $804E;
5024   GL_RGB4_EXT = $804F;
5025   GL_RGB5_EXT = $8050;
5026   GL_RGB8_EXT = $8051;
5027   GL_RGB10_EXT = $8052;
5028   GL_RGB12_EXT = $8053;
5029   GL_RGB16_EXT = $8054;
5030   GL_RGBA2_EXT = $8055;
5031   GL_RGBA4_EXT = $8056;
5032   GL_RGB5_A1_EXT = $8057;
5033   GL_RGBA8_EXT = $8058;
5034   GL_RGB10_A2_EXT = $8059;
5035   GL_RGBA12_EXT = $805A;
5036   GL_RGBA16_EXT = $805B;
5037   GL_TEXTURE_RED_SIZE_EXT = $805C;
5038   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5039   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5040   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5041   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5042   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5043   GL_REPLACE_EXT = $8062;
5044   GL_PROXY_TEXTURE_1D_EXT = $8063;
5045   GL_PROXY_TEXTURE_2D_EXT = $8064;
5046   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5047
5048   // GL_EXT_texture3D
5049   GL_PACK_SKIP_IMAGES_EXT = $806B;
5050   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5051   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5052   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5053   GL_TEXTURE_3D_EXT = $806F;
5054   GL_PROXY_TEXTURE_3D_EXT = $8070;
5055   GL_TEXTURE_DEPTH_EXT = $8071;
5056   GL_TEXTURE_WRAP_R_EXT = $8072;
5057   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5058
5059   // GL_EXT_texture_compression_s3tc
5060   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5061   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5062   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5063   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5064
5065   // GL_EXT_texture_cube_map
5066   GL_NORMAL_MAP_EXT = $8511;
5067   GL_REFLECTION_MAP_EXT = $8512;
5068   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5069   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5070   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5071   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5072   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5073   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5074   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5075   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5076   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5077   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5078
5079   // GL_EXT_texture_edge_clamp
5080   GL_CLAMP_TO_EDGE_EXT = $812F;
5081
5082   // GL_EXT_texture_env_combine
5083   GL_COMBINE_EXT = $8570;
5084   GL_COMBINE_RGB_EXT = $8571;
5085   GL_COMBINE_ALPHA_EXT = $8572;
5086   GL_RGB_SCALE_EXT = $8573;
5087   GL_ADD_SIGNED_EXT = $8574;
5088   GL_INTERPOLATE_EXT = $8575;
5089   GL_CONSTANT_EXT = $8576;
5090   GL_PRIMARY_COLOR_EXT = $8577;
5091   GL_PREVIOUS_EXT = $8578;
5092   GL_SOURCE0_RGB_EXT = $8580;
5093   GL_SOURCE1_RGB_EXT = $8581;
5094   GL_SOURCE2_RGB_EXT = $8582;
5095   GL_SOURCE0_ALPHA_EXT = $8588;
5096   GL_SOURCE1_ALPHA_EXT = $8589;
5097   GL_SOURCE2_ALPHA_EXT = $858A;
5098   GL_OPERAND0_RGB_EXT = $8590;
5099   GL_OPERAND1_RGB_EXT = $8591;
5100   GL_OPERAND2_RGB_EXT = $8592;
5101   GL_OPERAND0_ALPHA_EXT = $8598;
5102   GL_OPERAND1_ALPHA_EXT = $8599;
5103   GL_OPERAND2_ALPHA_EXT = $859A;
5104
5105   // GL_EXT_texture_env_dot3
5106   GL_DOT3_RGB_EXT = $8740;
5107   GL_DOT3_RGBA_EXT = $8741;
5108
5109   // GL_EXT_texture_filter_anisotropic
5110   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5111   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5112
5113   // GL_EXT_texture_lod_bias
5114   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5115   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5116   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5117
5118   // GL_EXT_texture_object
5119   GL_TEXTURE_PRIORITY_EXT = $8066;
5120   GL_TEXTURE_RESIDENT_EXT = $8067;
5121   GL_TEXTURE_1D_BINDING_EXT = $8068;
5122   GL_TEXTURE_2D_BINDING_EXT = $8069;
5123   GL_TEXTURE_3D_BINDING_EXT = $806A;
5124
5125   // GL_EXT_texture_perturb_normal
5126   GL_PERTURB_EXT = $85AE;
5127   GL_TEXTURE_NORMAL_EXT = $85AF;
5128
5129   // GL_EXT_texture_rectangle
5130   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5131   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5132   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5133   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5134
5135   // GL_EXT_vertex_array
5136   GL_VERTEX_ARRAY_EXT = $8074;
5137   GL_NORMAL_ARRAY_EXT = $8075;
5138   GL_COLOR_ARRAY_EXT = $8076;
5139   GL_INDEX_ARRAY_EXT = $8077;
5140   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5141   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5142   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5143   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5144   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5145   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5146   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5147   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5148   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5149   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5150   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5151   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5152   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5153   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5154   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5155   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5156   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5157   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5158   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5159   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5160   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5161   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5162   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5163   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5164   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5165   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5166   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5167   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5168
5169   // GL_EXT_vertex_shader
5170   GL_VERTEX_SHADER_EXT = $8780;
5171   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5172   GL_OP_INDEX_EXT = $8782;
5173   GL_OP_NEGATE_EXT = $8783;
5174   GL_OP_DOT3_EXT = $8784;
5175   GL_OP_DOT4_EXT = $8785;
5176   GL_OP_MUL_EXT = $8786;
5177   GL_OP_ADD_EXT = $8787;
5178   GL_OP_MADD_EXT = $8788;
5179   GL_OP_FRAC_EXT = $8789;
5180   GL_OP_MAX_EXT = $878A;
5181   GL_OP_MIN_EXT = $878B;
5182   GL_OP_SET_GE_EXT = $878C;
5183   GL_OP_SET_LT_EXT = $878D;
5184   GL_OP_CLAMP_EXT = $878E;
5185   GL_OP_FLOOR_EXT = $878F;
5186   GL_OP_ROUND_EXT = $8790;
5187   GL_OP_EXP_BASE_2_EXT = $8791;
5188   GL_OP_LOG_BASE_2_EXT = $8792;
5189   GL_OP_POWER_EXT = $8793;
5190   GL_OP_RECIP_EXT = $8794;
5191   GL_OP_RECIP_SQRT_EXT = $8795;
5192   GL_OP_SUB_EXT = $8796;
5193   GL_OP_CROSS_PRODUCT_EXT = $8797;
5194   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5195   GL_OP_MOV_EXT = $8799;
5196   GL_OUTPUT_VERTEX_EXT = $879A;
5197   GL_OUTPUT_COLOR0_EXT = $879B;
5198   GL_OUTPUT_COLOR1_EXT = $879C;
5199   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5200   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5201   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5202   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5203   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5204   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5205   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5206   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5207   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5208   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5209   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5210   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5211   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5212   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5213   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5214   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5215   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5216   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5217   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5218   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5219   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5220   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5221   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5222   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5223   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5224   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5225   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5226   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5227   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5228   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5229   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5230   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5231   GL_OUTPUT_FOG_EXT = $87BD;
5232   GL_SCALAR_EXT = $87BE;
5233   GL_VECTOR_EXT = $87BF;
5234   GL_MATRIX_EXT = $87C0;
5235   GL_VARIANT_EXT = $87C1;
5236   GL_INVARIANT_EXT = $87C2;
5237   GL_LOCAL_CONSTANT_EXT = $87C3;
5238   GL_LOCAL_EXT = $87C4;
5239   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5240   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5241   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5242   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5243   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5244   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5245   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5246   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5247   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5248   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5249   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5250   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5251   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5252   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5253   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5254   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5255   GL_X_EXT = $87D5;
5256   GL_Y_EXT = $87D6;
5257   GL_Z_EXT = $87D7;
5258   GL_W_EXT = $87D8;
5259   GL_NEGATIVE_X_EXT = $87D9;
5260   GL_NEGATIVE_Y_EXT = $87DA;
5261   GL_NEGATIVE_Z_EXT = $87DB;
5262   GL_NEGATIVE_W_EXT = $87DC;
5263   GL_ZERO_EXT = $87DD;
5264   GL_ONE_EXT = $87DE;
5265   GL_NEGATIVE_ONE_EXT = $87DF;
5266   GL_NORMALIZED_RANGE_EXT = $87E0;
5267   GL_FULL_RANGE_EXT = $87E1;
5268   GL_CURRENT_VERTEX_EXT = $87E2;
5269   GL_MVP_MATRIX_EXT = $87E3;
5270   GL_VARIANT_VALUE_EXT = $87E4;
5271   GL_VARIANT_DATATYPE_EXT = $87E5;
5272   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5273   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5274   GL_VARIANT_ARRAY_EXT = $87E8;
5275   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5276   GL_INVARIANT_VALUE_EXT = $87EA;
5277   GL_INVARIANT_DATATYPE_EXT = $87EB;
5278   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5279   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5280
5281   // GL_EXT_vertex_weighting
5282   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5283   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5284   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5285   GL_MODELVIEW1_MATRIX_EXT = $8506;
5286   GL_VERTEX_WEIGHTING_EXT = $8509;
5287   GL_MODELVIEW0_EXT = $1700;
5288   GL_MODELVIEW1_EXT = $850A;
5289   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5290   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5291   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5292   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5293   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5294   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5295
5296   // GL_EXT_depth_bounds_test
5297   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5298   GL_DEPTH_BOUNDS_EXT = $8891;
5299
5300   // GL_EXT_texture_mirror_clamp
5301   GL_MIRROR_CLAMP_EXT = $8742;
5302   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5303   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5304
5305   // GL_EXT_blend_equation_separate
5306   GL_BLEND_EQUATION_RGB_EXT = $8009;
5307   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5308
5309   // GL_EXT_pixel_buffer_object
5310   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5311   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5312   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5313   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5314
5315   // GL_EXT_stencil_clear_tag
5316   GL_STENCIL_TAG_BITS_EXT = $88F2;
5317   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5318
5319   // GL_EXT_packed_depth_stencil
5320   GL_DEPTH_STENCIL_EXT = $84F9;
5321   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5322   GL_DEPTH24_STENCIL8_EXT = $88F0;
5323   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5324
5325   // GL_EXT_texture_sRGB
5326   GL_SRGB_EXT = $8C40;
5327   GL_SRGB8_EXT = $8C41;
5328   GL_SRGB_ALPHA_EXT = $8C42;
5329   GL_SRGB8_ALPHA8_EXT = $8C43;
5330   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5331   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5332   GL_SLUMINANCE_EXT = $8C46;
5333   GL_SLUMINANCE8_EXT = $8C47;
5334   GL_COMPRESSED_SRGB_EXT = $8C48;
5335   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5336   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5337   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5338   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5339   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5340   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5341   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5342
5343   // GL_EXT_framebuffer_blit
5344   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5345   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5346   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5347   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5348
5349   // GL_EXT_framebuffer_multisample
5350   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5351   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5352   GL_MAX_SAMPLES_EXT = $8D57;
5353
5354   // GL_EXT_timer_query
5355   GL_TIME_ELAPSED_EXT = $88BF;
5356
5357   // GL_EXT_bindable_uniform
5358   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5359   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5360   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5361   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5362   GL_UNIFORM_BUFFER_EXT = $8DEE;
5363   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5364
5365   // GL_EXT_framebuffer_sRGB
5366   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5367   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5368   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5369   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5370
5371   // GL_EXT_geometry_shader4
5372   GL_GEOMETRY_SHADER_EXT = $8DD9;
5373   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5374   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5375   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5376   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5377   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5378   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5379   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5380   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5381   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5382   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5383   GL_LINES_ADJACENCY_EXT = $A;
5384   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5385   GL_TRIANGLES_ADJACENCY_EXT = $C;
5386   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5387   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5388   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5389   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5390   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5391   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5392
5393   // GL_EXT_gpu_shader4
5394   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5395   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5396   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5397   GL_SAMPLER_BUFFER_EXT = $8DC2;
5398   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5399   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5400   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5401   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5402   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5403   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5404   GL_INT_SAMPLER_1D_EXT = $8DC9;
5405   GL_INT_SAMPLER_2D_EXT = $8DCA;
5406   GL_INT_SAMPLER_3D_EXT = $8DCB;
5407   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5408   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5409   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5410   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5411   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5412   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5413   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5414   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5415   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5416   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5417   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5418   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5419   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5420   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5421   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5422
5423   // GL_EXT_packed_float
5424   GL_R11F_G11F_B10F_EXT = $8C3A;
5425   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5426   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5427   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5428   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5429   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5430
5431   // GL_EXT_texture_array
5432   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5433   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5434   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5435   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5436   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5437   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5438   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5439   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5440
5441   // GL_EXT_texture_buffer_object
5442   GL_TEXTURE_BUFFER_EXT = $8C2A;
5443   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5444   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5445   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5446   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5447
5448   // GL_EXT_texture_compression_latc
5449   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5450   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5451   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5452   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5453
5454   // GL_EXT_texture_compression_rgtc
5455   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5456   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5457   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5458   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5459
5460   // GL_EXT_texture_integer
5461   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5462   GL_RGBA32UI_EXT = $8D70;
5463   GL_RGB32UI_EXT = $8D71;
5464   GL_ALPHA32UI_EXT = $8D72;
5465   GL_INTENSITY32UI_EXT = $8D73;
5466   GL_LUMINANCE32UI_EXT = $8D74;
5467   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5468   GL_RGBA16UI_EXT = $8D76;
5469   GL_RGB16UI_EXT = $8D77;
5470   GL_ALPHA16UI_EXT = $8D78;
5471   GL_INTENSITY16UI_EXT = $8D79;
5472   GL_LUMINANCE16UI_EXT = $8D7A;
5473   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5474   GL_RGBA8UI_EXT = $8D7C;
5475   GL_RGB8UI_EXT = $8D7D;
5476   GL_ALPHA8UI_EXT = $8D7E;
5477   GL_INTENSITY8UI_EXT = $8D7F;
5478   GL_LUMINANCE8UI_EXT = $8D80;
5479   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5480   GL_RGBA32I_EXT = $8D82;
5481   GL_RGB32I_EXT = $8D83;
5482   GL_ALPHA32I_EXT = $8D84;
5483   GL_INTENSITY32I_EXT = $8D85;
5484   GL_LUMINANCE32I_EXT = $8D86;
5485   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5486   GL_RGBA16I_EXT = $8D88;
5487   GL_RGB16I_EXT = $8D89;
5488   GL_ALPHA16I_EXT = $8D8A;
5489   GL_INTENSITY16I_EXT = $8D8B;
5490   GL_LUMINANCE16I_EXT = $8D8C;
5491   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5492   GL_RGBA8I_EXT = $8D8E;
5493   GL_RGB8I_EXT = $8D8F;
5494   GL_ALPHA8I_EXT = $8D90;
5495   GL_INTENSITY8I_EXT = $8D91;
5496   GL_LUMINANCE8I_EXT = $8D92;
5497   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5498   GL_RED_INTEGER_EXT = $8D94;
5499   GL_GREEN_INTEGER_EXT = $8D95;
5500   GL_BLUE_INTEGER_EXT = $8D96;
5501   GL_ALPHA_INTEGER_EXT = $8D97;
5502   GL_RGB_INTEGER_EXT = $8D98;
5503   GL_RGBA_INTEGER_EXT = $8D99;
5504   GL_BGR_INTEGER_EXT = $8D9A;
5505   GL_BGRA_INTEGER_EXT = $8D9B;
5506   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5507   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5508
5509   // GL_EXT_texture_shared_exponent
5510   GL_RGB9_E5_EXT = $8C3D;
5511   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5512   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5513
5514   // GL_EXT_transform_feedback
5515   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5516   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5517   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5518   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5519   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5520   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5521   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5522   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5523   GL_RASTERIZER_DISCARD_EXT = $8C89;
5524   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5525   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5526   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5527   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5528   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5529   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5530
5531   // GL_EXT_direct_state_access
5532   GL_PROGRAM_MATRIX_EXT = $8E2D;
5533   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5534   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5535
5536   // GL_EXT_texture_swizzle
5537   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5538   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5539   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5540   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5541   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5542
5543   // GL_EXT_provoking_vertex
5544   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5545   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5546   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5547   GL_PROVOKING_VERTEX_EXT = $8E4F;
5548
5549   // GL_EXT_texture_snorm
5550   GL_ALPHA_SNORM = $9010;
5551   GL_LUMINANCE_SNORM = $9011;
5552   GL_LUMINANCE_ALPHA_SNORM = $9012;
5553   GL_INTENSITY_SNORM = $9013;
5554   GL_ALPHA8_SNORM = $9014;
5555   GL_LUMINANCE8_SNORM = $9015;
5556   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5557   GL_INTENSITY8_SNORM = $9017;
5558   GL_ALPHA16_SNORM = $9018;
5559   GL_LUMINANCE16_SNORM = $9019;
5560   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5561   GL_INTENSITY16_SNORM = $901B;
5562   { reuse GL_RED_SNORM }
5563   { reuse GL_RG_SNORM }
5564   { reuse GL_RGB_SNORM }
5565   { reuse GL_RGBA_SNORM }
5566   { reuse GL_R8_SNORM }
5567   { reuse GL_RG8_SNORM }
5568   { reuse GL_RGB8_SNORM }
5569   { reuse GL_RGBA8_SNORM }
5570   { reuse GL_R16_SNORM }
5571   { reuse GL_RG16_SNORM }
5572   { reuse GL_RGB16_SNORM }
5573   { reuse GL_RGBA16_SNORM }
5574   { reuse GL_SIGNED_NORMALIZED }
5575
5576   // GL_EXT_separate_shader_objects
5577   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5578
5579   // GL_EXT_shader_image_load_store
5580   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5581   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5582   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5583   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5584   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5585   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5586   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5587   GL_IMAGE_1D_EXT = $904C;
5588   GL_IMAGE_2D_EXT = $904D;
5589   GL_IMAGE_3D_EXT = $904E;
5590   GL_IMAGE_2D_RECT_EXT = $904F;
5591   GL_IMAGE_CUBE_EXT = $9050;
5592   GL_IMAGE_BUFFER_EXT = $9051;
5593   GL_IMAGE_1D_ARRAY_EXT = $9052;
5594   GL_IMAGE_2D_ARRAY_EXT = $9053;
5595   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5596   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5597   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5598   GL_INT_IMAGE_1D_EXT = $9057;
5599   GL_INT_IMAGE_2D_EXT = $9058;
5600   GL_INT_IMAGE_3D_EXT = $9059;
5601   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5602   GL_INT_IMAGE_CUBE_EXT = $905B;
5603   GL_INT_IMAGE_BUFFER_EXT = $905C;
5604   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5605   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5606   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5607   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5608   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5609   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5610   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5611   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5612   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5613   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5614   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5615   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5616   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5617   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5618   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5619   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5620   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5621   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5622   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5623   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5624   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5625   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5626   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5627   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5628   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5629   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5630   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5631   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5632   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5633   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5634   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5635
5636   // GL_EXT_vertex_attrib_64bit
5637   { reuse GL_DOUBLE }
5638   GL_DOUBLE_VEC2_EXT = $8FFC;
5639   GL_DOUBLE_VEC3_EXT = $8FFD;
5640   GL_DOUBLE_VEC4_EXT = $8FFE;
5641   GL_DOUBLE_MAT2_EXT = $8F46;
5642   GL_DOUBLE_MAT3_EXT = $8F47;
5643   GL_DOUBLE_MAT4_EXT = $8F48;
5644   GL_DOUBLE_MAT2x3_EXT = $8F49;
5645   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5646   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5647   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5648   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5649   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5650
5651   // GL_EXT_texture_sRGB_decode
5652   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5653   GL_DECODE_EXT = $8A49;
5654   GL_SKIP_DECODE_EXT = $8A4A;
5655
5656   // GL_NV_texture_multisample
5657   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5658   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5659
5660   // GL_AMD_blend_minmax_factor
5661   GL_FACTOR_MIN_AMD                 = $901C;
5662   GL_FACTOR_MAX_AMD                 = $901D;
5663
5664   // GL_AMD_sample_positions
5665   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5666
5667   // GL_EXT_x11_sync_object
5668   GL_SYNC_X11_FENCE_EXT             = $90E1;
5669
5670   // GL_EXT_framebuffer_multisample_blit_scaled
5671   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5672   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5673
5674   // (4.3) GL_NV_path_rendering
5675         GL_PATH_FORMAT_SVG_NV            = $9070;
5676         GL_PATH_FORMAT_PS_NV             = $9071;
5677         GL_STANDARD_FONT_NAME_NV         = $9072;
5678         GL_SYSTEM_FONT_NAME_NV           = $9073;
5679         GL_FILE_NAME_NV                  = $9074;
5680         GL_PATH_STROKE_WIDTH_NV          = $9075;
5681         GL_PATH_END_CAPS_NV              = $9076;
5682         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5683         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5684         GL_PATH_JOIN_STYLE_NV            = $9079;
5685         GL_PATH_MITER_LIMIT_NV           = $907A;
5686         GL_PATH_DASH_CAPS_NV             = $907B;
5687         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5688         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5689         GL_PATH_DASH_OFFSET_NV           = $907E;
5690         GL_PATH_CLIENT_LENGTH_NV         = $907F;
5691         GL_PATH_FILL_MODE_NV             = $9080;
5692         GL_PATH_FILL_MASK_NV             = $9081;
5693         GL_PATH_FILL_COVER_MODE_NV       = $9082;
5694         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
5695         GL_PATH_STROKE_MASK_NV           = $9084;
5696         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
5697         GL_PATH_STROKE_BOUND_NV          = $9086;
5698         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
5699         GL_COUNT_UP_NV                   = $9088;
5700         GL_COUNT_DOWN_NV                 = $9089;
5701         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
5702         GL_CONVEX_HULL_NV                = $908B;
5703         GL_MULTI_HULLS_NV                = $908C;
5704         GL_BOUNDING_BOX_NV               = $908D;
5705         GL_TRANSLATE_X_NV                = $908E;
5706         GL_TRANSLATE_Y_NV                = $908F;
5707         GL_TRANSLATE_2D_NV               = $9090;
5708         GL_TRANSLATE_3D_NV               = $9091;
5709         GL_AFFINE_2D_NV                  = $9092;
5710         GL_PROJECTIVE_2D_NV              = $9093;
5711         GL_AFFINE_3D_NV                  = $9094;
5712         GL_PROJECTIVE_3D_NV              = $9095;
5713         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
5714         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
5715         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
5716         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
5717         GL_UTF8_NV                       = $909A;
5718         GL_UTF16_NV                      = $909B;
5719         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
5720         GL_PATH_COMMAND_COUNT_NV         = $909D;
5721         GL_PATH_COORD_COUNT_NV           = $909E;
5722   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
5723   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
5724   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
5725   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
5726   GL_SQUARE_NV                     = $90A3;
5727   GL_ROUND_NV                      = $90A4;
5728   GL_TRIANGULAR_NV                 = $90A5;
5729   GL_BEVEL_NV                      = $90A6;
5730   GL_MITER_REVERT_NV               = $90A7;
5731   GL_MITER_TRUNCATE_NV             = $90A8;
5732   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
5733   GL_USE_MISSING_GLYPH_NV          = $90AA;
5734   GL_PATH_ERROR_POSITION_NV        = $90AB;
5735   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
5736   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
5737   GL_ADJACENT_PAIRS_NV             = $90AE;
5738   GL_FIRST_TO_REST_NV              = $90AF;
5739   GL_PATH_GEN_MODE_NV              = $90B0;
5740   GL_PATH_GEN_COEFF_NV             = $90B1;
5741   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
5742   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
5743   GL_PATH_STENCIL_FUNC_NV          = $90B7;
5744   GL_PATH_STENCIL_REF_NV           = $90B8;
5745   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
5746   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
5747   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
5748   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
5749   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
5750   GL_MOVE_TO_RESETS_NV             = $90B5;
5751   GL_MOVE_TO_CONTINUES_NV          = $90B6;
5752   GL_CLOSE_PATH_NV                 = $00;
5753   GL_MOVE_TO_NV                    = $02;
5754   GL_RELATIVE_MOVE_TO_NV           = $03;
5755   GL_LINE_TO_NV                    = $04;
5756   GL_RELATIVE_LINE_TO_NV           = $05;
5757   GL_HORIZONTAL_LINE_TO_NV         = $06;
5758   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
5759   GL_VERTICAL_LINE_TO_NV           = $08;
5760   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
5761   GL_QUADRATIC_CURVE_TO_NV         = $0A;
5762   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
5763   GL_CUBIC_CURVE_TO_NV             = $0C;
5764   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
5765   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
5766   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
5767   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
5768   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
5769   GL_SMALL_CCW_ARC_TO_NV           = $12;
5770   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
5771   GL_SMALL_CW_ARC_TO_NV            = $14;
5772   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
5773   GL_LARGE_CCW_ARC_TO_NV           = $16;
5774   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
5775   GL_LARGE_CW_ARC_TO_NV            = $18;
5776   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
5777   GL_RESTART_PATH_NV               = $F0;
5778   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
5779   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
5780   GL_RECT_NV                       = $F6;
5781   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
5782   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
5783   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
5784   GL_ARC_TO_NV                     = $FE;
5785   GL_RELATIVE_ARC_TO_NV            = $FF;
5786   GL_BOLD_BIT_NV                   = $01;
5787   GL_ITALIC_BIT_NV                 = $02;
5788   GL_GLYPH_WIDTH_BIT_NV            = $01;
5789   GL_GLYPH_HEIGHT_BIT_NV           = $02;
5790   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
5791   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
5792   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
5793   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
5794   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
5795   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
5796   GL_GLYPH_HAS_KERNING_NV          = $100;
5797   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
5798   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
5799   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
5800   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
5801   GL_FONT_UNITS_PER_EM_NV          = $00100000;
5802   GL_FONT_ASCENDER_NV              = $00200000;
5803   GL_FONT_DESCENDER_NV             = $00400000;
5804   GL_FONT_HEIGHT_NV                = $00800000;
5805   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
5806   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
5807   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
5808   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
5809   GL_FONT_HAS_KERNING_NV           = $10000000;
5810
5811   // (4.3) GL_AMD_pinned_memory
5812   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
5813
5814   // (4.3) GL_AMD_stencil_operation_extended
5815   GL_SET_AMD                       = $874A;
5816   GL_REPLACE_VALUE_AMD             = $874B;
5817   GL_STENCIL_OP_VALUE_AMD          = $874C;
5818   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
5819
5820   // (4.3) GL_AMD_vertex_shader_viewport_index
5821
5822   // (4.3) GL_AMD_vertex_shader_layer
5823
5824   // (4.3) GL_NV_bindless_texture
5825
5826   // (4.3) GL_NV_shader_atomic_float
5827
5828   // (4.3) GL_AMD_query_buffer_object
5829   GL_QUERY_BUFFER_AMD              = $9192;
5830   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
5831   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
5832
5833   // GL_FfdMaskSGIX
5834   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
5835   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
5836
5837   // GL_HP_convolution_border_modes
5838   GL_IGNORE_BORDER_HP = $8150;
5839   GL_CONSTANT_BORDER_HP = $8151;
5840   GL_REPLICATE_BORDER_HP = $8153;
5841   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
5842
5843   // GL_HP_image_transform
5844   GL_IMAGE_SCALE_X_HP = $8155;
5845   GL_IMAGE_SCALE_Y_HP = $8156;
5846   GL_IMAGE_TRANSLATE_X_HP = $8157;
5847   GL_IMAGE_TRANSLATE_Y_HP = $8158;
5848   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
5849   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
5850   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
5851   GL_IMAGE_MAG_FILTER_HP = $815C;
5852   GL_IMAGE_MIN_FILTER_HP = $815D;
5853   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
5854   GL_CUBIC_HP = $815F;
5855   GL_AVERAGE_HP = $8160;
5856   GL_IMAGE_TRANSFORM_2D_HP = $8161;
5857   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
5858   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
5859
5860   // GL_HP_occlusion_test
5861   GL_OCCLUSION_TEST_HP = $8165;
5862   GL_OCCLUSION_TEST_RESULT_HP = $8166;
5863
5864   // GL_HP_texture_lighting
5865   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
5866   GL_TEXTURE_POST_SPECULAR_HP = $8168;
5867   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
5868
5869   // GL_IBM_cull_vertex
5870   GL_CULL_VERTEX_IBM = 103050;
5871
5872   // GL_IBM_rasterpos_clip
5873   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
5874
5875   // GL_IBM_texture_mirrored_repeat
5876   GL_MIRRORED_REPEAT_IBM = $8370;
5877
5878   // GL_IBM_vertex_array_lists
5879   GL_VERTEX_ARRAY_LIST_IBM = 103070;
5880   GL_NORMAL_ARRAY_LIST_IBM = 103071;
5881   GL_COLOR_ARRAY_LIST_IBM = 103072;
5882   GL_INDEX_ARRAY_LIST_IBM = 103073;
5883   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
5884   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
5885   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
5886   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
5887   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
5888   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
5889   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
5890   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
5891   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
5892   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
5893   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
5894   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
5895
5896   // GL_INGR_color_clamp
5897   GL_RED_MIN_CLAMP_INGR = $8560;
5898   GL_GREEN_MIN_CLAMP_INGR = $8561;
5899   GL_BLUE_MIN_CLAMP_INGR = $8562;
5900   GL_ALPHA_MIN_CLAMP_INGR = $8563;
5901   GL_RED_MAX_CLAMP_INGR = $8564;
5902   GL_GREEN_MAX_CLAMP_INGR = $8565;
5903   GL_BLUE_MAX_CLAMP_INGR = $8566;
5904   GL_ALPHA_MAX_CLAMP_INGR = $8567;
5905
5906   // GL_INGR_interlace_read
5907   GL_INTERLACE_READ_INGR = $8568;
5908
5909   // GL_INTEL_parallel_arrays
5910   GL_PARALLEL_ARRAYS_INTEL = $83F4;
5911   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
5912   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
5913   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
5914   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
5915
5916   // GL_NV_copy_depth_to_color
5917   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
5918   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
5919
5920   // GL_NV_depth_clamp
5921   GL_DEPTH_CLAMP_NV = $864F;
5922
5923   // GL_NV_evaluators
5924   GL_EVAL_2D_NV = $86C0;
5925   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
5926   GL_MAP_TESSELLATION_NV = $86C2;
5927   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
5928   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
5929   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
5930   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
5931   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
5932   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
5933   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
5934   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
5935   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
5936   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
5937   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
5938   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
5939   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
5940   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
5941   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
5942   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
5943   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
5944   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
5945   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
5946   GL_MAX_MAP_TESSELLATION_NV = $86D6;
5947   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
5948
5949   // GL_NV_fence
5950   GL_ALL_COMPLETED_NV = $84F2;
5951   GL_FENCE_STATUS_NV = $84F3;
5952   GL_FENCE_CONDITION_NV = $84F4;
5953
5954   // GL_NV_float_buffer
5955   GL_FLOAT_R_NV = $8880;
5956   GL_FLOAT_RG_NV = $8881;
5957   GL_FLOAT_RGB_NV = $8882;
5958   GL_FLOAT_RGBA_NV = $8883;
5959   GL_FLOAT_R16_NV = $8884;
5960   GL_FLOAT_R32_NV = $8885;
5961   GL_FLOAT_RG16_NV = $8886;
5962   GL_FLOAT_RG32_NV = $8887;
5963   GL_FLOAT_RGB16_NV = $8888;
5964   GL_FLOAT_RGB32_NV = $8889;
5965   GL_FLOAT_RGBA16_NV = $888A;
5966   GL_FLOAT_RGBA32_NV = $888B;
5967   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
5968   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
5969   GL_FLOAT_RGBA_MODE_NV = $888E;
5970
5971   // GL_NV_fog_distance
5972   GL_FOG_DISTANCE_MODE_NV = $855A;
5973   GL_EYE_RADIAL_NV = $855B;
5974   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
5975
5976   // GL_NV_fragment_program
5977   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
5978   GL_FRAGMENT_PROGRAM_NV = $8870;
5979   GL_MAX_TEXTURE_COORDS_NV = $8871;
5980   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
5981   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
5982   GL_PROGRAM_ERROR_STRING_NV = $8874;
5983
5984   // GL_NV_half_float
5985   GL_HALF_FLOAT_NV = $140B;
5986
5987   // GL_NV_light_max_exponent
5988   GL_MAX_SHININESS_NV = $8504;
5989   GL_MAX_SPOT_EXPONENT_NV = $8505;
5990
5991   // GL_NV_multisample_filter_hint
5992   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
5993
5994   // GL_NV_occlusion_query
5995   GL_PIXEL_COUNTER_BITS_NV = $8864;
5996   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
5997   GL_PIXEL_COUNT_NV = $8866;
5998   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
5999
6000   // GL_NV_packed_depth_stencil
6001   GL_DEPTH_STENCIL_NV = $84F9;
6002   GL_UNSIGNED_INT_24_8_NV = $84FA;
6003
6004   // GL_NV_pixel_data_range
6005   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
6006   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
6007   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
6008   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6009   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6010   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6011
6012   // GL_NV_point_sprite
6013   GL_POINT_SPRITE_NV = $8861;
6014   GL_COORD_REPLACE_NV = $8862;
6015   GL_POINT_SPRITE_R_MODE_NV = $8863;
6016
6017   // GL_NV_primitive_restart
6018   GL_PRIMITIVE_RESTART_NV = $8558;
6019   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6020
6021   // GL_NV_register_combiners
6022   GL_REGISTER_COMBINERS_NV = $8522;
6023   GL_VARIABLE_A_NV = $8523;
6024   GL_VARIABLE_B_NV = $8524;
6025   GL_VARIABLE_C_NV = $8525;
6026   GL_VARIABLE_D_NV = $8526;
6027   GL_VARIABLE_E_NV = $8527;
6028   GL_VARIABLE_F_NV = $8528;
6029   GL_VARIABLE_G_NV = $8529;
6030   GL_CONSTANT_COLOR0_NV = $852A;
6031   GL_CONSTANT_COLOR1_NV = $852B;
6032   GL_PRIMARY_COLOR_NV = $852C;
6033   GL_SECONDARY_COLOR_NV = $852D;
6034   GL_SPARE0_NV = $852E;
6035   GL_SPARE1_NV = $852F;
6036   GL_DISCARD_NV = $8530;
6037   GL_E_TIMES_F_NV = $8531;
6038   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6039   GL_UNSIGNED_IDENTITY_NV = $8536;
6040   GL_UNSIGNED_INVERT_NV = $8537;
6041   GL_EXPAND_NORMAL_NV = $8538;
6042   GL_EXPAND_NEGATE_NV = $8539;
6043   GL_HALF_BIAS_NORMAL_NV = $853A;
6044   GL_HALF_BIAS_NEGATE_NV = $853B;
6045   GL_SIGNED_IDENTITY_NV = $853C;
6046   GL_SIGNED_NEGATE_NV = $853D;
6047   GL_SCALE_BY_TWO_NV = $853E;
6048   GL_SCALE_BY_FOUR_NV = $853F;
6049   GL_SCALE_BY_ONE_HALF_NV = $8540;
6050   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6051   GL_COMBINER_INPUT_NV = $8542;
6052   GL_COMBINER_MAPPING_NV = $8543;
6053   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6054   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6055   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6056   GL_COMBINER_MUX_SUM_NV = $8547;
6057   GL_COMBINER_SCALE_NV = $8548;
6058   GL_COMBINER_BIAS_NV = $8549;
6059   GL_COMBINER_AB_OUTPUT_NV = $854A;
6060   GL_COMBINER_CD_OUTPUT_NV = $854B;
6061   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6062   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6063   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6064   GL_COLOR_SUM_CLAMP_NV = $854F;
6065   GL_COMBINER0_NV = $8550;
6066   GL_COMBINER1_NV = $8551;
6067   GL_COMBINER2_NV = $8552;
6068   GL_COMBINER3_NV = $8553;
6069   GL_COMBINER4_NV = $8554;
6070   GL_COMBINER5_NV = $8555;
6071   GL_COMBINER6_NV = $8556;
6072   GL_COMBINER7_NV = $8557;
6073
6074   // GL_NV_register_combiners2
6075   GL_PER_STAGE_CONSTANTS_NV = $8535;
6076
6077   // GL_NV_texgen_emboss
6078   GL_EMBOSS_LIGHT_NV = $855D;
6079   GL_EMBOSS_CONSTANT_NV = $855E;
6080   GL_EMBOSS_MAP_NV = $855F;
6081
6082   // GL_NV_texgen_reflection
6083   GL_NORMAL_MAP_NV = $8511;
6084   GL_REFLECTION_MAP_NV = $8512;
6085
6086   // GL_NV_texture_env_combine4
6087   GL_COMBINE4_NV = $8503;
6088   GL_SOURCE3_RGB_NV = $8583;
6089   GL_SOURCE3_ALPHA_NV = $858B;
6090   GL_OPERAND3_RGB_NV = $8593;
6091   GL_OPERAND3_ALPHA_NV = $859B;
6092
6093   // GL_NV_texture_expand_normal
6094   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6095
6096   // GL_NV_texture_rectangle
6097   GL_TEXTURE_RECTANGLE_NV = $84F5;
6098   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6099   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6100   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6101
6102   // GL_NV_texture_shader
6103   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6104   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6105   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6106   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6107   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6108   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6109   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6110   GL_SHADER_CONSISTENT_NV = $86DD;
6111   GL_TEXTURE_SHADER_NV = $86DE;
6112   GL_SHADER_OPERATION_NV = $86DF;
6113   GL_CULL_MODES_NV = $86E0;
6114   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6115   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6116   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6117   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6118   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6119   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6120   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6121   GL_CONST_EYE_NV = $86E5;
6122   GL_PASS_THROUGH_NV = $86E6;
6123   GL_CULL_FRAGMENT_NV = $86E7;
6124   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6125   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6126   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6127   GL_DOT_PRODUCT_NV = $86EC;
6128   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6129   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6130   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6131   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6132   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6133   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6134   GL_HILO_NV = $86F4;
6135   GL_DSDT_NV = $86F5;
6136   GL_DSDT_MAG_NV = $86F6;
6137   GL_DSDT_MAG_VIB_NV = $86F7;
6138   GL_HILO16_NV = $86F8;
6139   GL_SIGNED_HILO_NV = $86F9;
6140   GL_SIGNED_HILO16_NV = $86FA;
6141   GL_SIGNED_RGBA_NV = $86FB;
6142   GL_SIGNED_RGBA8_NV = $86FC;
6143   GL_SIGNED_RGB_NV = $86FE;
6144   GL_SIGNED_RGB8_NV = $86FF;
6145   GL_SIGNED_LUMINANCE_NV = $8701;
6146   GL_SIGNED_LUMINANCE8_NV = $8702;
6147   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6148   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6149   GL_SIGNED_ALPHA_NV = $8705;
6150   GL_SIGNED_ALPHA8_NV = $8706;
6151   GL_SIGNED_INTENSITY_NV = $8707;
6152   GL_SIGNED_INTENSITY8_NV = $8708;
6153   GL_DSDT8_NV = $8709;
6154   GL_DSDT8_MAG8_NV = $870A;
6155   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6156   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6157   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6158   GL_HI_SCALE_NV = $870E;
6159   GL_LO_SCALE_NV = $870F;
6160   GL_DS_SCALE_NV = $8710;
6161   GL_DT_SCALE_NV = $8711;
6162   GL_MAGNITUDE_SCALE_NV = $8712;
6163   GL_VIBRANCE_SCALE_NV = $8713;
6164   GL_HI_BIAS_NV = $8714;
6165   GL_LO_BIAS_NV = $8715;
6166   GL_DS_BIAS_NV = $8716;
6167   GL_DT_BIAS_NV = $8717;
6168   GL_MAGNITUDE_BIAS_NV = $8718;
6169   GL_VIBRANCE_BIAS_NV = $8719;
6170   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6171   GL_TEXTURE_HI_SIZE_NV = $871B;
6172   GL_TEXTURE_LO_SIZE_NV = $871C;
6173   GL_TEXTURE_DS_SIZE_NV = $871D;
6174   GL_TEXTURE_DT_SIZE_NV = $871E;
6175   GL_TEXTURE_MAG_SIZE_NV = $871F;
6176
6177   // GL_NV_texture_shader2
6178   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6179
6180   // GL_NV_texture_shader3
6181   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6182   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6183   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6184   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6185   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6186   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6187   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6188   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6189   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6190   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6191   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6192   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6193   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6194   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6195   GL_HILO8_NV = $885E;
6196   GL_SIGNED_HILO8_NV = $885F;
6197   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6198
6199   // GL_NV_vertex_array_range
6200   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6201   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6202   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6203   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6204   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6205
6206   // GL_NV_vertex_array_range2
6207   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6208
6209   // GL_NV_vertex_program
6210   GL_VERTEX_PROGRAM_NV = $8620;
6211   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6212   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6213   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6214   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6215   GL_CURRENT_ATTRIB_NV = $8626;
6216   GL_PROGRAM_LENGTH_NV = $8627;
6217   GL_PROGRAM_STRING_NV = $8628;
6218   GL_MODELVIEW_PROJECTION_NV = $8629;
6219   GL_IDENTITY_NV = $862A;
6220   GL_INVERSE_NV = $862B;
6221   GL_TRANSPOSE_NV = $862C;
6222   GL_INVERSE_TRANSPOSE_NV = $862D;
6223   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6224   GL_MAX_TRACK_MATRICES_NV = $862F;
6225   GL_MATRIX0_NV = $8630;
6226   GL_MATRIX1_NV = $8631;
6227   GL_MATRIX2_NV = $8632;
6228   GL_MATRIX3_NV = $8633;
6229   GL_MATRIX4_NV = $8634;
6230   GL_MATRIX5_NV = $8635;
6231   GL_MATRIX6_NV = $8636;
6232   GL_MATRIX7_NV = $8637;
6233   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6234   GL_CURRENT_MATRIX_NV = $8641;
6235   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6236   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6237   GL_PROGRAM_PARAMETER_NV = $8644;
6238   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6239   GL_PROGRAM_TARGET_NV = $8646;
6240   GL_PROGRAM_RESIDENT_NV = $8647;
6241   GL_TRACK_MATRIX_NV = $8648;
6242   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6243   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6244   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6245   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6246   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6247   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6248   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6249   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6250   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6251   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6252   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6253   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6254   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6255   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6256   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6257   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6258   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6259   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6260   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6261   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6262   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6263   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6264   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6265   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6266   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6267   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6268   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6269   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6270   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6271   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6272   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6273   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6274   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6275   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6276   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6277   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6278   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6279   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6280   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6281   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6282   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6283   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6284   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6285   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6286   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6287   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6288   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6289   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6290   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6291   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6292   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6293
6294   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6295   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6296   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6297
6298   // GL_NV_fragment_program2
6299   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6300   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6301   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6302
6303   // GL_NV_vertex_program3
6304   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6305
6306   // GL_NV_depth_buffer_float
6307   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6308   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6309
6310   // GL_NV_framebuffer_multisample_coverage
6311   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6312   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6313
6314   // GL_NV_geometry_program4
6315   GL_GEOMETRY_PROGRAM_NV = $8C26;
6316   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6317   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6318
6319   // GL_NV_gpu_program4
6320   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6321   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6322   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6323   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6324   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6325   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6326
6327   // GL_NV_parameter_buffer_object
6328   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6329   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6330   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6331   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6332   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6333
6334   // GL_NV_transform_feedback
6335   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6336   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6337   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6338   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6339   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6340   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6341   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6342   GL_PRIMITIVES_GENERATED_NV = $8C87;
6343   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6344   GL_RASTERIZER_DISCARD_NV = $8C89;
6345   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6346   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6347   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6348   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6349   GL_ACTIVE_VARYINGS_NV = $8C81;
6350   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6351   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6352   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6353   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6354   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6355   GL_TEXTURE_COORD_NV = $8C79;
6356   GL_CLIP_DISTANCE_NV = $8C7A;
6357   GL_VERTEX_ID_NV = $8C7B;
6358   GL_PRIMITIVE_ID_NV = $8C7C;
6359   GL_GENERIC_ATTRIB_NV = $8C7D;
6360   GL_LAYER_NV = $8DAA;
6361   GL_NEXT_BUFFER_NV = -2;
6362   GL_SKIP_COMPONENTS4_NV = -3;
6363   GL_SKIP_COMPONENTS3_NV = -4;
6364   GL_SKIP_COMPONENTS2_NV = -5;
6365   GL_SKIP_COMPONENTS1_NV = -6;
6366
6367   // GL_NV_conditional_render
6368   GL_QUERY_WAIT_NV = $8E13;
6369   GL_QUERY_NO_WAIT_NV = $8E14;
6370   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6371   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6372
6373   // GL_NV_present_video
6374   GL_FRAME_NV = $8E26;
6375   GL_FIELDS_NV = $8E27;
6376   GL_CURRENT_TIME_NV = $8E28;
6377   GL_NUM_FILL_STREAMS_NV = $8E29;
6378   GL_PRESENT_TIME_NV = $8E2A;
6379   GL_PRESENT_DURATION_NV = $8E2B;
6380
6381   // GL_NV_explicit_multisample
6382   GL_SAMPLE_POSITION_NV = $8E50;
6383   GL_SAMPLE_MASK_NV = $8E51;
6384   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6385   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6386   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6387   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6388   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6389   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6390   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6391   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6392
6393   // GL_NV_transform_feedback2
6394   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6395   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6396   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6397   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6398
6399   // GL_NV_video_capture
6400   GL_VIDEO_BUFFER_NV = $9020;
6401   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6402   GL_FIELD_UPPER_NV = $9022;
6403   GL_FIELD_LOWER_NV = $9023;
6404   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6405   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6406   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6407   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6408   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6409   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6410   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6411   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6412   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6413   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6414   GL_PARTIAL_SUCCESS_NV = $902E;
6415   GL_SUCCESS_NV = $902F;
6416   GL_FAILURE_NV = $9030;
6417   GL_YCBYCR8_422_NV = $9031;
6418   GL_YCBAYCR8A_4224_NV = $9032;
6419   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6420   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6421   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6422   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6423   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6424   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6425   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6426   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6427   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6428   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6429
6430   // GL_NV_shader_buffer_load
6431   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6432   GL_GPU_ADDRESS_NV = $8F34;
6433   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6434
6435   // GL_NV_vertex_buffer_unified_memory
6436   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6437   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6438   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6439   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6440   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6441   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6442   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6443   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6444   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6445   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6446   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6447   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6448   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6449   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6450   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6451   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6452   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6453   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6454   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6455   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6456   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6457   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6458   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6459   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6460   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6461
6462   // GL_NV_gpu_program5
6463   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6464   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6465   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6466   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6467   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6468   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6469   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6470   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6471
6472   // GL_NV_gpu_shader5
6473   GL_INT64_NV = $140E;
6474   GL_UNSIGNED_INT64_NV = $140F;
6475   GL_INT8_NV = $8FE0;
6476   GL_INT8_VEC2_NV = $8FE1;
6477   GL_INT8_VEC3_NV = $8FE2;
6478   GL_INT8_VEC4_NV = $8FE3;
6479   GL_INT16_NV = $8FE4;
6480   GL_INT16_VEC2_NV = $8FE5;
6481   GL_INT16_VEC3_NV = $8FE6;
6482   GL_INT16_VEC4_NV = $8FE7;
6483   GL_INT64_VEC2_NV = $8FE9;
6484   GL_INT64_VEC3_NV = $8FEA;
6485   GL_INT64_VEC4_NV = $8FEB;
6486   GL_UNSIGNED_INT8_NV = $8FEC;
6487   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6488   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6489   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6490   GL_UNSIGNED_INT16_NV = $8FF0;
6491   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6492   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6493   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6494   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6495   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6496   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6497   GL_FLOAT16_NV = $8FF8;
6498   GL_FLOAT16_VEC2_NV = $8FF9;
6499   GL_FLOAT16_VEC3_NV = $8FFA;
6500   GL_FLOAT16_VEC4_NV = $8FFB;
6501   { reuse GL_PATCHES }
6502
6503   // GL_NV_shader_buffer_store
6504   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6505   { reuse GL_READ_WRITE }
6506   { reuse GL_WRITE_ONLY }
6507
6508   // GL_NV_tessellation_program5
6509   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6510   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6511   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6512   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6513   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6514
6515   // GL_NV_vertex_attrib_integer_64bit
6516   { reuse GL_INT64_NV }
6517   { reuse GL_UNSIGNED_INT64_NV }
6518
6519   // GL_NV_multisample_coverage
6520   GL_COVERAGE_SAMPLES_NV = $80A9;
6521   GL_COLOR_SAMPLES_NV = $8E20;
6522
6523   // GL_NV_vdpau_interop
6524   GL_SURFACE_STATE_NV = $86EB;
6525   GL_SURFACE_REGISTERED_NV = $86FD;
6526   GL_SURFACE_MAPPED_NV = $8700;
6527   GL_WRITE_DISCARD_NV = $88BE;
6528
6529   // GL_OML_interlace
6530   GL_INTERLACE_OML = $8980;
6531   GL_INTERLACE_READ_OML = $8981;
6532
6533   // GL_OML_resample
6534   GL_PACK_RESAMPLE_OML = $8984;
6535   GL_UNPACK_RESAMPLE_OML = $8985;
6536   GL_RESAMPLE_REPLICATE_OML = $8986;
6537   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6538   GL_RESAMPLE_AVERAGE_OML = $8988;
6539   GL_RESAMPLE_DECIMATE_OML = $8989;
6540
6541   // GL_OML_subsample
6542   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6543   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6544
6545   // GL_PGI_misc_hints
6546   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6547   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6548   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6549   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6550   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6551   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6552   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6553   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6554   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6555   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6556   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6557   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6558   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6559   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6560   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6561   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6562   GL_CLIP_NEAR_HINT_PGI = $1A220;
6563   GL_CLIP_FAR_HINT_PGI = $1A221;
6564   GL_WIDE_LINE_HINT_PGI = $1A222;
6565   GL_BACK_NORMALS_HINT_PGI = $1A223;
6566
6567   // GL_PGI_vertex_hints
6568   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6569   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6570   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6571   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6572   GL_COLOR3_BIT_PGI = $00010000;
6573   GL_COLOR4_BIT_PGI = $00020000;
6574   GL_EDGEFLAG_BIT_PGI = $00040000;
6575   GL_INDEX_BIT_PGI = $00080000;
6576   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6577   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6578   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6579   GL_MAT_EMISSION_BIT_PGI = $00800000;
6580   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6581   GL_MAT_SHININESS_BIT_PGI = $02000000;
6582   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6583   GL_NORMAL_BIT_PGI = $08000000;
6584   GL_TEXCOORD1_BIT_PGI = $10000000;
6585   GL_TEXCOORD2_BIT_PGI = $20000000;
6586   GL_TEXCOORD3_BIT_PGI = $40000000;
6587   GL_TEXCOORD4_BIT_PGI = $80000000;
6588   GL_VERTEX23_BIT_PGI = $00000004;
6589   GL_VERTEX4_BIT_PGI = $00000008;
6590
6591   // GL_REND_screen_coordinates
6592   GL_SCREEN_COORDINATES_REND = $8490;
6593   GL_INVERTED_SCREEN_W_REND = $8491;
6594
6595   // GL_S3_s3tc
6596   GL_RGB_S3TC = $83A0;
6597   GL_RGB4_S3TC = $83A1;
6598   GL_RGBA_S3TC = $83A2;
6599   GL_RGBA4_S3TC = $83A3;
6600
6601   // GL_SGIS_detail_texture
6602   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6603   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6604   GL_LINEAR_DETAIL_SGIS = $8097;
6605   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6606   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6607   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6608   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6609   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6610
6611   // GL_SGIS_fog_function
6612   GL_FOG_FUNC_SGIS = $812A;
6613   GL_FOG_FUNC_POINTS_SGIS = $812B;
6614   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6615
6616   // GL_SGIS_generate_mipmap
6617   GL_GENERATE_MIPMAP_SGIS = $8191;
6618   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6619
6620   // GL_SGIS_multisample
6621   GL_MULTISAMPLE_SGIS = $809D;
6622   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6623   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6624   GL_SAMPLE_MASK_SGIS = $80A0;
6625   GL_1PASS_SGIS = $80A1;
6626   GL_2PASS_0_SGIS = $80A2;
6627   GL_2PASS_1_SGIS = $80A3;
6628   GL_4PASS_0_SGIS = $80A4;
6629   GL_4PASS_1_SGIS = $80A5;
6630   GL_4PASS_2_SGIS = $80A6;
6631   GL_4PASS_3_SGIS = $80A7;
6632   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6633   GL_SAMPLES_SGIS = $80A9;
6634   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6635   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6636   GL_SAMPLE_PATTERN_SGIS = $80AC;
6637
6638   // GL_SGIS_pixel_texture
6639   GL_PIXEL_TEXTURE_SGIS = $8353;
6640   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6641   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6642   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6643
6644   // GL_SGIS_point_line_texgen
6645   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6646   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6647   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6648   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6649   GL_EYE_POINT_SGIS = $81F4;
6650   GL_OBJECT_POINT_SGIS = $81F5;
6651   GL_EYE_LINE_SGIS = $81F6;
6652   GL_OBJECT_LINE_SGIS = $81F7;
6653
6654   // GL_SGIS_point_parameters
6655   GL_POINT_SIZE_MIN_SGIS = $8126;
6656   GL_POINT_SIZE_MAX_SGIS = $8127;
6657   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6658   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6659
6660   // GL_SGIS_sharpen_texture
6661   GL_LINEAR_SHARPEN_SGIS = $80AD;
6662   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6663   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6664   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6665
6666   // GL_SGIS_texture4D
6667   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6668   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6669   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6670   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6671   GL_TEXTURE_4D_SGIS = $8134;
6672   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6673   GL_TEXTURE_4DSIZE_SGIS = $8136;
6674   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6675   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6676   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6677
6678   // GL_SGIS_texture_color_mask
6679   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6680
6681   // GL_SGIS_texture_edge_clamp
6682   GL_CLAMP_TO_EDGE_SGIS = $812F;
6683
6684   // GL_SGIS_texture_filter4
6685   GL_FILTER4_SGIS = $8146;
6686   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6687
6688   // GL_SGIS_texture_lod
6689   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6690   GL_TEXTURE_MAX_LOD_SGIS = $813B;
6691   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
6692   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
6693
6694   // GL_SGIS_texture_select
6695   GL_DUAL_ALPHA4_SGIS = $8110;
6696   GL_DUAL_ALPHA8_SGIS = $8111;
6697   GL_DUAL_ALPHA12_SGIS = $8112;
6698   GL_DUAL_ALPHA16_SGIS = $8113;
6699   GL_DUAL_LUMINANCE4_SGIS = $8114;
6700   GL_DUAL_LUMINANCE8_SGIS = $8115;
6701   GL_DUAL_LUMINANCE12_SGIS = $8116;
6702   GL_DUAL_LUMINANCE16_SGIS = $8117;
6703   GL_DUAL_INTENSITY4_SGIS = $8118;
6704   GL_DUAL_INTENSITY8_SGIS = $8119;
6705   GL_DUAL_INTENSITY12_SGIS = $811A;
6706   GL_DUAL_INTENSITY16_SGIS = $811B;
6707   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
6708   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
6709   GL_QUAD_ALPHA4_SGIS = $811E;
6710   GL_QUAD_ALPHA8_SGIS = $811F;
6711   GL_QUAD_LUMINANCE4_SGIS = $8120;
6712   GL_QUAD_LUMINANCE8_SGIS = $8121;
6713   GL_QUAD_INTENSITY4_SGIS = $8122;
6714   GL_QUAD_INTENSITY8_SGIS = $8123;
6715   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
6716   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
6717
6718   // GL_SGIX_async
6719   GL_ASYNC_MARKER_SGIX = $8329;
6720
6721   // GL_SGIX_async_histogram
6722   GL_ASYNC_HISTOGRAM_SGIX = $832C;
6723   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
6724
6725   // GL_SGIX_async_pixel
6726   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
6727   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
6728   GL_ASYNC_READ_PIXELS_SGIX = $835E;
6729   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
6730   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
6731   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
6732
6733   // GL_SGIX_blend_alpha_minmax
6734   GL_ALPHA_MIN_SGIX = $8320;
6735   GL_ALPHA_MAX_SGIX = $8321;
6736
6737   // GL_SGIX_calligraphic_fragment
6738   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
6739
6740   // GL_SGIX_clipmap
6741   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
6742   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
6743   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
6744   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
6745   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
6746   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
6747   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
6748   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
6749   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
6750   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
6751   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
6752   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
6753
6754   // GL_SGIX_convolution_accuracy
6755   GL_CONVOLUTION_HINT_SGIX = $8316;
6756
6757   // GL_SGIX_depth_texture
6758   GL_DEPTH_COMPONENT16_SGIX = $81A5;
6759   GL_DEPTH_COMPONENT24_SGIX = $81A6;
6760   GL_DEPTH_COMPONENT32_SGIX = $81A7;
6761
6762   // GL_SGIX_fog_offset
6763   GL_FOG_OFFSET_SGIX = $8198;
6764   GL_FOG_OFFSET_VALUE_SGIX = $8199;
6765
6766   // GL_SGIX_fog_scale
6767   GL_FOG_SCALE_SGIX = $81FC;
6768   GL_FOG_SCALE_VALUE_SGIX = $81FD;
6769
6770   // GL_SGIX_fragment_lighting
6771   GL_FRAGMENT_LIGHTING_SGIX = $8400;
6772   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
6773   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
6774   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
6775   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
6776   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
6777   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
6778   GL_LIGHT_ENV_MODE_SGIX = $8407;
6779   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
6780   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
6781   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
6782   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
6783   GL_FRAGMENT_LIGHT0_SGIX = $840C;
6784   GL_FRAGMENT_LIGHT1_SGIX = $840D;
6785   GL_FRAGMENT_LIGHT2_SGIX = $840E;
6786   GL_FRAGMENT_LIGHT3_SGIX = $840F;
6787   GL_FRAGMENT_LIGHT4_SGIX = $8410;
6788   GL_FRAGMENT_LIGHT5_SGIX = $8411;
6789   GL_FRAGMENT_LIGHT6_SGIX = $8412;
6790   GL_FRAGMENT_LIGHT7_SGIX = $8413;
6791
6792   // GL_SGIX_framezoom
6793   GL_FRAMEZOOM_SGIX = $818B;
6794   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
6795   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
6796
6797   // GL_SGIX_impact_pixel_texture
6798   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
6799   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
6800   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
6801   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
6802   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
6803   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
6804   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
6805
6806   // GL_SGIX_instruments
6807   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
6808   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
6809
6810   // GL_SGIX_interlace
6811   GL_INTERLACE_SGIX = $8094;
6812
6813   // GL_SGIX_ir_instrument1
6814   GL_IR_INSTRUMENT1_SGIX = $817F;
6815
6816   // GL_SGIX_list_priority
6817   GL_LIST_PRIORITY_SGIX = $8182;
6818
6819   // GL_SGIX_pixel_texture
6820   GL_PIXEL_TEX_GEN_SGIX = $8139;
6821   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
6822
6823   // GL_SGIX_pixel_tiles
6824   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
6825   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
6826   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
6827   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
6828   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
6829   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
6830   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
6831   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
6832
6833   // GL_SGIX_polynomial_ffd
6834   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
6835   GL_TEXTURE_DEFORMATION_SGIX = $8195;
6836   GL_DEFORMATIONS_MASK_SGIX = $8196;
6837   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
6838
6839   // GL_SGIX_reference_plane
6840   GL_REFERENCE_PLANE_SGIX = $817D;
6841   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
6842
6843   // GL_SGIX_resample
6844   GL_PACK_RESAMPLE_SGIX = $842C;
6845   GL_UNPACK_RESAMPLE_SGIX = $842D;
6846   GL_RESAMPLE_REPLICATE_SGIX = $842E;
6847   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
6848   GL_RESAMPLE_DECIMATE_SGIX = $8430;
6849
6850   // GL_SGIX_scalebias_hint
6851   GL_SCALEBIAS_HINT_SGIX = $8322;
6852
6853   // GL_SGIX_shadow
6854   GL_TEXTURE_COMPARE_SGIX = $819A;
6855   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
6856   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
6857   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
6858
6859   // GL_SGIX_shadow_ambient
6860   GL_SHADOW_AMBIENT_SGIX = $80BF;
6861
6862   // GL_SGIX_sprite
6863   GL_SPRITE_SGIX = $8148;
6864   GL_SPRITE_MODE_SGIX = $8149;
6865   GL_SPRITE_AXIS_SGIX = $814A;
6866   GL_SPRITE_TRANSLATION_SGIX = $814B;
6867   GL_SPRITE_AXIAL_SGIX = $814C;
6868   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
6869   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
6870
6871   // GL_SGIX_subsample
6872   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
6873   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
6874   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
6875   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
6876   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
6877
6878   // GL_SGIX_texture_add_env
6879   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
6880
6881   // GL_SGIX_texture_coordinate_clamp
6882   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
6883   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
6884   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
6885
6886   // GL_SGIX_texture_lod_bias
6887   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
6888   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
6889   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
6890
6891   // GL_SGIX_texture_multi_buffer
6892   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
6893
6894   // GL_SGIX_texture_scale_bias
6895   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
6896   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
6897   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
6898   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
6899
6900   // GL_SGIX_vertex_preclip
6901   GL_VERTEX_PRECLIP_SGIX = $83EE;
6902   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
6903
6904   // GL_SGIX_ycrcb
6905   GL_YCRCB_422_SGIX = $81BB;
6906   GL_YCRCB_444_SGIX = $81BC;
6907
6908   // GL_SGIX_ycrcba
6909   GL_YCRCB_SGIX = $8318;
6910   GL_YCRCBA_SGIX = $8319;
6911
6912   // GL_SGI_color_matrix
6913   GL_COLOR_MATRIX_SGI = $80B1;
6914   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
6915   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
6916   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
6917   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
6918   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
6919   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
6920   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
6921   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
6922   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
6923   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
6924
6925   // GL_SGI_color_table
6926   GL_COLOR_TABLE_SGI = $80D0;
6927   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
6928   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
6929   GL_PROXY_COLOR_TABLE_SGI = $80D3;
6930   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
6931   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
6932   GL_COLOR_TABLE_SCALE_SGI = $80D6;
6933   GL_COLOR_TABLE_BIAS_SGI = $80D7;
6934   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
6935   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
6936   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
6937   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
6938   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
6939   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
6940   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
6941   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
6942
6943   // GL_SGI_depth_pass_instrument
6944   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
6945   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
6946   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
6947
6948   // GL_SGI_texture_color_table
6949   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
6950   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
6951
6952   // GL_SUNX_constant_data
6953   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
6954   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
6955
6956   // GL_SUN_convolution_border_modes
6957   GL_WRAP_BORDER_SUN = $81D4;
6958
6959   // GL_SUN_global_alpha
6960   GL_GLOBAL_ALPHA_SUN = $81D9;
6961   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
6962
6963   // GL_SUN_mesh_array
6964   GL_QUAD_MESH_SUN = $8614;
6965   GL_TRIANGLE_MESH_SUN = $8615;
6966
6967   // GL_SUN_slice_accum
6968   GL_SLICE_ACCUM_SUN = $85CC;
6969
6970   // GL_SUN_triangle_list
6971   GL_RESTART_SUN = $0001;
6972   GL_REPLACE_MIDDLE_SUN = $0002;
6973   GL_REPLACE_OLDEST_SUN = $0003;
6974   GL_TRIANGLE_LIST_SUN = $81D7;
6975   GL_REPLACEMENT_CODE_SUN = $81D8;
6976   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
6977   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
6978   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
6979   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
6980   GL_R1UI_V3F_SUN = $85C4;
6981   GL_R1UI_C4UB_V3F_SUN = $85C5;
6982   GL_R1UI_C3F_V3F_SUN = $85C6;
6983   GL_R1UI_N3F_V3F_SUN = $85C7;
6984   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
6985   GL_R1UI_T2F_V3F_SUN = $85C9;
6986   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
6987   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
6988
6989   // GL_WIN_phong_shading
6990   GL_PHONG_WIN = $80EA;
6991   GL_PHONG_HINT_WIN = $80EB;
6992
6993   // GL_WIN_specular_fog
6994   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
6995
6996   // GL_ARB_vertex_shader
6997   GL_VERTEX_SHADER_ARB = $8B31;
6998   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
6999   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
7000   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
7001   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
7002   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
7003   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
7004
7005   // GL_KHR_blend_equation_advanced
7006   GL_MULTIPLY_KHR = $9294;
7007   GL_SCREEN_KHR = $9295;
7008   GL_OVERLAY_KHR = $9296;
7009   GL_DARKEN_KHR = $9297;
7010   GL_LIGHTEN_KHR = $9298;
7011   GL_COLORDODGE_KHR = $9299;
7012   GL_COLORBURN_KHR = $929A;
7013   GL_HARDLIGHT_KHR = $929B;
7014   GL_SOFTLIGHT_KHR = $929C;
7015   GL_DIFFERENCE_KHR = $929E;
7016   GL_EXCLUSION_KHR = $92A0;
7017   GL_HSL_HUE_KHR = $92AD;
7018   GL_HSL_SATURATION_KHR = $92AE;
7019   GL_HSL_COLOR_KHR = $92AF;
7020   GL_HSL_LUMINOSITY_KHR = $92B0;
7021
7022   // GL_KHR_blend_equation_advanced_coherent
7023   GL_BLEND_ADVANCED_COHERENT_KHR = $9285;
7024
7025   // GL_KHR_robustness
7026   GL_CONTEXT_ROBUST_ACCESS = $90F3;
7027
7028   // GL_ARB_fragment_shader
7029   GL_FRAGMENT_SHADER_ARB = $8B30;
7030   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7031   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7032
7033   // GL_ARB_occlusion_query
7034   GL_SAMPLES_PASSED_ARB = $8914;
7035   GL_QUERY_COUNTER_BITS_ARB = $8864;
7036   GL_CURRENT_QUERY_ARB = $8865;
7037   GL_QUERY_RESULT_ARB = $8866;
7038   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7039
7040   // GL_ARB_pipeline_statistics_query
7041   GL_VERTICES_SUBMITTED_ARB         = $82EE;
7042   GL_PRIMITIVES_SUBMITTED_ARB       = $82EF;
7043   GL_VERTEX_SHADER_INVOCATIONS_ARB  = $82F0;
7044   GL_TESS_CONTROL_SHADER_PATCHES_ARB = $82F1;
7045   GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = $82F2;
7046   GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = $82F3;
7047   GL_FRAGMENT_SHADER_INVOCATIONS_ARB = $82F4;
7048   GL_COMPUTE_SHADER_INVOCATIONS_ARB = $82F5;
7049   GL_CLIPPING_INPUT_PRIMITIVES_ARB  = $82F6;
7050   GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = $82F7;
7051
7052   // GL_ARB_point_sprite
7053   GL_POINT_SPRITE_ARB = $8861;
7054   GL_COORD_REPLACE_ARB = $8862;
7055
7056   // GL_ARB_shading_language_100
7057   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7058
7059   // GL_ARB_shader_objects
7060   GL_PROGRAM_OBJECT_ARB = $8B40;
7061
7062   GL_OBJECT_TYPE_ARB = $8B4E;
7063   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7064   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7065   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7066   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7067   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7068   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7069   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7070   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7071   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7072   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7073
7074   GL_SHADER_OBJECT_ARB = $8B48;
7075
7076   GL_FLOAT_VEC2_ARB = $8B50;
7077   GL_FLOAT_VEC3_ARB = $8B51;
7078   GL_FLOAT_VEC4_ARB = $8B52;
7079   GL_INT_VEC2_ARB = $8B53;
7080   GL_INT_VEC3_ARB = $8B54;
7081   GL_INT_VEC4_ARB = $8B55;
7082   GL_BOOL_ARB = $8B56;
7083   GL_BOOL_VEC2_ARB = $8B57;
7084   GL_BOOL_VEC3_ARB = $8B58;
7085   GL_BOOL_VEC4_ARB = $8B59;
7086   GL_FLOAT_MAT2_ARB = $8B5A;
7087   GL_FLOAT_MAT3_ARB = $8B5B;
7088   GL_FLOAT_MAT4_ARB = $8B5C;
7089   GL_SAMPLER_1D_ARB = $8B5D;
7090   GL_SAMPLER_2D_ARB = $8B5E;
7091   GL_SAMPLER_3D_ARB = $8B5F;
7092   GL_SAMPLER_CUBE_ARB = $8B60;
7093   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7094   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7095   GL_SAMPLER_2D_RECT_ARB = $8B63;
7096   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7097
7098   // WGL_3DFX_multisample
7099   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7100   WGL_SAMPLES_3DFX = $2061;
7101
7102   // WGL_ARB_buffer_region
7103   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7104   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7105   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7106   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7107
7108   // WGL_ARB_context_flush_control
7109   WGL_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7110   WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7111   WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7112
7113   // WGL_ARB_make_current_read
7114   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7115   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7116
7117   // WGL_ARB_multisample
7118   WGL_SAMPLE_BUFFERS_ARB = $2041;
7119   WGL_SAMPLES_ARB = $2042;
7120
7121   // WGL_ARB_pbuffer
7122   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7123   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7124   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7125   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7126   WGL_PBUFFER_LARGEST_ARB = $2033;
7127   WGL_PBUFFER_WIDTH_ARB = $2034;
7128   WGL_PBUFFER_HEIGHT_ARB = $2035;
7129   WGL_PBUFFER_LOST_ARB = $2036;
7130
7131   // WGL_ARB_pixel_format
7132   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7133   WGL_DRAW_TO_WINDOW_ARB = $2001;
7134   WGL_DRAW_TO_BITMAP_ARB = $2002;
7135   WGL_ACCELERATION_ARB = $2003;
7136   WGL_NEED_PALETTE_ARB = $2004;
7137   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7138   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7139   WGL_SWAP_METHOD_ARB = $2007;
7140   WGL_NUMBER_OVERLAYS_ARB = $2008;
7141   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7142   WGL_TRANSPARENT_ARB = $200A;
7143   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7144   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7145   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7146   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7147   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7148   WGL_SHARE_DEPTH_ARB = $200C;
7149   WGL_SHARE_STENCIL_ARB = $200D;
7150   WGL_SHARE_ACCUM_ARB = $200E;
7151   WGL_SUPPORT_GDI_ARB = $200F;
7152   WGL_SUPPORT_OPENGL_ARB = $2010;
7153   WGL_DOUBLE_BUFFER_ARB = $2011;
7154   WGL_STEREO_ARB = $2012;
7155   WGL_PIXEL_TYPE_ARB = $2013;
7156   WGL_COLOR_BITS_ARB = $2014;
7157   WGL_RED_BITS_ARB = $2015;
7158   WGL_RED_SHIFT_ARB = $2016;
7159   WGL_GREEN_BITS_ARB = $2017;
7160   WGL_GREEN_SHIFT_ARB = $2018;
7161   WGL_BLUE_BITS_ARB = $2019;
7162   WGL_BLUE_SHIFT_ARB = $201A;
7163   WGL_ALPHA_BITS_ARB = $201B;
7164   WGL_ALPHA_SHIFT_ARB = $201C;
7165   WGL_ACCUM_BITS_ARB = $201D;
7166   WGL_ACCUM_RED_BITS_ARB = $201E;
7167   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7168   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7169   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7170   WGL_DEPTH_BITS_ARB = $2022;
7171   WGL_STENCIL_BITS_ARB = $2023;
7172   WGL_AUX_BUFFERS_ARB = $2024;
7173   WGL_NO_ACCELERATION_ARB = $2025;
7174   WGL_GENERIC_ACCELERATION_ARB = $2026;
7175   WGL_FULL_ACCELERATION_ARB = $2027;
7176   WGL_SWAP_EXCHANGE_ARB = $2028;
7177   WGL_SWAP_COPY_ARB = $2029;
7178   WGL_SWAP_UNDEFINED_ARB = $202A;
7179   WGL_TYPE_RGBA_ARB = $202B;
7180   WGL_TYPE_COLORINDEX_ARB = $202C;
7181
7182   // WGL_ARB_pixel_format_float
7183   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7184   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7185   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7186   WGL_CLAMP_READ_COLOR_ARB = $891C;
7187   WGL_FIXED_ONLY_ARB = $891D;
7188
7189   // WGL_ARB_render_texture
7190   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7191   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7192   WGL_TEXTURE_FORMAT_ARB = $2072;
7193   WGL_TEXTURE_TARGET_ARB = $2073;
7194   WGL_MIPMAP_TEXTURE_ARB = $2074;
7195   WGL_TEXTURE_RGB_ARB = $2075;
7196   WGL_TEXTURE_RGBA_ARB = $2076;
7197   WGL_NO_TEXTURE_ARB = $2077;
7198   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7199   WGL_TEXTURE_1D_ARB = $2079;
7200   WGL_TEXTURE_2D_ARB = $207A;
7201   WGL_MIPMAP_LEVEL_ARB = $207B;
7202   WGL_CUBE_MAP_FACE_ARB = $207C;
7203   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7204   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7205   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7206   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7207   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7208   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7209   WGL_FRONT_LEFT_ARB = $2083;
7210   WGL_FRONT_RIGHT_ARB = $2084;
7211   WGL_BACK_LEFT_ARB = $2085;
7212   WGL_BACK_RIGHT_ARB = $2086;
7213   WGL_AUX0_ARB = $2087;
7214   WGL_AUX1_ARB = $2088;
7215   WGL_AUX2_ARB = $2089;
7216   WGL_AUX3_ARB = $208A;
7217   WGL_AUX4_ARB = $208B;
7218   WGL_AUX5_ARB = $208C;
7219   WGL_AUX6_ARB = $208D;
7220   WGL_AUX7_ARB = $208E;
7221   WGL_AUX8_ARB = $208F;
7222   WGL_AUX9_ARB = $2090;
7223
7224   // WGL_ARB_robustness_application_isolation
7225   WGL_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7226
7227   // WGL_ARB_create_context
7228   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7229   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7230   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7231   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7232   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7233   WGL_CONTEXT_FLAGS_ARB = $2094;
7234   ERROR_INVALID_VERSION_ARB = $2095;
7235
7236   // WGL_ARB_create_context_profile
7237   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7238   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7239   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7240   ERROR_INVALID_PROFILE_ARB = $2096;
7241
7242   // WGL_ARB_framebuffer_sRGB
7243   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7244
7245   // WGL_ARB_create_context_robustness
7246   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7247   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7248   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7249   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7250
7251   // WGL_ATI_pixel_format_float
7252   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7253   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7254   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7255
7256   // WGL_AMD_gpu_association
7257   WGL_GPU_VENDOR_AMD = $1F00;
7258   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7259   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7260   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7261   WGL_GPU_RAM_AMD = $21A3;
7262   WGL_GPU_CLOCK_AMD = $21A4;
7263   WGL_GPU_NUM_PIPES_AMD = $21A5;
7264   WGL_GPU_NUM_SIMD_AMD = $21A6;
7265   WGL_GPU_NUM_RB_AMD = $21A7;
7266   WGL_GPU_NUM_SPI_AMD = $21A8;
7267
7268   // WGL_EXT_depth_float
7269   WGL_DEPTH_FLOAT_EXT = $2040;
7270
7271   // WGL_EXT_make_current_read
7272   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7273
7274   // WGL_EXT_multisample
7275   WGL_SAMPLE_BUFFERS_EXT = $2041;
7276   WGL_SAMPLES_EXT = $2042;
7277
7278   // WGL_EXT_pbuffer
7279   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7280   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7281   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7282   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7283   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7284   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7285   WGL_PBUFFER_LARGEST_EXT = $2033;
7286   WGL_PBUFFER_WIDTH_EXT = $2034;
7287   WGL_PBUFFER_HEIGHT_EXT = $2035;
7288
7289   // WGL_EXT_pixel_format
7290   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7291   WGL_DRAW_TO_WINDOW_EXT = $2001;
7292   WGL_DRAW_TO_BITMAP_EXT = $2002;
7293   WGL_ACCELERATION_EXT = $2003;
7294   WGL_NEED_PALETTE_EXT = $2004;
7295   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7296   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7297   WGL_SWAP_METHOD_EXT = $2007;
7298   WGL_NUMBER_OVERLAYS_EXT = $2008;
7299   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7300   WGL_TRANSPARENT_EXT = $200A;
7301   WGL_TRANSPARENT_VALUE_EXT = $200B;
7302   WGL_SHARE_DEPTH_EXT = $200C;
7303   WGL_SHARE_STENCIL_EXT = $200D;
7304   WGL_SHARE_ACCUM_EXT = $200E;
7305   WGL_SUPPORT_GDI_EXT = $200F;
7306   WGL_SUPPORT_OPENGL_EXT = $2010;
7307   WGL_DOUBLE_BUFFER_EXT = $2011;
7308   WGL_STEREO_EXT = $2012;
7309   WGL_PIXEL_TYPE_EXT = $2013;
7310   WGL_COLOR_BITS_EXT = $2014;
7311   WGL_RED_BITS_EXT = $2015;
7312   WGL_RED_SHIFT_EXT = $2016;
7313   WGL_GREEN_BITS_EXT = $2017;
7314   WGL_GREEN_SHIFT_EXT = $2018;
7315   WGL_BLUE_BITS_EXT = $2019;
7316   WGL_BLUE_SHIFT_EXT = $201A;
7317   WGL_ALPHA_BITS_EXT = $201B;
7318   WGL_ALPHA_SHIFT_EXT = $201C;
7319   WGL_ACCUM_BITS_EXT = $201D;
7320   WGL_ACCUM_RED_BITS_EXT = $201E;
7321   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7322   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7323   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7324   WGL_DEPTH_BITS_EXT = $2022;
7325   WGL_STENCIL_BITS_EXT = $2023;
7326   WGL_AUX_BUFFERS_EXT = $2024;
7327   WGL_NO_ACCELERATION_EXT = $2025;
7328   WGL_GENERIC_ACCELERATION_EXT = $2026;
7329   WGL_FULL_ACCELERATION_EXT = $2027;
7330   WGL_SWAP_EXCHANGE_EXT = $2028;
7331   WGL_SWAP_COPY_EXT = $2029;
7332   WGL_SWAP_UNDEFINED_EXT = $202A;
7333   WGL_TYPE_RGBA_EXT = $202B;
7334   WGL_TYPE_COLORINDEX_EXT = $202C;
7335
7336   // WGL_I3D_digital_video_control
7337   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7338   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7339   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7340   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7341
7342   // WGL_I3D_gamma
7343   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7344   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7345
7346   // WGL_I3D_genlock
7347   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7348   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7349   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7350   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7351   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7352   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7353   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7354   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7355   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7356
7357   // WGL_I3D_image_buffer
7358   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7359   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7360
7361   // WGL_NV_float_buffer
7362   WGL_FLOAT_COMPONENTS_NV = $20B0;
7363   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7364   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7365   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7366   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7367   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7368   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7369   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7370   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7371
7372   // WGL_NV_render_depth_texture
7373   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7374   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7375   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7376   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7377   WGL_DEPTH_COMPONENT_NV = $20A7;
7378
7379   // WGL_NV_render_texture_rectangle
7380   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7381   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7382   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7383
7384   // WGL_NV_present_video
7385   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7386
7387   // WGL_NV_video_output
7388   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7389   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7390   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7391   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7392   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7393   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7394   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7395   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7396   WGL_VIDEO_OUT_FRAME = $20C8;
7397   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7398   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7399   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7400   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7401
7402   // WGL_NV_gpu_affinity
7403   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7404   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7405
7406   // WGL_NV_video_capture
7407   WGL_UNIQUE_ID_NV = $20CE;
7408   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7409
7410   // WGL_NV_multisample_coverage
7411   WGL_COVERAGE_SAMPLES_NV = $2042;
7412   WGL_COLOR_SAMPLES_NV = $20B9;
7413
7414   // WGL_EXT_create_context_es2_profile
7415   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7416
7417   // WGL_NV_DX_interop
7418   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7419   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7420   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7421
7422   // WIN_draw_range_elements
7423   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7424   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7425
7426   // GLX 1.1 and later:
7427   GLX_VENDOR = 1;
7428   GLX_VERSION = 2;
7429   GLX_EXTENSIONS = 3;
7430
7431   GLX_USE_GL = 1;
7432   GLX_BUFFER_SIZE = 2;
7433   GLX_LEVEL = 3;
7434   GLX_RGBA = 4;
7435   GLX_DOUBLEBUFFER = 5;
7436   GLX_STEREO = 6;
7437   GLX_AUX_BUFFERS = 7;
7438   GLX_RED_SIZE = 8;
7439   GLX_GREEN_SIZE = 9;
7440   GLX_BLUE_SIZE = 10;
7441   GLX_ALPHA_SIZE = 11;
7442   GLX_DEPTH_SIZE = 12;
7443   GLX_STENCIL_SIZE = 13;
7444   GLX_ACCUM_RED_SIZE = 14;
7445   GLX_ACCUM_GREEN_SIZE = 15;
7446   GLX_ACCUM_BLUE_SIZE = 16;
7447   GLX_ACCUM_ALPHA_SIZE = 17;
7448
7449   // GLX_VERSION_1_3
7450   GLX_WINDOW_BIT = $00000001;
7451   GLX_PIXMAP_BIT = $00000002;
7452   GLX_PBUFFER_BIT = $00000004;
7453   GLX_RGBA_BIT = $00000001;
7454   GLX_COLOR_INDEX_BIT = $00000002;
7455   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7456   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7457   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7458   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7459   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7460   GLX_AUX_BUFFERS_BIT = $00000010;
7461   GLX_DEPTH_BUFFER_BIT = $00000020;
7462   GLX_STENCIL_BUFFER_BIT = $00000040;
7463   GLX_ACCUM_BUFFER_BIT = $00000080;
7464   GLX_CONFIG_CAVEAT = $20;
7465   GLX_X_VISUAL_TYPE = $22;
7466   GLX_TRANSPARENT_TYPE = $23;
7467   GLX_TRANSPARENT_INDEX_VALUE = $24;
7468   GLX_TRANSPARENT_RED_VALUE = $25;
7469   GLX_TRANSPARENT_GREEN_VALUE = $26;
7470   GLX_TRANSPARENT_BLUE_VALUE = $27;
7471   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7472   GLX_DONT_CARE = $FFFFFFFF;
7473   GLX_NONE = $8000;
7474   GLX_SLOW_CONFIG = $8001;
7475   GLX_TRUE_COLOR = $8002;
7476   GLX_DIRECT_COLOR = $8003;
7477   GLX_PSEUDO_COLOR = $8004;
7478   GLX_STATIC_COLOR = $8005;
7479   GLX_GRAY_SCALE = $8006;
7480   GLX_STATIC_GRAY = $8007;
7481   GLX_TRANSPARENT_RGB = $8008;
7482   GLX_TRANSPARENT_INDEX = $8009;
7483   GLX_VISUAL_ID = $800B;
7484   GLX_SCREEN = $800C;
7485   GLX_NON_CONFORMANT_CONFIG = $800D;
7486   GLX_DRAWABLE_TYPE = $8010;
7487   GLX_RENDER_TYPE = $8011;
7488   GLX_X_RENDERABLE = $8012;
7489   GLX_FBCONFIG_ID = $8013;
7490   GLX_RGBA_TYPE = $8014;
7491   GLX_COLOR_INDEX_TYPE = $8015;
7492   GLX_MAX_PBUFFER_WIDTH = $8016;
7493   GLX_MAX_PBUFFER_HEIGHT = $8017;
7494   GLX_MAX_PBUFFER_PIXELS = $8018;
7495   GLX_PRESERVED_CONTENTS = $801B;
7496   GLX_LARGEST_PBUFFER = $801C;
7497   GLX_WIDTH = $801D;
7498   GLX_HEIGHT = $801E;
7499   GLX_EVENT_MASK = $801F;
7500   GLX_DAMAGED = $8020;
7501   GLX_SAVED = $8021;
7502   GLX_WINDOW = $8022;
7503   GLX_PBUFFER = $8023;
7504   GLX_PBUFFER_HEIGHT = $8040;
7505   GLX_PBUFFER_WIDTH = $8041;
7506
7507   // GLX_VERSION_1_4
7508   GLX_SAMPLE_BUFFERS = 100000;
7509   GLX_SAMPLES = 100001;
7510
7511   // GLX_ARB_multisample
7512   GLX_SAMPLE_BUFFERS_ARB = 100000;
7513   GLX_SAMPLES_ARB = 100001;
7514
7515   // GLX_ARB_robustness_application_isolation
7516   GLX_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7517
7518   // GLX_ARB_fbconfig_float
7519   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7520   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7521
7522   // GLX_ARB_context_flush_control
7523   GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7524   GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7525   GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7526
7527   // GLX_ARB_create_context
7528   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7529   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7530   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7531   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7532   GLX_CONTEXT_FLAGS_ARB = $2094;
7533
7534   // GLX_ARB_create_context_profile
7535   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7536   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7537   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7538
7539   // GLX_ARB_vertex_buffer_object
7540   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7541
7542   // GLX_ARB_framebuffer_sRGB
7543   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7544
7545   // GLX_ARB_create_context_robustness
7546   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7547   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7548   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7549   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7550
7551   // GLX_EXT_visual_info
7552   GLX_X_VISUAL_TYPE_EXT = $22;
7553   GLX_TRANSPARENT_TYPE_EXT = $23;
7554   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7555   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7556   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7557   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7558   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7559   GLX_NONE_EXT = $8000;
7560   GLX_TRUE_COLOR_EXT = $8002;
7561   GLX_DIRECT_COLOR_EXT = $8003;
7562   GLX_PSEUDO_COLOR_EXT = $8004;
7563   GLX_STATIC_COLOR_EXT = $8005;
7564   GLX_GRAY_SCALE_EXT = $8006;
7565   GLX_STATIC_GRAY_EXT = $8007;
7566   GLX_TRANSPARENT_RGB_EXT = $8008;
7567   GLX_TRANSPARENT_INDEX_EXT = $8009;
7568
7569   // GLX_EXT_visual_rating
7570   GLX_VISUAL_CAVEAT_EXT = $20;
7571   GLX_SLOW_VISUAL_EXT = $8001;
7572   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7573   (* reuse GLX_NONE_EXT *)
7574
7575   // GLX_EXT_import_context
7576   GLX_SHARE_CONTEXT_EXT = $800A;
7577   GLX_VISUAL_ID_EXT = $800B;
7578   GLX_SCREEN_EXT = $800C;
7579
7580   // GLX_EXT_fbconfig_packed_float
7581 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7582 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7583
7584   // GLX_EXT_framebuffer_sRGB
7585 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7586
7587   // GLX_EXT_texture_from_pixmap
7588   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7589   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7590   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7591   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7592   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7593   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7594   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7595   GLX_Y_INVERTED_EXT = $20D4;
7596   GLX_TEXTURE_FORMAT_EXT = $20D5;
7597   GLX_TEXTURE_TARGET_EXT = $20D6;
7598   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7599   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7600   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7601   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7602   GLX_TEXTURE_1D_EXT = $20DB;
7603   GLX_TEXTURE_2D_EXT = $20DC;
7604   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7605   GLX_FRONT_LEFT_EXT = $20DE;
7606   GLX_FRONT_RIGHT_EXT = $20DF;
7607   GLX_BACK_LEFT_EXT = $20E0;
7608   GLX_BACK_RIGHT_EXT = $20E1;
7609   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7610   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7611   GLX_AUX0_EXT = $20E2;
7612   GLX_AUX1_EXT = $20E3;
7613   GLX_AUX2_EXT = $20E4;
7614   GLX_AUX3_EXT = $20E5;
7615   GLX_AUX4_EXT = $20E6;
7616   GLX_AUX5_EXT = $20E7;
7617   GLX_AUX6_EXT = $20E8;
7618   GLX_AUX7_EXT = $20E9;
7619   GLX_AUX8_EXT = $20EA;
7620   GLX_AUX9_EXT = $20EB;
7621
7622   // GLX_EXT_swap_control
7623   GLX_SWAP_INTERVAL_EXT = $20F1;
7624   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7625
7626   // GLX_EXT_create_context_es2_profile
7627   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7628
7629   // GL_EXT_Late_Swaps
7630   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7631
7632   // GLU
7633   GLU_INVALID_ENUM = 100900;
7634   GLU_INVALID_VALUE = 100901;
7635   GLU_OUT_OF_MEMORY = 100902;
7636   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7637   GLU_VERSION = 100800;
7638   GLU_EXTENSIONS = 100801;
7639   GLU_TRUE = GL_TRUE;
7640   GLU_FALSE = GL_FALSE;
7641   GLU_SMOOTH = 100000;
7642   GLU_FLAT = 100001;
7643   GLU_NONE = 100002;
7644   GLU_POINT = 100010;
7645   GLU_LINE = 100011;
7646   GLU_FILL = 100012;
7647   GLU_SILHOUETTE = 100013;
7648   GLU_OUTSIDE = 100020;
7649   GLU_INSIDE = 100021;
7650   GLU_TESS_MAX_COORD = 1.0E150;
7651   GLU_TESS_WINDING_RULE = 100140;
7652   GLU_TESS_BOUNDARY_ONLY = 100141;
7653   GLU_TESS_TOLERANCE = 100142;
7654   GLU_TESS_WINDING_ODD = 100130;
7655   GLU_TESS_WINDING_NONZERO = 100131;
7656   GLU_TESS_WINDING_POSITIVE = 100132;
7657   GLU_TESS_WINDING_NEGATIVE = 100133;
7658   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7659   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7660   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7661   GLU_TESS_END = 100102; // TGLUTessEndProc
7662   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7663   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7664   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7665   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7666   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7667   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7668   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7669   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7670   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7671   GLU_TESS_ERROR1 = 100151;
7672   GLU_TESS_ERROR2 = 100152;
7673   GLU_TESS_ERROR3 = 100153;
7674   GLU_TESS_ERROR4 = 100154;
7675   GLU_TESS_ERROR5 = 100155;
7676   GLU_TESS_ERROR6 = 100156;
7677   GLU_TESS_ERROR7 = 100157;
7678   GLU_TESS_ERROR8 = 100158;
7679   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7680   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7681   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7682   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7683   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7684   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7685   GLU_AUTO_LOAD_MATRIX = 100200;
7686   GLU_CULLING = 100201;
7687   GLU_SAMPLING_TOLERANCE = 100203;
7688   GLU_DISPLAY_MODE = 100204;
7689   GLU_PARAMETRIC_TOLERANCE = 100202;
7690   GLU_SAMPLING_METHOD = 100205;
7691   GLU_U_STEP = 100206;
7692   GLU_V_STEP = 100207;
7693   GLU_PATH_LENGTH = 100215;
7694   GLU_PARAMETRIC_ERROR = 100216;
7695   GLU_DOMAIN_DISTANCE = 100217;
7696   GLU_MAP1_TRIM_2 = 100210;
7697   GLU_MAP1_TRIM_3 = 100211;
7698   GLU_OUTLINE_POLYGON = 100240;
7699   GLU_OUTLINE_PATCH = 100241;
7700   GLU_NURBS_ERROR1 = 100251;
7701   GLU_NURBS_ERROR2 = 100252;
7702   GLU_NURBS_ERROR3 = 100253;
7703   GLU_NURBS_ERROR4 = 100254;
7704   GLU_NURBS_ERROR5 = 100255;
7705   GLU_NURBS_ERROR6 = 100256;
7706   GLU_NURBS_ERROR7 = 100257;
7707   GLU_NURBS_ERROR8 = 100258;
7708   GLU_NURBS_ERROR9 = 100259;
7709   GLU_NURBS_ERROR10 = 100260;
7710   GLU_NURBS_ERROR11 = 100261;
7711   GLU_NURBS_ERROR12 = 100262;
7712   GLU_NURBS_ERROR13 = 100263;
7713   GLU_NURBS_ERROR14 = 100264;
7714   GLU_NURBS_ERROR15 = 100265;
7715   GLU_NURBS_ERROR16 = 100266;
7716   GLU_NURBS_ERROR17 = 100267;
7717   GLU_NURBS_ERROR18 = 100268;
7718   GLU_NURBS_ERROR19 = 100269;
7719   GLU_NURBS_ERROR20 = 100270;
7720   GLU_NURBS_ERROR21 = 100271;
7721   GLU_NURBS_ERROR22 = 100272;
7722   GLU_NURBS_ERROR23 = 100273;
7723   GLU_NURBS_ERROR24 = 100274;
7724   GLU_NURBS_ERROR25 = 100275;
7725   GLU_NURBS_ERROR26 = 100276;
7726   GLU_NURBS_ERROR27 = 100277;
7727   GLU_NURBS_ERROR28 = 100278;
7728   GLU_NURBS_ERROR29 = 100279;
7729   GLU_NURBS_ERROR30 = 100280;
7730   GLU_NURBS_ERROR31 = 100281;
7731   GLU_NURBS_ERROR32 = 100282;
7732   GLU_NURBS_ERROR33 = 100283;
7733   GLU_NURBS_ERROR34 = 100284;
7734   GLU_NURBS_ERROR35 = 100285;
7735   GLU_NURBS_ERROR36 = 100286;
7736   GLU_NURBS_ERROR37 = 100287;
7737   GLU_CW = 100120;
7738   GLU_CCW = 100121;
7739   GLU_INTERIOR = 100122;
7740   GLU_EXTERIOR = 100123;
7741   GLU_UNKNOWN = 100124;
7742   GLU_BEGIN = GLU_TESS_BEGIN;
7743   GLU_VERTEX = GLU_TESS_VERTEX;
7744   GLU_END = GLU_TESS_END;
7745   GLU_ERROR = GLU_TESS_ERROR;
7746   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7747
7748 type
7749   // GL_VERSION_1_0
7750   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7751   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7752   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7753   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7754   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7755   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7756   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7757   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7758   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7759   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7760   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7761   TglTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7762   TglTexImage2D = procedure(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7763   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7764   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7765   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7766   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7767   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7768   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7769   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7770   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7771   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7772   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7773   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7774   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7775   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7776   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7777   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7778   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7779   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7780   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7781   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7782   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7783   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7784   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7785   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7786   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7787   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7788   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7789   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7790   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7791   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7792   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7793   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7794   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7795   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7796   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7797   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7798
7799   // GL_VERSION_1_1
7800   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7801   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7802   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7803   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7804   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7805   TglCopyTexImage2D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7806   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7807   TglCopyTexSubImage2D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7808   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7809   TglTexSubImage2D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7810   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7811   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7812   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7813
7814 {$ifdef DGL_DEPRECATED}
7815   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7816   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7817   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7818   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7819   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
7820   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7821   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7822   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7823   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7824   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7825   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7826   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7827   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7828   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7829   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7830   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7831   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7832   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7833   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7834   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7835   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7836   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7837   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7838   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7839   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7840   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7841   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7842   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7843   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7844   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7845   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7846   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7847   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7848   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7849   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7850   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7851   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7852   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7853   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7854   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7855   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7856   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7857   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7858   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7859   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7860   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7861   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7862   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7863   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7864   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7865   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7866   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7867   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7868   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7869   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7870   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7871   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7872   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7873   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7874   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7875   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7876   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7877   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7878   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7879   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7880   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7881   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7882   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7883   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7884   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7885   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7886   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7887   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7888   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7889   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7890   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7891   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7892   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7893   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7894   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7895   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7896   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7897   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7898   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7899   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7900   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7901   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7902   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7903   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7904   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7905   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7906   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7907   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7908   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7909   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7910   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7911   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7912   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7913   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7914   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7915   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7916   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7917   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7918   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7919   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7920   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7921   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7922   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7923   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7924   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7925   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7926   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7927   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7928   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7929   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7930   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7931   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7932   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7933   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7934   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7935   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7936   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7937   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7938   TglMap2d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; ustride: GLint; uorder: GLint; v1: GLdouble; v2: GLdouble; vstride: GLint; vorder: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7939   TglMap2f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; ustride: GLint; uorder: GLint; v1: GLfloat; v2: GLfloat; vstride: GLint; vorder: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7940   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7941   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7942   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7943   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7944   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7945   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7946   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7947   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7948   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7949   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7950   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7951   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7952   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7953   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7954   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7955   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7956   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7957   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7958   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7959   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7960   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7961   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7962   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7963   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7964   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7965   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7966   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7967   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7968   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7969   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7970   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7971   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7972   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7973   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7974   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7975   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7976   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7977   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7978   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7979   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7980   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7981   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7982   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7983   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7984   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7985   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7986   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7987   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7988   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7999   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8000   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8001   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8037   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8052   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8057   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8058   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063
8064
8065   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8066   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8072   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8073   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8078   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8084   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8085   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8086   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092 {$endif}
8093
8094   // GL_VERSION_1_2
8095   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglTexImage3D = procedure(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099   TglTexSubImage3D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8100   TglCopyTexSubImage3D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8101 {$ifdef DGL_DEPRECATED}
8102   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8103   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8106   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8107   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8108   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8109   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglSeparableFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8125   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8126   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8128   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8129   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8131   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8132   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134 {$endif}
8135
8136   // GL_VERSION_1_3
8137   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8138   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglCompressedTexImage3D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   TglCompressedTexImage2D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8141   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8142   TglCompressedTexSubImage3D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8143   TglCompressedTexSubImage2D = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8144   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8145   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146 {$ifdef DGL_DEPRECATED}
8147   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8148   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8149   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8151   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8152   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8176   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8177   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8178   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184 {$endif}
8185
8186   // GL_VERSION_1_4
8187   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8192   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8193   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8194 {$ifdef DGL_DEPRECATED}
8195   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233 {$endif}
8234
8235   // GL_VERSION_1_5
8236   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8241   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8242   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8243   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255
8256   // GL_VERSION_2_0
8257   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8258   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8264   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8265   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglGetActiveAttrib = procedure(programObj: GLhandle; index: GLuint; maxlength: GLsizei; var length: GLint; var size: GLint; var _type: GLenum; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglGetActiveUniform = procedure(programObj: GLhandle; index: GLuint; maxLength: GLsizei; var length: GLsizei; var size: GLint; var _type: GLenum; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8281   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8302   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8331   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8332   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8336   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8337   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8338   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8339   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349
8350   // GL_VERSION_2_1
8351   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8352   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8353   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8357
8358   // GL_VERSION_3_0
8359   { OpenGL 3.0 also reuses entry points from these extensions: }
8360   { ARB_framebuffer_object }
8361   { ARB_map_buffer_range }
8362   { ARB_vertex_array_object }
8363   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8364   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8365   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8366   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8367   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8368   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8369   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8370   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8373   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8374   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8378   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8381   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8382   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8413   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8414   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8421
8422   // GL_VERSION_2_1
8423   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8424   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8425   TglVertexArrayVertexAttribOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; normalized: GLboolean; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426
8427   // GL_VERSION_3_1
8428   { OpenGL 3.1 also reuses entry points from these extensions: }
8429   { ARB_copy_buffer }
8430   { ARB_uniform_buffer_object }
8431   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8432   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8433   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8434   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8435
8436   // GL_VERSION_3_2
8437   { OpenGL 3.2 also reuses entry points from these extensions: }
8438   { ARB_draw_elements_base_vertex }
8439   { ARB_provoking_vertex }
8440   { ARB_sync }
8441   { ARB_texture_multisample }
8442   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8443   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8444   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8445 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8446
8447   // GL_VERSION_3_3
8448   { OpenGL 3.3 also reuses entry points from these extensions: }
8449   { ARB_blend_func_extended }
8450   { ARB_sampler_objects }
8451   { ARB_explicit_attrib_location, but it has none }
8452   { ARB_occlusion_query2 (no entry points) }
8453   { ARB_shader_bit_encoding (no entry points) }
8454   { ARB_texture_rgb10_a2ui (no entry points) }
8455   { ARB_texture_swizzle (no entry points) }
8456   { ARB_timer_query }
8457   { ARB_vertex_type_2_10_10_10_rev }
8458   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8459
8460   // GL_VERSION_4_0
8461   { OpenGL 4.0 also reuses entry points from these extensions: }
8462   { ARB_texture_query_lod (no entry points) }
8463   { ARB_draw_indirect }
8464   { ARB_gpu_shader5 (no entry points) }
8465   { ARB_gpu_shader_fp64 }
8466   { ARB_shader_subroutine }
8467   { ARB_tessellation_shader }
8468   { ARB_texture_buffer_object_rgb32 (no entry points) }
8469   { ARB_texture_cube_map_array (no entry points) }
8470   { ARB_texture_gather (no entry points) }
8471   { ARB_transform_feedback2 }
8472   { ARB_transform_feedback3 }
8473   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8474   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8475   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8476   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8477   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8478
8479   // GL_VERSION_4_1
8480   { OpenGL 4.1 also reuses entry points from these extensions: }
8481   { ARB_ES2_compatibility }
8482   { ARB_get_program_binary }
8483   { ARB_separate_shader_objects }
8484   { ARB_shader_precision (no entry points) }
8485   { ARB_vertex_attrib_64bit }
8486   { ARB_viewport_array }
8487
8488   // GL_3DFX_tbuffer
8489   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8490
8491   // GL_APPLE_element_array
8492   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8493   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8494   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8495   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8496   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8497
8498   // GL_APPLE_fence
8499   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8500   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8504   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8505   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8506   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507
8508   // GL_APPLE_vertex_array_object
8509   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8510   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8511   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513
8514   // GL_APPLE_vertex_array_range
8515   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8516   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8517   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518
8519   // GL_APPLE_texture_range
8520   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8521   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8522
8523   // GL_APPLE_vertex_program_evaluators
8524   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8525   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8527   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8528   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8529   TglMapVertexAttrib2dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; ustride: GLint; uorder: GLint; v1: GLdouble; v2: GLdouble; vstride: GLint; vorder: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8530   TglMapVertexAttrib2fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; ustride: GLint; order: GLint; v1: GLfloat; v2: GLfloat; vstride: GLint; vorder: GLint; const points: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8531
8532   // GL_APPLE_object_purgeable
8533   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8535   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8536
8537   // GL_ARB_matrix_palette
8538   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8539   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8540   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543
8544   // GL_ARB_multisample
8545   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8546
8547   // GL_ARB_multitexture
8548   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8549   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8552   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8553   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8555   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8574   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8575   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8578   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8581   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582
8583   // GL_ARB_point_parameters
8584   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586
8587   // GL_ARB_texture_compression
8588   TglCompressedTexImage3DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8589   TglCompressedTexImage2DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8590   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8591   TglCompressedTexSubImage3DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8592   TglCompressedTexSubImage2DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8593   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8594   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8595
8596   // GL_ARB_transpose_matrix
8597   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8598   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8599   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8600   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8601
8602   // GL_ARB_vertex_blend
8603   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8604   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8605   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8608   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8609   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8610   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613
8614   // GL_ARB_vertex_buffer_object
8615   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8616   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8618   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8619   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8620   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8621   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8622   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626
8627   // GL_ARB_vertex_program
8628   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8635   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8660   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8664   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8665   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8666   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8667   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8668   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8674   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8675   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8676   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8677   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8678   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8679   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8680   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8684   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8685   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8686   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8687   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8688   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8689   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8690
8691   // GL_ARB_window_pos
8692   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8693   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8694   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8695   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8696   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8697   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8698   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8699   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8700   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8701   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8702   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8703   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8704   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8705   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8706   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8707   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8708
8709   // GL_ARB_draw_buffers
8710   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8711
8712   // GL_ARB_color_buffer_float
8713   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8714
8715   // GL_ARB_vertex_shader
8716   TglGetActiveAttribARB = procedure(programobj: GLhandleARB; index: GLuint; maxLength: GLsizei; var length: GLsizei; var size: GLint; var _type: GLenum; name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8717   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8718   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8719
8720   // GL_ARB_shader_objects
8721   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8722   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8723   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8724   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8725   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8726   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8727   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8728   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8729   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8730   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8736   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8737   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8742   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8745   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8746   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8747   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8752   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8753   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8756   TglGetActiveUniformARB = procedure(programobj: GLhandleARB; index: GLuint; maxLength: GLsizei; var length: GLsizei; var size: GLint; var _type: GLenum; name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8757   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8758   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8760
8761   // GL_ARB_Occlusion_Query
8762   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8763   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8766   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8767   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8768   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8769   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8770
8771   // GL_ARB_draw_instanced
8772   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8773   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774
8775   // GL_ARB_framebuffer_object
8776   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8777   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8778   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8779   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8780   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8781   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8782   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8783   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8784   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8785   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8788   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8789   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8791   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglBlitFramebuffer = procedure(srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8795   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8796
8797   // GL_ARB_geometry_shader4
8798   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8799   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8801   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8802
8803   // GL_ARB_instanced_arrays
8804   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8805
8806   // GL_ARB_map_buffer_range
8807   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8808   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809
8810   // GL_ARB_texture_buffer_object
8811   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8812
8813   // GL_ARB_vertex_array_object
8814   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8815   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8816   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8817   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8818
8819   // GL_ARB_uniform_buffer_object
8820   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8821   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8822   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8823   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8824   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8825   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8826   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8827
8828   // GL_ARB_copy_buffer
8829   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8830
8831   // GL_ARB_draw_elements_base_vertex
8832   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8833   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8834   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8835   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8836
8837   // GL_ARB_provoking_vertex
8838   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8839
8840   // GL_ARB_sync
8841   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8842   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8845   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8846   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8847   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8848
8849   // GL_ARB_texture_multisample
8850   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8851   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8852   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8853   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8854
8855   // GL_ARB_draw_buffers_blend
8856   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8857   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8858   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8860
8861   // GL_ARB_sample_shading
8862   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8863
8864   // GL_ARB_shading_language_include
8865   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8866   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8867   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8868   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8869   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8870   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871
8872   // GL_ARB_blend_func_extended
8873   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875
8876   // GL_ARB_sampler_objects
8877   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8878   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8880   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8881   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8882   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8883   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8884   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8885   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891
8892   // GL_ARB_timer_query
8893   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896
8897   // GL_ARB_vertex_type_2_10_10_10_rev
8898   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8899   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8900   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8905   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8928   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8929   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936
8937   // GL_ARB_draw_indirect
8938   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940
8941   // GL_ARB_gpu_shader_fp64
8942   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8943   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8945   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8946   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8947   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8948   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8949   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8950   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8952   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8953   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8954   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8957   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8958   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960
8961   // GL_ARB_shader_subroutine
8962   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8963   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8966   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8967   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8968   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8969   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8970
8971   // GL_ARB_tessellation_shader
8972   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8973   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974
8975   // GL_ARB_transform_feedback2
8976   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8977   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8978   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8979   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8980   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8981   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8982   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8983
8984   // GL_ARB_transform_feedback3
8985   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8988   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8989
8990   // GL_ARB_ES2_compatibility
8991   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8992   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8993   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8994   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8995   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996
8997   // GL_ARB_get_program_binary
8998   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8999   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001
9002   // GL_ARB_separate_shader_objects
9003   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9004   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9005   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9008   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9009   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9010   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9013   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9034   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9035   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9041   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9044   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9048   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9049   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9050   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9051   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9052   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9055   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9056   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9057   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9061   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9062   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063
9064   // GL_ARB_vertex_attrib_64bit
9065   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9066   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9067   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9068   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9069   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9070   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9071   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9072   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9073   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9074   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9075
9076   // GL_ARB_viewport_array
9077   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9078   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9079   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9080   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9081   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9082   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9084   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9085   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9086   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9087
9088   // GL 4.2
9089
9090   // GL_ARB_base_instance
9091   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9092   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9093   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9094
9095   // GL_ARB_transform_feedback_instanced
9096   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9097   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9098
9099   // GL_ARB_internalformat_query
9100   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9101
9102   // GL_ARB_shader_atomic_counters
9103   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9104
9105   /// GL_ARB_shader_image_load_store
9106   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9107   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9108
9109   // GL_ARB_texture_storage
9110   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9111   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9112   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9113   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9114   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9115   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9116
9117
9118   // GL 4.3
9119
9120   // GL_KHR_debug
9121   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9122   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9123   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9124   TglGetDebugMessageLog = function(count : GLuint; bufsize : GLsizei; sources : PGLenum; types : PGLenum; ids : PGLuint; sverities : PGLenum; lengths : PGLSizei; messagelog : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9125   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9126   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9127   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9128   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9129   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9130   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9131
9132   // GL_ARB_clear_buffer_object
9133   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9134   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9135   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9136   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9137
9138   // GL_ARB_compute_shader
9139   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9140   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9141
9142   // GL_ARB_copy_image
9143   TglCopyImageSubData = procedure(srcName : GLUInt; srcTarget : GLenum; srcLevel : GLint; srcX : GLint; srcY : GLint; srcZ : GLint; dstName : GLUInt; dstTarget : GLEnum; dstLevel : GLInt; dstX : GLInt; dstY : GLint; dstZ : GLint; srcWidth : GLsizei; srcHeight : GLsizei; srcDepth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9144
9145   // GL_ARB_debug_group
9146   // ARB_debug_group reuses entry points from KHR_debug
9147
9148   // GL_ARB_debug_label
9149   // ARB_debug_label reuses entry points from KHR_debug
9150
9151   // GL_ARB_debug_output2
9152
9153   // GL_ARB_ES3_compatibility
9154
9155   // GL_ARB_explicit_uniform_location
9156
9157   // GL_ARB_fragment_layer_viewport
9158
9159   // GL_ARB_framebuffer_no_attachments
9160   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9161   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9162   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9163   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9164
9165   // GL_ARB_internalformat_query2
9166   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9167
9168   // GL_ARB_invalidate_subdata
9169   TglInvalidateTexSubImage = procedure(texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9170   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9171   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9172   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9173   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9174   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9175
9176   // GL_ARB_multi_draw_indirect
9177   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9178   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9179
9180   // GL_ARB_program_interface_query
9181   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9182   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9183   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9184   TglGetProgramResourceiv = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; propCount : GLsizei; const props : PGLenum; bufSize : GLsizei; length : PGLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9185   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9186   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9187
9188   // GL_ARB_robust_buffer_access_behavior
9189
9190   // GL_ARB_shader_image_size
9191
9192   // GL_ARB_shader_storage_buffer_object
9193   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9194
9195   // GL_ARB_stencil_texturing
9196
9197   // GL_ARB_texture_buffer_range
9198   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9199   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9200
9201   // GL_ARB_texture_query_levels
9202
9203   // GL_ARB_texture_storage_multisample
9204   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9205   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9206   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9207   TglTextureStorage3DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9208
9209   // GL 4.4
9210
9211   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9212   TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9213   TglClearTexSubImage = procedure(texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; _type : GLenum; const Data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9214   TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9215   TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9216   TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9217   TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9218   TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9219   TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220   TglTexPageCommitmentARB = procedure(target : glenum; level : glint; xoffset : glint; yoffset : glint; zoffset : glint; width : glsizei; height : glsizei; depth : glsizei; resident : glboolean);  {$IFDEF DGL_WIN} stdcall; {$ELSE}cdecl; {$ENDIF}
9221
9222   // GL 4.5
9223   TglClipControl = procedure(origin : GLenum; depth : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglCreateTransformFeedbacks = procedure(n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglTransformFeedbackBufferBase = procedure (xfb : GLuint; index : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226   TglTransformFeedbackBufferRange = procedure (xfb : GLuint; index : GLuint; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9227   TglGetTransformFeedbackiv = procedure (xfb : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9228   TglGetTransformFeedbacki_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9229   TglGetTransformFeedbacki64_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9230   TglCreateBuffers = procedure (n : GLsizei; buffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglNamedBufferStorage = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglNamedBufferData = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; usage : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233   TglNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9234   TglCopyNamedBufferSubData = procedure (readBuffer : GLuint; writeBuffer : GLuint; readOffset : GLintptr; writeOffset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9235   TglClearNamedBufferData = procedure (buffer : GLuint; internalformat : GLenum; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglClearNamedBufferSubData = procedure (buffer : GLuint; internalformat : GLenum; offset : GLintptr; size : GLsizei; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglMapNamedBuffer = function(buffer : GLuint; access : GLenum) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglMapNamedBufferRange = function(buffer : GLuint; offset : GLintptr; length : GLsizei; access : GLbitfield) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   TglUnmapNamedBuffer = function(buffer : GLuint) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9240   TglFlushMappedNamedBufferRange = procedure (buffer : GLuint; offset : GLintptr; length : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241   TglGetNamedBufferParameteriv = procedure (buffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglGetNamedBufferParameteri64v = procedure (buffer : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglGetNamedBufferPointerv = procedure (buffer : GLuint; pname : GLenum; params : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglGetNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglCreateFramebuffers = procedure (n : GLsizei; framebuffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglNamedFramebufferRenderbuffer = procedure (framebuffer : GLuint; attachment : GLenum ; renderbuffertarget : GLEnum; renderbuffer : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglNamedFramebufferParameteri = procedure (framebuffer : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglNamedFramebufferTexture = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglNamedFramebufferTextureLayer = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint; layer : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglNamedFramebufferDrawBuffer = procedure (framebuffer : GLuint; buf : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglNamedFramebufferDrawBuffers = procedure (framebuffer : GLuint; n : GLsizei; bufs : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglNamedFramebufferReadBuffer = procedure (framebuffer : GLuint; src : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglInvalidateNamedFramebufferData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglInvalidateNamedFramebufferSubData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglClearNamedFramebufferiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglClearNamedFramebufferuiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglClearNamedFramebufferfv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglClearNamedFramebufferfi = procedure (framebuffer : GLuint; buffer : GLenum; const depth : GLfloat; stencil : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglBlitNamedFramebuffer = procedure (readFramebuffer : GLuint; drawFramebuffer : GLuint; srcX0 : GLint; srcY0 : GLint; srcX1 : GLint; srcY1 : GLint; dstX0 : GLint; dstY0 : GLint; dstX1 : GLint; dstY1 : GLint ; mask : GLbitfield; filter : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   TglCheckNamedFramebufferStatus = function(framebuffer : GLuint; target : GLenum) : GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9261   TglGetNamedFramebufferParameteriv = procedure (framebuffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglGetNamedFramebufferAttachmentParameteriv = procedure (framebuffer : GLuint; attachment : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglCreateRenderbuffers = procedure (n : GLsizei; renderbuffers : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   TglNamedRenderbufferStorage = procedure (renderbuffer : GLUInt; internalformat : GLenum ; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9265   TglNamedRenderbufferStorageMultisample = procedure (renderbuffer : GLUInt; samples : GLSizei; internalformat : GLenum ; width : GLSizei; height : GLSizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   TglGetNamedRenderbufferParameteriv = procedure (renderbuffer : GLUInt; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   TglCreateTextures = procedure (target : GLenum ; n : GLsizei; textures : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9268   TglTextureBuffer = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9269   TglTextureBufferRange = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglTextureStorage1D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglTextureStorage2D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglTextureStorage3D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglTextureStorage2DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglTextureStorage3DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglTextureSubImage2D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; width : GLsizei; height : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglTextureSubImage3D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglCompressedTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglCompressedTextureSubImage2D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; width : GLsizei; height : GLsizei; format : GLenum; mageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglCompressedTextureSubImage3D = procedure (texture : GLuint; level : GLint; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   TglCopyTextureSubImage1D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; x : GLint; y : GLint; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9282   TglCopyTextureSubImage2D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   TglCopyTextureSubImage3D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; zoffset : GLint; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9284   TglTextureParameterf = procedure (texture : GLuint; pname : GLenum; param : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9285   TglTextureParameterfv = procedure (texture : GLuint; pname : GLenum; const param : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9286   TglTextureParameteri = procedure (texture : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   TglTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; const params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9288   TglTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; const params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9289   TglTextureParameteriv = procedure (texture : GLuint; pname : GLenum; const param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   TglGenerateTextureMipmap = procedure(texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9291   TglBindTextureUnit = procedure (_unit : GLuint; texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglGetTextureImage = procedure (texture : GLuint; level : GLint ; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglGetCompressedTextureImage = procedure (texture : GLuint; level : GLint; bufSize : GLSizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglGetTextureLevelParameterfv = procedure (texture : GLuint; level : GLint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglGetTextureLevelParameteriv = procedure (texture : GLuint; level : GLint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglGetTextureParameterfv = procedure (texture : GLuint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglGetTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglGetTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; params : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglGetTextureParameteriv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglCreateVertexArrays = procedure (n : GLsizei; arrays : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301   TglDisableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9302   TglEnableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   TglVertexArrayElementBuffer = procedure (vaobj : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglVertexArrayVertexBuffer = procedure (vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglVertexArrayVertexBuffers = procedure (vaobj : GLuint; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : PGLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglVertexArrayAttribBinding = procedure (vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglVertexArrayAttribFormat = procedure(vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; normalized : GLboolean; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglVertexArrayAttribIFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglVertexArrayAttribLFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglVertexArrayBindingDivisor = procedure (vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglGetVertexArrayiv = procedure (vaobj : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   TglGetVertexArrayIndexediv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9313   TglGetVertexArrayIndexed64iv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9314   TglCreateSamplers = procedure (n : GLsizei; samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglCreateProgramPipelines = procedure (n : GLsizei; pipelines : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglCreateQueries = procedure (target : GLenum; n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglMemoryBarrierByRegion = procedure (barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglGetTextureSubImage = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   TglGetCompressedTextureSubImage = procedure (texture : GLuint; level : GLint ; xoffset : GLint; yoffset : GLint; zoffset : GLint; width : GLsizei; height : GLsizei; depth : GLsizei; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglGetGraphicsResetStatus = function : GLEnum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321   TglGetnCompressedTexImage = procedure (target : GLenum; lod : GLint; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   TglGetnTexImage = procedure (target : GLenum; level : GLint; format : GLenum; _type : GLenum; bufSize : GLSizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9323   TglGetnUniformdv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324   TglGetnUniformfv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9325   TglGetnUniformiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9326   TglGetnUniformuiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9327   TglReadnPixels = procedure (x : GLint; y : GLint; width : GLsizei; height : GLsizei; format : GLenum; _type : GLenum; bufSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9328   TglGetnMapdv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9329   TglGetnMapfv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglGetnMapiv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331   TglGetnPixelMapfv = procedure (map : GLenum; bufSize : GLsizei; values : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9332   TglGetnPixelMapuiv = procedure (map : GLenum; bufSize : GLsizei; values : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9333   TglGetnPixelMapusv = procedure (map : GLenum; bufSize : GLsizei; values : PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9334   TglGetnPolygonStipple = procedure (bufSize : GLsizei; pattern : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9335   TglGetnColorTable = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; table : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9336   TglGetnConvolutionFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; image : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9337   TglGetnSeparableFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; rowBufSize : GLsizei; row : PGLvoid; columnBufSize : GLsizei; column : PGLvoid; span : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9338   TglGetnHistogram = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9339   TglGetnMinmax = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9340   TglTextureBarrier = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9341
9342   // GL_ARB_sparse_buffer
9343   TglBufferPageCommitmentARB = procedure (target : GLenum; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9344   TglNamedBufferPageCommitmentEXT = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9345   TglNamedBufferPageCommitmentARB = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9346
9347   // GL_KHR_blend_equation_advanced
9348   TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9349
9350   // GL_ARB_texture_view
9351   TglTextureView = procedure(texture : GLuint; target : GLenum; origtexture : GLuint; internalformat : GLenum; minlevel : GLuint; numlevels : GLuint; minlayer : GLuint; numlayers : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9352
9353   // GL_ARB_vertex_attrib_binding
9354   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9355   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9356   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9357   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9358   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9359   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9360   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9361   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9362   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9363   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9364   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9365   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9366
9367   // GL_ARB_robustness_isolation
9368
9369   //
9370
9371   // GL_ARB_cl_event
9372   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9373
9374   // GL_ARB_debug_output
9375   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9376   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9377   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9378   TglGetDebugMessageLogARB = function(count: GLuint; bufsize: GLsizei; sources: PGLenum; types: PGLenum; ids: PGLuint; severities: PGLenum; lengths: PGLsizei; messageLog: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9379
9380   // GL_ARB_robustness
9381   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9382   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9383   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9384   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9385   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9386   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9387   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9388   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9389   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9390   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9391   TglGetnSeparableFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; rowBufSize: GLsizei; row: PGLvoid; columnBufSize: GLsizei; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9392   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9393   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9394   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9395   TglReadnPixelsARB = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; type_: GLenum; bufSize: GLsizei; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9396   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9397   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9400   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9401
9402   // GL_ATI_draw_buffers
9403   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9404
9405   // GL_ATI_element_array
9406   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9407   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9408   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9409
9410   // GL_ATI_envmap_bumpmap
9411   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9412   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9413   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9414   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9415
9416   // GL_ATI_fragment_shader
9417   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9418   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9419   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9421   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9422   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9423   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9424   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9425   TglColorFragmentOp2ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9426   TglColorFragmentOp3ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9427   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9428   TglAlphaFragmentOp2ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9429   TglAlphaFragmentOp3ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9430   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9431
9432   // GL_ATI_map_object_buffer
9433   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9434   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9435
9436   // GL_ATI_pn_triangles
9437   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9438   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9439
9440   // GL_ATI_separate_stencil
9441   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9442   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9443
9444   // GL_ATI_vertex_array_object
9445   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9446   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9447   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9448   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9449   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9450   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9451   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9452   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9453   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9454   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9455   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457
9458   // GL_ATI_vertex_attrib_array_object
9459   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9460   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9461   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9462
9463   // GL_ATI_vertex_streams
9464   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9465   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9466   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9467   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9468   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9469   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9471   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9472   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9479   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9480   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9481   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9482   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9483   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9484   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9485   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9486   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9487   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9491   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9492   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9501   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9502   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9503   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9504   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9508   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9509
9510   // GL_AMD_performance_monitor
9511   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9512   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9513   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9514   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9515   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9516   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9517   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9518   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9519   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9522
9523   // GL_AMD_vertex_shader_tesselator
9524   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9525   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526
9527   // GL_AMD_draw_buffers_blend
9528   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9529   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9530   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9531   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9532
9533   // GL_AMD_name_gen_delete
9534   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9535   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9536   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9537
9538   // GL_AMD_debug_output
9539   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9540   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9541   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9542   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9543
9544   // GL_EXT_blend_color
9545   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9546
9547   // GL_EXT_blend_func_separate
9548   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9549
9550   // GL_EXT_blend_minmax
9551   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9552
9553   // GL_EXT_color_subtable
9554   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9555   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9556
9557   // GL_EXT_compiled_vertex_array
9558   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9559   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9560
9561   // GL_EXT_convolution
9562   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9563   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9564   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9565   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9566   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9567   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9568   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9569   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9570   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9571   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9574   TglSeparableFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9575
9576   // GL_EXT_coordinate_frame
9577   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9578   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9582   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9583   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9584   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9585   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9591   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9592   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9593   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9596   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9597   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9598   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9599
9600   // GL_EXT_copy_texture
9601   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9602   TglCopyTexImage2DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604   TglCopyTexSubImage2DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9605   TglCopyTexSubImage3DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9606
9607   // GL_EXT_cull_vertex
9608   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9609   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9610
9611   // GL_EXT_draw_range_elements
9612   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9613
9614   // GL_EXT_fog_coord
9615   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9616   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9619   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9620
9621   // GL_EXT_framebuffer_object
9622   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9623   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9626   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9629   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9635   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9638   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9639
9640   // GL_EXT_histogram
9641   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9643   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9644   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9645   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9646   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9647   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9648   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9649   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9650   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651
9652   // GL_EXT_index_func
9653   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9654
9655   // GL_EXT_index_material
9656   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9657
9658   // GL_EXT_light_texture
9659   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9660   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9661   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9662
9663   // GL_EXT_multi_draw_arrays
9664   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9665   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9666
9667   // GL_EXT_multisample
9668   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9669   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9670
9671   // GL_EXT_paletted_texture
9672   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9673   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9674   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9675   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9676
9677   // GL_EXT_pixel_transform
9678   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9679   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9681   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9682
9683   // GL_EXT_point_parameters
9684   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9685   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9686
9687   // GL_EXT_polygon_offset
9688   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9689
9690   // GL_EXT_secondary_color
9691   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9692   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9694   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9695   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9696   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9697   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9698   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9700   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9701   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9703   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9704   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9706   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708
9709   // GL_EXT_stencil_two_side
9710   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9711
9712   // GL_EXT_subtexture
9713   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9714   TglTexSubImage2DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9715
9716   // GL_EXT_texture3D
9717   TglTexImage3DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9718   TglTexSubImage3DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9719
9720   // GL_EXT_texture_object
9721   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9722   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9723   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9724   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9725   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9726   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9727
9728   // GL_EXT_texture_perturb_normal
9729   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730
9731   // GL_EXT_vertex_array
9732   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9733   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9734   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9735   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9736   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9737   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9739   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9740   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741
9742   // GL_EXT_vertex_shader
9743   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9748   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9749   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9750   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9751   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9752   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9764   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9767   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9770   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9771   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9774   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9775   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9776   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9777   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9778   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9779   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9780   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9782   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9783   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9785
9786   // GL_EXT_vertex_weighting
9787   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9788   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9789   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9790
9791   // GL_EXT_stencil_clear_tag
9792   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9793
9794   // GL_EXT_framebuffer_blit
9795   TglBlitFramebufferEXT = procedure(srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9796
9797   // GL_EXT_framebuffer_multisample
9798   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9799
9800   // GL_EXT_timer_query
9801   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9802   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9803
9804   // GL_EXT_gpu_program_parameters
9805   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9806   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9807
9808   // GL_EXT_bindable_uniform
9809   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9810   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9811   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9812
9813   // GL_EXT_draw_buffers2
9814   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9815   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9816   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9817   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9818   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9820
9821   // GL_EXT_draw_instanced
9822   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9823   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9824
9825   // GL_EXT_geometry_shader4
9826   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9827   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9828
9829   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9830
9831   // GL_EXT_gpu_shader4
9832   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9833   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9834   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9836   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9837   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9839   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9840   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9843   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9844   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9851   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9852   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9853   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9854   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9855   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9858   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9859   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9862   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9865   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9866
9867   // GL_EXT_texture_array
9868   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869
9870   // GL_EXT_texture_buffer_object
9871   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9872
9873   // GL_EXT_texture_integer
9874   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9875   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9876   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9877   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9878   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9879   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9880
9881   // GL_HP_image_transform
9882   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9883   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9886   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9887   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888
9889   // GL_EXT_depth_bounds_test
9890   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891
9892   // GL_EXT_blend_equation_separate
9893   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9894
9895   // GL_EXT_transform_feedback
9896   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9897   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9898   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9899   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9900   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9901   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9902   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9903
9904   // GL_EXT_direct_state_access
9905   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9906   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9907   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9908   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9909   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9910   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9911   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9912   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9913   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9916   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9917   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9919   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9920   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9921   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9923   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9924   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9925   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9926   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9929   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9930   TglTextureImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9931   TglTextureImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9932   TglTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9933   TglTextureSubImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9934   TglCopyTextureImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9935   TglCopyTextureImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9936   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9937   TglCopyTextureSubImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9938   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9939   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9940   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9941   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9942   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9943   TglTextureImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9944   TglTextureSubImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9945   TglCopyTextureSubImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9946   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9947   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9949   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9950   TglMultiTexImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9951   TglMultiTexImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9952   TglMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9953   TglMultiTexSubImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9954   TglCopyMultiTexImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9955   TglCopyMultiTexImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9956   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9957   TglCopyMultiTexSubImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9958   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9959   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9960   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9961   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9962   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9963   TglMultiTexImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; type_: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964   TglMultiTexSubImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; type_: GLenum; const pixels:PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9965   TglCopyMultiTexSubImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9966   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9971   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9972   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9973   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9974   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9977   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9978   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9979   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9980   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9981   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9982   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9983   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9984   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9985   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9986   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglCompressedTextureImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   TglCompressedTextureImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9990   TglCompressedTextureImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9991   TglCompressedTextureSubImage3DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9992   TglCompressedTextureSubImage2DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9993   TglCompressedTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9994   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9995   TglCompressedMultiTexImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9996   TglCompressedMultiTexImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9997   TglCompressedMultiTexImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9998   TglCompressedMultiTexSubImage3DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9999   TglCompressedMultiTexSubImage2DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10000   TglCompressedMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const bits: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10001   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10002   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10003   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10004   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10005   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10006   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10007   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10008   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10015   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10016   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10043   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10044   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10045   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10046   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10047   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10056   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10057   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10063   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10064   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10065   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10066   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10067   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10068   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10069   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10070   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10076   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10077   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10078   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10098   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10100   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10101   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10102   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10103   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10104   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10105   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10106   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10107   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10108   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10109   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10110   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10111
10112   // GL_EXT_separate_shader_objects
10113   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116
10117   // GL_EXT_shader_image_load_store
10118   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10119   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10120
10121   // GL_EXT_vertex_attrib_64bit
10122   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10123   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10124   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10125   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10126   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10127   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10128   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10129   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10130   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10133
10134   // GL_IBM_multimode_draw_arrays
10135   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10136   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137
10138   // GL_IBM_vertex_array_lists
10139   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10140   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10142   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10143   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10145   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10146   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147
10148   // GL_INGR_blend_func_separate
10149   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150
10151   // GL_INTEL_parallel_arrays
10152   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10153   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10156
10157   // GL_MESA_resize_buffers
10158   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10159
10160   // GL_MESA_window_pos
10161   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10162   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10165   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10166   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10168   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185
10186   // GL_NV_evaluators
10187   TglMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; uorder: GLint; vorder: GLint; _packed: GLboolean; const points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10188   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10189   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10191   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10192   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10193   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10194   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10195   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196
10197   // GL_NV_fence
10198   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10199   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10205
10206   // GL_NV_fragment_program
10207   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213
10214   // GL_NV_half_float
10215   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10222   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10223   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10224   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10229   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10233   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10246   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10247   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10250   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10251   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10256   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10260   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10261
10262   // GL_NV_occlusion_query
10263   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10264   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10267   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10268   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10269   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10270
10271   // GL_NV_pixel_data_range
10272   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10273   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274
10275   // GL_NV_point_sprite
10276   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10277   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278
10279   // GL_NV_primitive_restart
10280   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10281   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10282
10283   // GL_NV_register_combiners
10284   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10285   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10286   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10287   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10288   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10289   TglCombinerOutputNV = procedure(stage: GLenum; portion: GLenum; abOutput: GLenum; cdOutput: GLenum; sumOutput: GLenum; scale: GLenum; bias: GLenum; abDotProduct: GLboolean; cdDotProduct: GLboolean; muxSum: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10290   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10291   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10292   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10294   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10295   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10297
10298   // GL_NV_register_combiners2
10299   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10300   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301
10302   // GL_NV_vertex_array_range
10303   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10304   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305
10306   // GL_NV_vertex_program
10307   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10308   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10309   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10310   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10311   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10314   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10318   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10326   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10363   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10368   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10369   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371
10372   // GL_NV_depth_buffer_float
10373   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10374   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10375   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376
10377   // GL_NV_framebuffer_multisample_coverage
10378   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10379
10380   // GL_NV_geometry_program4
10381   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10382
10383   // GL_NV_gpu_program4
10384   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10385   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10386   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10387   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10388   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10389   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10390   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10391   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10392   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10395   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10396   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10397   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400
10401   // GL_NV_parameter_buffer_object
10402   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10405
10406   // GL_NV_transform_feedback
10407   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10408   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10409   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10410   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10411   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10412   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10413   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10414   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10415   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10417   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10418   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10419
10420   // GL_NV_conditional_render
10421   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423
10424   // GL_NV_present_video
10425   TglPresentFrameKeyedNV = procedure(video_slot: GLuint; minPresentTime: GLuint64EXT; beginPresentTimeId: GLuint; presentDuratioId: GLuint; type_: GLenum; target0: GLenum; fill0: GLuint; key0: GLuint; target1: GLenum; fill1: GLuint; key1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10426   TglPresentFrameDualFillNV = procedure(video_slot: GLuint; minPresentTime: GLuint64EXT; beginPresentTimeId: GLuint; presentDurationId: GLuint; type_: GLenum; target0: GLenum; fill0: GLuint; target1: GLenum; fill1: GLuint; target2: GLenum; fill2: GLuint; target3: GLenum; fill3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10427   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10428   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10429   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10430   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10431 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10432
10433   // GL_NV_explicit_multisample
10434   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10435   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437
10438   // GL_NV_transform_feedback2
10439   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10440   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10441   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10446
10447   // GL_NV_video_capture
10448   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10449   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10452   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10453   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10454   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10455   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10456   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460
10461   // GL_NV_copy_image
10462   TglCopyImageSubDataNV = procedure(srcName: GLuint; srcTarget: GLenum; srcLevel: GLint; srcX: GLint; srcY: GLint; srcZ: GLint; dstName: GLuint; dstTarget: GLenum; dstLevel: GLint; dstX: GLint; dstY: GLint; dstZ: GLint; width: GLsizei; height: GLsizei; depth: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463
10464   // GL_NV_shader_buffer_load
10465   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10466   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10468   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10469   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10470   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10471   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10472   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479
10480   // GL_NV_vertex_buffer_unified_memory
10481   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10483   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10484   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10485   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10486   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10488   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10489   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10490   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10492   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493
10494   // GL_NV_gpu_program5
10495   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10496   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497
10498   // GL_NV_gpu_shader5
10499   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10500   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10502   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10503   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10506   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10507   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10512   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10513   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10514   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10517   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10518   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10519   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10532
10533   // GL_NV_vertex_attrib_integer_64bit
10534   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10535   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10536   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10537   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10538   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10539   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10540   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10541   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10545   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10546   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10550   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10551   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553
10554   // GL_NV_vdpau_interop
10555   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10556   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10558   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10559   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10560   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10561   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10562   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565
10566   // GL_NV_texture_barrier
10567   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10568
10569   // (4.3)
10570         // GL_NV_path_rendering
10571   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10572   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10573   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10574   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10575   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10576   TglPathSubCommandsNV = procedure(path : GLUInt; commandStart : GLsizei; commandsToDelete : GLsizei; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10577   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10578   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   TglPathGlyphsNV = procedure(firstPathName : GLuint; fontTarget : GLenum; const fontName : PGLvoid; fontStyle : GLbitfield; numGlyphs : GLsizei; type_ : GLenum; const charcodes : PGLvoid; handleMissingGlyphs : GLenum; pathParameterTemplate : GLUInt; emScale : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580   TglPathGlyphRangeNV = procedure(firstPathName : GLuint; fontTarget : GLenum; const fontName : PGLvoid; fontStyle : GLbitfield; firstGlyph : GLuint; numGlyphs : GLsizei; handleMissingGlyphs : GLenum; pathParameterTemplate : GLUInt; emScale : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10581   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10582   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10585   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10586   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10587   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10588   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10589   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10592   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594   TglStencilFillPathInstancedNV = procedure(numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; fillMode : GLenum; mask : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10595   TglStencilStrokePathInstancedNV = procedure(numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; reference : GLint; mask : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10596   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10597   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   TglCoverFillPathInstancedNV = procedure(numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; coverMode : GLenum; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10603   TglCoverStrokePathInstancedNV = procedure(numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; coverMode : GLenum; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10604   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10605   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10606   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10607   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10608   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10609   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10610   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10611   TglGetPathSpacingNV = procedure(pathListMode : GLenum; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; advanceScale : GLfloat; kerningScale : GLfloat; transformType : GLenum; returnedSpacing : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10612   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10613   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10614   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10615   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10617   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10619   TglPointAlongPathNV  = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei; distance : GLfloat; x : PGLfloat; y : PGLfloat; tangentX : PGLfloat; tangentY : PGLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10620
10621   // GL_AMD_pinned_memory
10622
10623   // GL_AMD_stencil_operation_extended
10624   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10625
10626   // GL_AMD_vertex_shader_viewport_index
10627
10628   // GL_AMD_vertex_shader_layer
10629
10630   // GL_NV_bindless_texture
10631   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10632   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10633   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10634   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10635   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10636   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10637   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10638   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644
10645   // GL_ARB_bindless_texture
10646
10647   TglGetTextureHandleARB = function (texture : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648   TglGetTextureSamplerHandleARB = function (texture : GLuint; sampler : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649   TglMakeTextureHandleResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10650   TglMakeTextureHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10651   TglGetImageHandleARB = function (texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10652   TglMakeImageHandleResidentARB = procedure (handle : GLuint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10653   TglMakeImageHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10654   TglUniformHandleui64ARB = procedure (location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10655   TglUniformHandleui64vARB = procedure (location : GLint; count : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10656   TglProgramUniformHandleui64ARB = procedure (program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657   TglProgramUniformHandleui64vARB = procedure (program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10658   TglIsTextureHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10659   TglIsImageHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglVertexAttribL1ui64ARB = procedure (index : GLuint; x : GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661   TglVertexAttribL1ui64vARB = procedure (index : GLuint; const v : PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10662   TglGetVertexAttribLui64vARB = procedure (index : GLuint; pname : GLenum; params : PGLuint64EXT ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663
10664         // GL_NV_shader_atomic_float
10665
10666         // GL_AMD_query_buffer_object
10667
10668   //
10669
10670   // GL_PGI_misc_hints
10671   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10672
10673   // GL_SGIS_detail_texture
10674   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10675   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10676
10677   // GL_SGIS_fog_function
10678   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10679   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10680
10681   // GL_SGIS_multisample
10682   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10683   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10684
10685   // GL_SGIS_pixel_texture
10686   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10687   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10688   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10689   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10690   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10691   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10692
10693   // GL_SGIS_point_parameters
10694   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10695   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696
10697   // GL_SGIS_sharpen_texture
10698   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10699   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10700
10701   // GL_SGIS_texture4D
10702   TglTexImage4DSGIS = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; size4d: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10703   TglTexSubImage4DSGIS = procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; woffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; size4d: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10704
10705   // GL_SGIS_texture_color_mask
10706   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10707
10708   // GL_SGIS_texture_filter4
10709   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10710   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10711
10712   // GL_SGIX_async
10713   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10714   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10715   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10716   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10717   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719
10720   // GL_SGIX_flush_raster
10721   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722
10723   // GL_SGIX_fragment_lighting
10724   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10725   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10728   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10729   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10730   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10731   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10732   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10733   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10734   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10735   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10737   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10738   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10739   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10740   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10741   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10742
10743   // GL_SGIX_framezoom
10744   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745
10746   // GL_SGIX_igloo_interface
10747   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10748
10749   // GL_SGIX_instruments
10750   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10751   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10752   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10753   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10754   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10755   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10756
10757   // GL_SGIX_list_priority
10758   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10759   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10760   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10761   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10762   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10763   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10764
10765   // GL_SGIX_pixel_texture
10766   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10767
10768   // GL_SGIX_polynomial_ffd
10769   TglDeformationMap3dSGIX = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; ustride: GLint; uorder: GLint; v1: GLdouble; v2: GLdouble; vstride: GLint; vorder: GLint; w1: GLdouble; w2: GLdouble; wstride: GLint; worder: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10770   TglDeformationMap3fSGIX = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; ustride: GLint; uorder: GLint; v1: GLfloat; v2: GLfloat; vstride: GLint; vorder: GLint; w1: GLfloat; w2: GLfloat; wstride: GLint; worder: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10771   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10772   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10773
10774   // GL_SGIX_reference_plane
10775   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10776
10777   // GL_SGIX_sprite
10778   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10779   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10780   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10781   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10782
10783   // GL_SGIX_tag_sample_buffer
10784   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10785
10786   // GL_SGI_color_table
10787   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10788   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10789   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10790   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10791   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10792   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10793   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10794
10795   // GL_SUNX_constant_data
10796   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10797
10798   // GL_SUN_global_alpha
10799   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10800   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10801   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10802   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10803   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10804   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10805   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10806   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10807
10808   // GL_SUN_mesh_array
10809   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810
10811   // GL_SUN_triangle_list
10812   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10813   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10814   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10815   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10816   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10817   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10819
10820   // GL_SUN_vertex
10821   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10825   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10827   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10828   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10829   TglColor4fNormal3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10831   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10833   TglTexCoord4fVertex4fSUN = procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10835   TglTexCoord2fColor4ubVertex3fSUN = procedure(s: GLfloat; t: GLfloat; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10836   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10837   TglTexCoord2fColor3fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10838   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10839   TglTexCoord2fNormal3fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10840   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10841   TglTexCoord2fColor4fNormal3fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10842   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10843   TglTexCoord4fColor4fNormal3fVertex4fSUN = procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10845   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10846   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10847   TglReplacementCodeuiColor4ubVertex3fSUN = procedure(rc: GLuint; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10848   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10849   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10850   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10851   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10852   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10853   TglReplacementCodeuiColor4fNormal3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10854   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10855   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10856   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10857   TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10858   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10859   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10860   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10861
10862   // window support functions
10863 {$IFDEF DGL_WIN}
10864   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10865   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10866   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10867   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10868   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10869   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10870   TwglGetCurrentContext = function: HGLRC; stdcall;
10871   TwglGetCurrentDC = function: HDC; stdcall;
10872   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10873   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10874   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10875   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10876   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10877   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10878   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10879   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10880   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10881   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10882
10883   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10884   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10885   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10886
10887
10888   // WGL_ARB_buffer_region
10889   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10890   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10891   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10892   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10893
10894   // WGL_ARB_extensions_string
10895   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10896
10897   // WGL_ARB_make_current_read
10898   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10899   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10900
10901   // WGL_ARB_pbuffer
10902   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10903   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10904   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10905   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10906   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10907
10908   // WGL_ARB_pixel_format
10909   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10910   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10911   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
10912
10913   // WGL_ARB_color_buffer_float
10914   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
10915
10916   // WGL_ARB_render_texture
10917   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10918   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10919   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
10920
10921   // WGL_ARB_create_context
10922   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
10923
10924   // WGL_AMD_gpu_association
10925   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
10926   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
10927   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
10928   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
10929   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
10930   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
10931   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
10932   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
10933   TwglBlitContextFramebufferAMD = procedure(dstCtx: HGLRC; srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); stdcall;
10934
10935   // WGL_EXT_display_color_table
10936   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10937   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
10938   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10939   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
10940
10941   // WGL_EXT_extensions_string
10942   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
10943
10944   // WGL_EXT_make_current_read
10945   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10946   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
10947
10948   // WGL_EXT_pbuffer
10949   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
10950   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
10951   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
10952   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
10953   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10954
10955   // WGL_EXT_pixel_format
10956   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10957   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10958   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
10959
10960   // WGL_EXT_swap_control
10961   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
10962   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
10963
10964   // WGL_I3D_digital_video_control
10965   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10966   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10967
10968   // WGL_I3D_gamma
10969   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10970   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10971   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
10972   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
10973
10974   // WGL_I3D_genlock
10975   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10976   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10977   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
10978   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
10979   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
10980   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
10981   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
10982   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
10983   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
10984   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
10985   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
10986   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
10987
10988   // WGL_I3D_image_buffer
10989   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
10990   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
10991   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
10992   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
10993
10994   // WGL_I3D_swap_frame_lock
10995   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
10996   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
10997   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
10998   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
10999
11000   // WGL_I3D_swap_frame_usage
11001   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
11002   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
11003   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
11004   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
11005
11006   // WGL_NV_vertex_array_range
11007   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
11008   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11009
11010   // WGL_NV_present_video
11011   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11012   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11013   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11014
11015   // WGL_NV_video_output
11016   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11017   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11018   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11019   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11020   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11021   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11022
11023   // WGL_NV_swap_group
11024   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11025   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11026   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11027   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11028   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11029   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11030
11031   // WGL_NV_gpu_affinity
11032   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11033   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11034   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11035   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11036   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11037
11038   // WGL_NV_video_capture
11039   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11040   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11041   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11042   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11043   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11044
11045   // WGL_NV_copy_image
11046   TwglCopyImageSubDataNV = function(hSrcRc: HGLRC; srcName: GLuint; srcTarget: GLenum; srcLevel: GLint; srcX: GLint; srcY: GLint; srcZ: GLint; hDstRC: HGLRC; dstName: GLuint; dstTarget: GLenum; dstLevel: GLint; dstX: GLint; dstY: GLint; dstZ: GLint; width: GLsizei; height: GLsizei; depth: GLsizei): Boolean; stdcall;
11047
11048   // WGL_NV_DX_interop
11049   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11050   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11051   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11052   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11053   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11054   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11055   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11056   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11057
11058   // WGL_OML_sync_control
11059   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11060   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11061   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11062   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11063   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11064   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11065
11066   // WGL_3DL_stereo_control
11067   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11068
11069   // WIN_draw_range_elements
11070   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11071
11072   // WIN_swap_hint
11073   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11074 {$ENDIF}
11075
11076 {$IFDEF DGL_LINUX}
11077   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11078   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11079   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11080   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11081   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11082   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11083   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11084   TglXGetCurrentContext = function: GLXContext cdecl;
11085   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11086   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11087   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11088   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11089   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11090   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11091   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11092   TglXWaitGL = procedure; cdecl;
11093   TglXWaitX = procedure; cdecl;
11094
11095   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11096   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11097   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11098
11099   // GLX_VERSION_1_3
11100   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11101   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11102   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11103   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11104   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11105   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11106   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11107
11108   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11109   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11110   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11111   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11112   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11113   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11114   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11115   TglXGetCurreentDisplay = function: PDisplay;
11116
11117   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11118   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11119   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11120
11121   // GLX_VERSION_1_4
11122   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11123
11124   // GLX_ARB_get_proc_address
11125   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11126
11127   // GLX_ARB_create_context
11128   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11129
11130   // GLX_EXT_import_context
11131   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11132   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11133   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11134   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11135   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11136
11137   // GLX_EXT_texture_from_pixmap
11138   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11139   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11140
11141   TglXSwapIntervalEXT = procedure (dpy : PDisplay; drawable : GLXDrawable; interval : GLint); cdecl;
11142 {$ENDIF}
11143
11144   // GL utility functions and procedures
11145   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11146   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11147   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11148   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11149   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11150   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11151   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}
11152   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}
11153   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}
11154   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11155   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11156   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11157   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11158   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11159   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11160   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11161   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11162   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11163   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11164   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11165   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11166   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11167   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11168   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11169   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11170   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11171   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11172   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11173   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11174   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11175   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11176   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11177   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11178   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11179   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11180   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11181   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11182   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11183   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11184   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11185   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11186   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11187   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11188   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}
11189   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11190   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11191   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11192   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11193   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11194   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11195   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11196
11197 var
11198   // GL_VERSION_1_0
11199   glCullFace: TglCullFace;
11200   glFrontFace: TglFrontFace;
11201   glHint: TglHint;
11202   glLineWidth: TglLineWidth;
11203   glPointSize: TglPointSize;
11204   glPolygonMode: TglPolygonMode;
11205   glScissor: TglScissor;
11206   glTexParameterf: TglTexParameterf;
11207   glTexParameterfv: TglTexParameterfv;
11208   glTexParameteri: TglTexParameteri;
11209   glTexParameteriv: TglTexParameteriv;
11210   glTexImage1D: TglTexImage1D;
11211   glTexImage2D: TglTexImage2D;
11212   glDrawBuffer: TglDrawBuffer;
11213   glClear: TglClear;
11214   glClearColor: TglClearColor;
11215   glClearStencil: TglClearStencil;
11216   glClearDepth: TglClearDepth;
11217   glStencilMask: TglStencilMask;
11218   glColorMask: TglColorMask;
11219   glDepthMask: TglDepthMask;
11220   glDisable: TglDisable;
11221   glEnable: TglEnable;
11222   glFinish: TglFinish;
11223   glFlush: TglFlush;
11224   glBlendFunc: TglBlendFunc;
11225   glLogicOp: TglLogicOp;
11226   glStencilFunc: TglStencilFunc;
11227   glStencilOp: TglStencilOp;
11228   glDepthFunc: TglDepthFunc;
11229   glPixelStoref: TglPixelStoref;
11230   glPixelStorei: TglPixelStorei;
11231   glReadBuffer: TglReadBuffer;
11232   glReadPixels: TglReadPixels;
11233   glGetBooleanv: TglGetBooleanv;
11234   glGetDoublev: TglGetDoublev;
11235   glGetError: TglGetError;
11236   glGetFloatv: TglGetFloatv;
11237   glGetIntegerv: TglGetIntegerv;
11238   glGetString: TglGetString;
11239   glGetTexImage: TglGetTexImage;
11240   glGetTexParameteriv: TglGetTexParameteriv;
11241   glGetTexParameterfv: TglGetTexParameterfv;
11242   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11243   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11244   glIsEnabled: TglIsEnabled;
11245   glDepthRange: TglDepthRange;
11246   glViewport: TglViewport;
11247
11248   // GL_VERSION_1_1
11249   glDrawArrays: TglDrawArrays;
11250   glDrawElements: TglDrawElements;
11251   glGetPointerv: TglGetPointerv;
11252   glPolygonOffset: TglPolygonOffset;
11253   glCopyTexImage1D: TglCopyTexImage1D;
11254   glCopyTexImage2D: TglCopyTexImage2D;
11255   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11256   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11257   glTexSubImage1D: TglTexSubImage1D;
11258   glTexSubImage2D: TglTexSubImage2D;
11259   glBindTexture: TglBindTexture;
11260   glDeleteTextures: TglDeleteTextures;
11261   glGenTextures: TglGenTextures;
11262 {$ifdef DGL_DEPRECATED}
11263   glAccum: TglAccum;
11264   glAlphaFunc: TglAlphaFunc;
11265   glAreTexturesResident: TglAreTexturesResident;
11266   glArrayElement: TglArrayElement;
11267   glBegin: TglBegin;
11268   glBitmap: TglBitmap;
11269   glCallList: TglCallList;
11270   glCallLists: TglCallLists;
11271   glClearAccum: TglClearAccum;
11272   glClearIndex: TglClearIndex;
11273   glClipPlane: TglClipPlane;
11274   glColor3b: TglColor3b;
11275   glColor3bv: TglColor3bv;
11276   glColor3d: TglColor3d;
11277   glColor3dv: TglColor3dv;
11278   glColor3f: TglColor3f;
11279   glColor3fv: TglColor3fv;
11280   glColor3i: TglColor3i;
11281   glColor3iv: TglColor3iv;
11282   glColor3s: TglColor3s;
11283   glColor3sv: TglColor3sv;
11284   glColor3ub: TglColor3ub;
11285   glColor3ubv: TglColor3ubv;
11286   glColor3ui: TglColor3ui;
11287   glColor3uiv: TglColor3uiv;
11288   glColor3us: TglColor3us;
11289   glColor3usv: TglColor3usv;
11290   glColor4b: TglColor4b;
11291   glColor4bv: TglColor4bv;
11292   glColor4d: TglColor4d;
11293   glColor4dv: TglColor4dv;
11294   glColor4f: TglColor4f;
11295   glColor4fv: TglColor4fv;
11296   glColor4i: TglColor4i;
11297   glColor4iv: TglColor4iv;
11298   glColor4s: TglColor4s;
11299   glColor4sv: TglColor4sv;
11300   glColor4ub: TglColor4ub;
11301   glColor4ubv: TglColor4ubv;
11302   glColor4ui: TglColor4ui;
11303   glColor4uiv: TglColor4uiv;
11304   glColor4us: TglColor4us;
11305   glColor4usv: TglColor4usv;
11306   glColorMaterial: TglColorMaterial;
11307   glColorPointer: TglColorPointer;
11308   glCopyPixels: TglCopyPixels;
11309   glDeleteLists: TglDeleteLists;
11310   glDisableClientState: TglDisableClientState;
11311   glDrawPixels: TglDrawPixels;
11312   glEdgeFlag: TglEdgeFlag;
11313   glEdgeFlagPointer: TglEdgeFlagPointer;
11314   glEdgeFlagv: TglEdgeFlagv;
11315   glEnableClientState: TglEnableClientState;
11316   glEnd: TglEnd;
11317   glEndList: TglEndList;
11318   glEvalCoord1d: TglEvalCoord1d;
11319   glEvalCoord1dv: TglEvalCoord1dv;
11320   glEvalCoord1f: TglEvalCoord1f;
11321   glEvalCoord1fv: TglEvalCoord1fv;
11322   glEvalCoord2d: TglEvalCoord2d;
11323   glEvalCoord2dv: TglEvalCoord2dv;
11324   glEvalCoord2f: TglEvalCoord2f;
11325   glEvalCoord2fv: TglEvalCoord2fv;
11326   glEvalMesh1: TglEvalMesh1;
11327   glEvalMesh2: TglEvalMesh2;
11328   glEvalPoint1: TglEvalPoint1;
11329   glEvalPoint2: TglEvalPoint2;
11330   glFeedbackBuffer: TglFeedbackBuffer;
11331   glFogf: TglFogf;
11332   glFogfv: TglFogfv;
11333   glFogi: TglFogi;
11334   glFogiv: TglFogiv;
11335   glFrustum: TglFrustum;
11336   glGenLists: TglGenLists;
11337   glGetClipPlane: TglGetClipPlane;
11338   glGetLightfv: TglGetLightfv;
11339   glGetLightiv: TglGetLightiv;
11340   glGetMapdv: TglGetMapdv;
11341   glGetMapfv: TglGetMapfv;
11342   glGetMapiv: TglGetMapiv;
11343   glGetMaterialfv: TglGetMaterialfv;
11344   glGetMaterialiv: TglGetMaterialiv;
11345   glGetPixelMapfv: TglGetPixelMapfv;
11346   glGetPixelMapuiv: TglGetPixelMapuiv;
11347   glGetPixelMapusv: TglGetPixelMapusv;
11348   glGetPolygonStipple: TglGetPolygonStipple;
11349   glGetTexEnvfv: TglGetTexEnvfv;
11350   glGetTexEnviv: TglGetTexEnviv;
11351   glGetTexGendv: TglGetTexGendv;
11352   glGetTexGenfv: TglGetTexGenfv;
11353   glGetTexGeniv: TglGetTexGeniv;
11354   glIndexMask: TglIndexMask;
11355   glIndexPointer: TglIndexPointer;
11356   glIndexd: TglIndexd;
11357   glIndexdv: TglIndexdv;
11358   glIndexf: TglIndexf;
11359   glIndexfv: TglIndexfv;
11360   glIndexi: TglIndexi;
11361   glIndexiv: TglIndexiv;
11362   glIndexs: TglIndexs;
11363   glIndexsv: TglIndexsv;
11364   glIndexub: TglIndexub;
11365   glIndexubv: TglIndexubv;
11366   glInitNames: TglInitNames;
11367   glInterleavedArrays: TglInterleavedArrays;
11368   glIsList: TglIsList;
11369   glIsTexture: TglIsTexture;
11370   glLightModelf: TglLightModelf;
11371   glLightModelfv: TglLightModelfv;
11372   glLightModeli: TglLightModeli;
11373   glLightModeliv: TglLightModeliv;
11374   glLightf: TglLightf;
11375   glLightfv: TglLightfv;
11376   glLighti: TglLighti;
11377   glLightiv: TglLightiv;
11378   glLineStipple: TglLineStipple;
11379   glListBase: TglListBase;
11380   glLoadIdentity: TglLoadIdentity;
11381   glLoadMatrixd: TglLoadMatrixd;
11382   glLoadMatrixf: TglLoadMatrixf;
11383   glLoadName: TglLoadName;
11384   glMap1d: TglMap1d;
11385   glMap1f: TglMap1f;
11386   glMap2d: TglMap2d;
11387   glMap2f: TglMap2f;
11388   glMapGrid1d: TglMapGrid1d;
11389   glMapGrid1f: TglMapGrid1f;
11390   glMapGrid2d: TglMapGrid2d;
11391   glMapGrid2f: TglMapGrid2f;
11392   glMaterialf: TglMaterialf;
11393   glMaterialfv: TglMaterialfv;
11394   glMateriali: TglMateriali;
11395   glMaterialiv: TglMaterialiv;
11396   glMatrixMode: TglMatrixMode;
11397   glMultMatrixd: TglMultMatrixd;
11398   glMultMatrixf: TglMultMatrixf;
11399   glNewList: TglNewList;
11400   glNormal3b: TglNormal3b;
11401   glNormal3bv: TglNormal3bv;
11402   glNormal3d: TglNormal3d;
11403   glNormal3dv: TglNormal3dv;
11404   glNormal3f: TglNormal3f;
11405   glNormal3fv: TglNormal3fv;
11406   glNormal3i: TglNormal3i;
11407   glNormal3iv: TglNormal3iv;
11408   glNormal3s: TglNormal3s;
11409   glNormal3sv: TglNormal3sv;
11410   glNormalPointer: TglNormalPointer;
11411   glOrtho: TglOrtho;
11412   glPassThrough: TglPassThrough;
11413   glPixelMapfv: TglPixelMapfv;
11414   glPixelMapuiv: TglPixelMapuiv;
11415   glPixelMapusv: TglPixelMapusv;
11416   glPixelTransferf: TglPixelTransferf;
11417   glPixelTransferi: TglPixelTransferi;
11418   glPixelZoom: TglPixelZoom;
11419   glPolygonStipple: TglPolygonStipple;
11420   glPopAttrib: TglPopAttrib;
11421   glPopClientAttrib: TglPopClientAttrib;
11422   glPopMatrix: TglPopMatrix;
11423   glPopName: TglPopName;
11424   glPrioritizeTextures: TglPrioritizeTextures;
11425   glPushAttrib: TglPushAttrib;
11426   glPushClientAttrib: TglPushClientAttrib;
11427   glPushMatrix: TglPushMatrix;
11428   glPushName: TglPushName;
11429   glRasterPos2d: TglRasterPos2d;
11430   glRasterPos2dv: TglRasterPos2dv;
11431   glRasterPos2f: TglRasterPos2f;
11432   glRasterPos2fv: TglRasterPos2fv;
11433   glRasterPos2i: TglRasterPos2i;
11434   glRasterPos2iv: TglRasterPos2iv;
11435   glRasterPos2s: TglRasterPos2s;
11436   glRasterPos2sv: TglRasterPos2sv;
11437   glRasterPos3d: TglRasterPos3d;
11438   glRasterPos3dv: TglRasterPos3dv;
11439   glRasterPos3f: TglRasterPos3f;
11440   glRasterPos3fv: TglRasterPos3fv;
11441   glRasterPos3i: TglRasterPos3i;
11442   glRasterPos3iv: TglRasterPos3iv;
11443   glRasterPos3s: TglRasterPos3s;
11444   glRasterPos3sv: TglRasterPos3sv;
11445   glRasterPos4d: TglRasterPos4d;
11446   glRasterPos4dv: TglRasterPos4dv;
11447   glRasterPos4f: TglRasterPos4f;
11448   glRasterPos4fv: TglRasterPos4fv;
11449   glRasterPos4i: TglRasterPos4i;
11450   glRasterPos4iv: TglRasterPos4iv;
11451   glRasterPos4s: TglRasterPos4s;
11452   glRasterPos4sv: TglRasterPos4sv;
11453   glRectd: TglRectd;
11454   glRectdv: TglRectdv;
11455   glRectf: TglRectf;
11456   glRectfv: TglRectfv;
11457   glRecti: TglRecti;
11458   glRectiv: TglRectiv;
11459   glRects: TglRects;
11460   glRectsv: TglRectsv;
11461   glRenderMode: TglRenderMode;
11462   glRotated: TglRotated;
11463   glRotatef: TglRotatef;
11464   glScaled: TglScaled;
11465   glScalef: TglScalef;
11466   glSelectBuffer: TglSelectBuffer;
11467   glShadeModel: TglShadeModel;
11468   glTexCoord1d: TglTexCoord1d;
11469   glTexCoord1dv: TglTexCoord1dv;
11470   glTexCoord1f: TglTexCoord1f;
11471   glTexCoord1fv: TglTexCoord1fv;
11472   glTexCoord1i: TglTexCoord1i;
11473   glTexCoord1iv: TglTexCoord1iv;
11474   glTexCoord1s: TglTexCoord1s;
11475   glTexCoord1sv: TglTexCoord1sv;
11476   glTexCoord2d: TglTexCoord2d;
11477   glTexCoord2dv: TglTexCoord2dv;
11478   glTexCoord2f: TglTexCoord2f;
11479   glTexCoord2fv: TglTexCoord2fv;
11480   glTexCoord2i: TglTexCoord2i;
11481   glTexCoord2iv: TglTexCoord2iv;
11482   glTexCoord2s: TglTexCoord2s;
11483   glTexCoord2sv: TglTexCoord2sv;
11484   glTexCoord3d: TglTexCoord3d;
11485   glTexCoord3dv: TglTexCoord3dv;
11486   glTexCoord3f: TglTexCoord3f;
11487   glTexCoord3fv: TglTexCoord3fv;
11488   glTexCoord3i: TglTexCoord3i;
11489   glTexCoord3iv: TglTexCoord3iv;
11490   glTexCoord3s: TglTexCoord3s;
11491   glTexCoord3sv: TglTexCoord3sv;
11492   glTexCoord4d: TglTexCoord4d;
11493   glTexCoord4dv: TglTexCoord4dv;
11494   glTexCoord4f: TglTexCoord4f;
11495   glTexCoord4fv: TglTexCoord4fv;
11496   glTexCoord4i: TglTexCoord4i;
11497   glTexCoord4iv: TglTexCoord4iv;
11498   glTexCoord4s: TglTexCoord4s;
11499   glTexCoord4sv: TglTexCoord4sv;
11500   glTexCoordPointer: TglTexCoordPointer;
11501   glTexEnvf: TglTexEnvf;
11502   glTexEnvfv: TglTexEnvfv;
11503   glTexEnvi: TglTexEnvi;
11504   glTexEnviv: TglTexEnviv;
11505   glTexGend: TglTexGend;
11506   glTexGendv: TglTexGendv;
11507   glTexGenf: TglTexGenf;
11508   glTexGenfv: TglTexGenfv;
11509   glTexGeni: TglTexGeni;
11510   glTexGeniv: TglTexGeniv;
11511   glTranslated: TglTranslated;
11512   glTranslatef: TglTranslatef;
11513   glVertex2d: TglVertex2d;
11514   glVertex2dv: TglVertex2dv;
11515   glVertex2f: TglVertex2f;
11516   glVertex2fv: TglVertex2fv;
11517   glVertex2i: TglVertex2i;
11518   glVertex2iv: TglVertex2iv;
11519   glVertex2s: TglVertex2s;
11520   glVertex2sv: TglVertex2sv;
11521   glVertex3d: TglVertex3d;
11522   glVertex3dv: TglVertex3dv;
11523   glVertex3f: TglVertex3f;
11524   glVertex3fv: TglVertex3fv;
11525   glVertex3i: TglVertex3i;
11526   glVertex3iv: TglVertex3iv;
11527   glVertex3s: TglVertex3s;
11528   glVertex3sv: TglVertex3sv;
11529   glVertex4d: TglVertex4d;
11530   glVertex4dv: TglVertex4dv;
11531   glVertex4f: TglVertex4f;
11532   glVertex4fv: TglVertex4fv;
11533   glVertex4i: TglVertex4i;
11534   glVertex4iv: TglVertex4iv;
11535   glVertex4s: TglVertex4s;
11536   glVertex4sv: TglVertex4sv;
11537   glVertexPointer: TglVertexPointer;
11538 {$endif}
11539
11540   // GL_VERSION_1_2
11541   glBlendColor: TglBlendColor;
11542   glBlendEquation: TglBlendEquation;
11543   glDrawRangeElements: TglDrawRangeElements;
11544   glTexImage3D: TglTexImage3D;
11545   glTexSubImage3D: TglTexSubImage3D;
11546   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11547 {$ifdef DGL_DEPRECATED}
11548   glColorTable: TglColorTable;
11549   glColorTableParameterfv: TglColorTableParameterfv;
11550   glColorTableParameteriv: TglColorTableParameteriv;
11551   glCopyColorTable: TglCopyColorTable;
11552   glGetColorTable: TglGetColorTable;
11553   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11554   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11555   glColorSubTable: TglColorSubTable;
11556   glCopyColorSubTable: TglCopyColorSubTable;
11557   glConvolutionFilter1D: TglConvolutionFilter1D;
11558   glConvolutionFilter2D: TglConvolutionFilter2D;
11559   glConvolutionParameterf: TglConvolutionParameterf;
11560   glConvolutionParameterfv: TglConvolutionParameterfv;
11561   glConvolutionParameteri: TglConvolutionParameteri;
11562   glConvolutionParameteriv: TglConvolutionParameteriv;
11563   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11564   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11565   glGetConvolutionFilter: TglGetConvolutionFilter;
11566   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11567   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11568   glGetSeparableFilter: TglGetSeparableFilter;
11569   glSeparableFilter2D: TglSeparableFilter2D;
11570   glGetHistogram: TglGetHistogram;
11571   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11572   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11573   glGetMinmax: TglGetMinmax;
11574   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11575   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11576   glHistogram: TglHistogram;
11577   glMinmax: TglMinmax;
11578   glResetHistogram: TglResetHistogram;
11579   glResetMinmax: TglResetMinmax;
11580 {$endif}
11581
11582   // GL_VERSION_1_3
11583   glActiveTexture: TglActiveTexture;
11584   glSampleCoverage: TglSampleCoverage;
11585   glCompressedTexImage3D: TglCompressedTexImage3D;
11586   glCompressedTexImage2D: TglCompressedTexImage2D;
11587   glCompressedTexImage1D: TglCompressedTexImage1D;
11588   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11589   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11590   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11591   glGetCompressedTexImage: TglGetCompressedTexImage;
11592 {$ifdef DGL_DEPRECATED}
11593   glClientActiveTexture: TglClientActiveTexture;
11594   glMultiTexCoord1d: TglMultiTexCoord1d;
11595   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11596   glMultiTexCoord1f: TglMultiTexCoord1f;
11597   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11598   glMultiTexCoord1i: TglMultiTexCoord1i;
11599   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11600   glMultiTexCoord1s: TglMultiTexCoord1s;
11601   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11602   glMultiTexCoord2d: TglMultiTexCoord2d;
11603   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11604   glMultiTexCoord2f: TglMultiTexCoord2f;
11605   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11606   glMultiTexCoord2i: TglMultiTexCoord2i;
11607   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11608   glMultiTexCoord2s: TglMultiTexCoord2s;
11609   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11610   glMultiTexCoord3d: TglMultiTexCoord3d;
11611   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11612   glMultiTexCoord3f: TglMultiTexCoord3f;
11613   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11614   glMultiTexCoord3i: TglMultiTexCoord3i;
11615   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11616   glMultiTexCoord3s: TglMultiTexCoord3s;
11617   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11618   glMultiTexCoord4d: TglMultiTexCoord4d;
11619   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11620   glMultiTexCoord4f: TglMultiTexCoord4f;
11621   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11622   glMultiTexCoord4i: TglMultiTexCoord4i;
11623   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11624   glMultiTexCoord4s: TglMultiTexCoord4s;
11625   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11626   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11627   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11628   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11629   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11630 {$endif}
11631
11632   // GL_VERSION_1_4
11633   glBlendFuncSeparate: TglBlendFuncSeparate;
11634   glMultiDrawArrays: TglMultiDrawArrays;
11635   glMultiDrawElements: TglMultiDrawElements;
11636   glPointParameterf: TglPointParameterf;
11637   glPointParameterfv: TglPointParameterfv;
11638   glPointParameteri: TglPointParameteri;
11639   glPointParameteriv: TglPointParameteriv;
11640 {$ifdef DGL_DEPRECATED}
11641   glFogCoordf: TglFogCoordf;
11642   glFogCoordfv: TglFogCoordfv;
11643   glFogCoordd: TglFogCoordd;
11644   glFogCoorddv: TglFogCoorddv;
11645   glFogCoordPointer: TglFogCoordPointer;
11646   glSecondaryColor3b: TglSecondaryColor3b;
11647   glSecondaryColor3bv: TglSecondaryColor3bv;
11648   glSecondaryColor3d: TglSecondaryColor3d;
11649   glSecondaryColor3dv: TglSecondaryColor3dv;
11650   glSecondaryColor3f: TglSecondaryColor3f;
11651   glSecondaryColor3fv: TglSecondaryColor3fv;
11652   glSecondaryColor3i: TglSecondaryColor3i;
11653   glSecondaryColor3iv: TglSecondaryColor3iv;
11654   glSecondaryColor3s: TglSecondaryColor3s;
11655   glSecondaryColor3sv: TglSecondaryColor3sv;
11656   glSecondaryColor3ub: TglSecondaryColor3ub;
11657   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11658   glSecondaryColor3ui: TglSecondaryColor3ui;
11659   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11660   glSecondaryColor3us: TglSecondaryColor3us;
11661   glSecondaryColor3usv: TglSecondaryColor3usv;
11662   glSecondaryColorPointer: TglSecondaryColorPointer;
11663   glWindowPos2d: TglWindowPos2d;
11664   glWindowPos2dv: TglWindowPos2dv;
11665   glWindowPos2f: TglWindowPos2f;
11666   glWindowPos2fv: TglWindowPos2fv;
11667   glWindowPos2i: TglWindowPos2i;
11668   glWindowPos2iv: TglWindowPos2iv;
11669   glWindowPos2s: TglWindowPos2s;
11670   glWindowPos2sv: TglWindowPos2sv;
11671   glWindowPos3d: TglWindowPos3d;
11672   glWindowPos3dv: TglWindowPos3dv;
11673   glWindowPos3f: TglWindowPos3f;
11674   glWindowPos3fv: TglWindowPos3fv;
11675   glWindowPos3i: TglWindowPos3i;
11676   glWindowPos3iv: TglWindowPos3iv;
11677   glWindowPos3s: TglWindowPos3s;
11678   glWindowPos3sv: TglWindowPos3sv;
11679 {$endif}
11680
11681   // GL_VERSION_1_5
11682   glGenQueries: TglGenQueries;
11683   glDeleteQueries: TglDeleteQueries;
11684   glIsQuery: TglIsQuery;
11685   glBeginQuery: TglBeginQuery;
11686   glEndQuery: TglEndQuery;
11687   glGetQueryiv: TglGetQueryiv;
11688   glGetQueryObjectiv: TglGetQueryObjectiv;
11689   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11690   glBindBuffer: TglBindBuffer;
11691   glDeleteBuffers: TglDeleteBuffers;
11692   glGenBuffers: TglGenBuffers;
11693   glIsBuffer: TglIsBuffer;
11694   glBufferData: TglBufferData;
11695   glBufferSubData: TglBufferSubData;
11696   glGetBufferSubData: TglGetBufferSubData;
11697   glMapBuffer: TglMapBuffer;
11698   glUnmapBuffer: TglUnmapBuffer;
11699   glGetBufferParameteriv: TglGetBufferParameteriv;
11700   glGetBufferPointerv: TglGetBufferPointerv;
11701
11702   // GL_VERSION_2_0
11703   glBlendEquationSeparate: TglBlendEquationSeparate;
11704   glDrawBuffers: TglDrawBuffers;
11705   glStencilOpSeparate: TglStencilOpSeparate;
11706   glStencilFuncSeparate: TglStencilFuncSeparate;
11707   glStencilMaskSeparate: TglStencilMaskSeparate;
11708   glAttachShader: TglAttachShader;
11709   glBindAttribLocation: TglBindAttribLocation;
11710   glCompileShader: TglCompileShader;
11711   glCreateProgram: TglCreateProgram;
11712   glCreateShader: TglCreateShader;
11713   glDeleteProgram: TglDeleteProgram;
11714   glDeleteShader: TglDeleteShader;
11715   glDetachShader: TglDetachShader;
11716   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11717   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11718   glGetActiveAttrib: TglGetActiveAttrib;
11719   glGetActiveUniform: TglGetActiveUniform;
11720   glGetAttachedShaders: TglGetAttachedShaders;
11721   glGetAttribLocation: TglGetAttribLocation;
11722   glGetProgramiv: TglGetProgramiv;
11723   glGetProgramInfoLog: TglGetProgramInfoLog;
11724   glGetShaderiv: TglGetShaderiv;
11725   glGetShaderInfoLog: TglGetShaderInfoLog;
11726   glGetShaderSource: TglGetShaderSource;
11727   glGetUniformLocation: TglGetUniformLocation;
11728   glGetUniformfv: TglGetUniformfv;
11729   glGetUniformiv: TglGetUniformiv;
11730   glGetVertexAttribfv: TglGetVertexAttribfv;
11731   glGetVertexAttribiv: TglGetVertexAttribiv;
11732   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11733   glIsProgram: TglIsProgram;
11734   glIsShader: TglIsShader;
11735   glLinkProgram: TglLinkProgram;
11736   glShaderSource: TglShaderSource;
11737   glUseProgram: TglUseProgram;
11738   glUniform1f: TglUniform1f;
11739   glUniform2f: TglUniform2f;
11740   glUniform3f: TglUniform3f;
11741   glUniform4f: TglUniform4f;
11742   glUniform1i: TglUniform1i;
11743   glUniform2i: TglUniform2i;
11744   glUniform3i: TglUniform3i;
11745   glUniform4i: TglUniform4i;
11746   glUniform1fv: TglUniform1fv;
11747   glUniform2fv: TglUniform2fv;
11748   glUniform3fv: TglUniform3fv;
11749   glUniform4fv: TglUniform4fv;
11750   glUniform1iv: TglUniform1iv;
11751   glUniform2iv: TglUniform2iv;
11752   glUniform3iv: TglUniform3iv;
11753   glUniform4iv: TglUniform4iv;
11754   glUniformMatrix2fv: TglUniformMatrix2fv;
11755   glUniformMatrix3fv: TglUniformMatrix3fv;
11756   glUniformMatrix4fv: TglUniformMatrix4fv;
11757   glValidateProgram: TglValidateProgram;
11758   glVertexAttrib1d: TglVertexAttrib1d;
11759   glVertexAttrib1dv: TglVertexAttrib1dv;
11760   glVertexAttrib1f: TglVertexAttrib1f;
11761   glVertexAttrib1fv: TglVertexAttrib1fv;
11762   glVertexAttrib1s: TglVertexAttrib1s;
11763   glVertexAttrib1sv: TglVertexAttrib1sv;
11764   glVertexAttrib2d: TglVertexAttrib2d;
11765   glVertexAttrib2dv: TglVertexAttrib2dv;
11766   glVertexAttrib2f: TglVertexAttrib2f;
11767   glVertexAttrib2fv: TglVertexAttrib2fv;
11768   glVertexAttrib2s: TglVertexAttrib2s;
11769   glVertexAttrib2sv: TglVertexAttrib2sv;
11770   glVertexAttrib3d: TglVertexAttrib3d;
11771   glVertexAttrib3dv: TglVertexAttrib3dv;
11772   glVertexAttrib3f: TglVertexAttrib3f;
11773   glVertexAttrib3fv: TglVertexAttrib3fv;
11774   glVertexAttrib3s: TglVertexAttrib3s;
11775   glVertexAttrib3sv: TglVertexAttrib3sv;
11776   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11777   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11778   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11779   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11780   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11781   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11782   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11783   glVertexAttrib4bv: TglVertexAttrib4bv;
11784   glVertexAttrib4d: TglVertexAttrib4d;
11785   glVertexAttrib4dv: TglVertexAttrib4dv;
11786   glVertexAttrib4f: TglVertexAttrib4f;
11787   glVertexAttrib4fv: TglVertexAttrib4fv;
11788   glVertexAttrib4iv: TglVertexAttrib4iv;
11789   glVertexAttrib4s: TglVertexAttrib4s;
11790   glVertexAttrib4sv: TglVertexAttrib4sv;
11791   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11792   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11793   glVertexAttrib4usv: TglVertexAttrib4usv;
11794   glVertexAttribPointer: TglVertexAttribPointer;
11795
11796   // GL_VERSION_2_1
11797   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11798   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11799   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11800   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11801   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11802   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11803
11804   // GL_VERSION_3_0
11805   glColorMaski: TglColorMaski;
11806   glGetBooleani_v: TglGetBooleani_v;
11807   glGetIntegeri_v: TglGetIntegeri_v;
11808   glEnablei: TglEnablei;
11809   glDisablei: TglDisablei;
11810   glIsEnabledi: TglIsEnabledi;
11811   glBeginTransformFeedback: TglBeginTransformFeedback;
11812   glEndTransformFeedback: TglEndTransformFeedback;
11813   glBindBufferRange: TglBindBufferRange;
11814   glBindBufferBase: TglBindBufferBase;
11815   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11816   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11817   glClampColor: TglClampColor;
11818   glBeginConditionalRender: TglBeginConditionalRender;
11819   glEndConditionalRender: TglEndConditionalRender;
11820   glVertexAttribI1i: TglVertexAttribI1i;
11821   glVertexAttribI2i: TglVertexAttribI2i;
11822   glVertexAttribI3i: TglVertexAttribI3i;
11823   glVertexAttribI4i: TglVertexAttribI4i;
11824   glVertexAttribI1ui: TglVertexAttribI1ui;
11825   glVertexAttribI2ui: TglVertexAttribI2ui;
11826   glVertexAttribI3ui: TglVertexAttribI3ui;
11827   glVertexAttribI4ui: TglVertexAttribI4ui;
11828   glVertexAttribI1iv: TglVertexAttribI1iv;
11829   glVertexAttribI2iv: TglVertexAttribI2iv;
11830   glVertexAttribI3iv: TglVertexAttribI3iv;
11831   glVertexAttribI4iv: TglVertexAttribI4iv;
11832   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11833   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11834   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11835   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11836   glVertexAttribI4bv: TglVertexAttribI4bv;
11837   glVertexAttribI4sv: TglVertexAttribI4sv;
11838   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11839   glVertexAttribI4usv: TglVertexAttribI4usv;
11840   glVertexAttribIPointer: TglVertexAttribIPointer;
11841   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11842   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11843   glGetUniformuiv: TglGetUniformuiv;
11844   glBindFragDataLocation: TglBindFragDataLocation;
11845   glGetFragDataLocation: TglGetFragDataLocation;
11846   glUniform1ui: TglUniform1ui;
11847   glUniform2ui: TglUniform2ui;
11848   glUniform3ui: TglUniform3ui;
11849   glUniform4ui: TglUniform4ui;
11850   glUniform1uiv: TglUniform1uiv;
11851   glUniform2uiv: TglUniform2uiv;
11852   glUniform3uiv: TglUniform3uiv;
11853   glUniform4uiv: TglUniform4uiv;
11854   glTexParameterIiv: TglTexParameterIiv;
11855   glTexParameterIuiv: TglTexParameterIuiv;
11856   glGetTexParameterIiv: TglGetTexParameterIiv;
11857   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11858   glClearBufferiv: TglClearBufferiv;
11859   glClearBufferuiv: TglClearBufferuiv;
11860   glClearBufferfv: TglClearBufferfv;
11861   glClearBufferfi: TglClearBufferfi;
11862   glGetStringi: TglGetStringi;
11863
11864   // GL_VERSION_2_1
11865   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11866   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11867   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11868
11869   // GL_VERSION_3_1
11870   glDrawArraysInstanced: TglDrawArraysInstanced;
11871   glDrawElementsInstanced: TglDrawElementsInstanced;
11872   glTexBuffer: TglTexBuffer;
11873   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11874
11875   // GL_VERSION_3_2
11876   glGetInteger64i_v: TglGetInteger64i_v;
11877   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11878   glFramebufferTexture: TglFramebufferTexture;
11879
11880   // GL_VERSION_3_3
11881   glVertexAttribDivisor: TglVertexAttribDivisor;
11882
11883   // GL_VERSION_4_0
11884   { OpenGL 4.0 also reuses entry points from these extensions: }
11885   { ARB_texture_query_lod (no entry points) }
11886   { ARB_draw_indirect }
11887   { ARB_gpu_shader5 (no entry points) }
11888   { ARB_gpu_shader_fp64 }
11889   { ARB_shader_subroutine }
11890   { ARB_tessellation_shader }
11891   { ARB_texture_buffer_object_rgb32 (no entry points) }
11892   { ARB_texture_cube_map_array (no entry points) }
11893   { ARB_texture_gather (no entry points) }
11894   { ARB_transform_feedback2 }
11895   { ARB_transform_feedback3 }
11896   glMinSampleShading: TglMinSampleShading;
11897   glBlendEquationi: TglBlendEquationi;
11898   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11899   glBlendFunci: TglBlendFunci;
11900   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11901
11902   // GL_3DFX_tbuffer
11903   glTbufferMask3DFX: TglTbufferMask3DFX;
11904
11905   // GL_APPLE_element_array
11906   glElementPointerAPPLE: TglElementPointerAPPLE;
11907   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
11908   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
11909   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
11910   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
11911
11912   // GL_APPLE_fence
11913   glGenFencesAPPLE: TglGenFencesAPPLE;
11914   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
11915   glSetFenceAPPLE: TglSetFenceAPPLE;
11916   glIsFenceAPPLE: TglIsFenceAPPLE;
11917   glTestFenceAPPLE: TglTestFenceAPPLE;
11918   glFinishFenceAPPLE: TglFinishFenceAPPLE;
11919   glTestObjectAPPLE: TglTestObjectAPPLE;
11920   glFinishObjectAPPLE: TglFinishObjectAPPLE;
11921
11922   // GL_APPLE_vertex_array_object
11923   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
11924   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
11925   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
11926   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
11927
11928   // GL_APPLE_vertex_array_range
11929   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
11930   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
11931   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
11932
11933   // GL_APPLE_texture_range
11934   glTextureRangeAPPLE: TglTextureRangeAPPLE;
11935   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
11936
11937   // GL_APPLE_vertex_program_evaluators
11938   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
11939   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
11940   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
11941   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
11942   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
11943   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
11944   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
11945
11946   // GL_APPLE_object_purgeable
11947   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
11948   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
11949   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
11950
11951   // GL_ARB_matrix_palette
11952   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
11953   glMatrixIndexubvARB: TglMatrixIndexubvARB;
11954   glMatrixIndexusvARB: TglMatrixIndexusvARB;
11955   glMatrixIndexuivARB: TglMatrixIndexuivARB;
11956   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
11957
11958   // GL_ARB_multisample
11959   glSampleCoverageARB: TglSampleCoverageARB;
11960
11961   // GL_ARB_multitexture
11962   glActiveTextureARB: TglActiveTextureARB;
11963   glClientActiveTextureARB: TglClientActiveTextureARB;
11964   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
11965   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
11966   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
11967   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
11968   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
11969   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
11970   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
11971   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
11972   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
11973   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
11974   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
11975   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
11976   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
11977   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
11978   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
11979   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
11980   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
11981   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
11982   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
11983   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
11984   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
11985   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
11986   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
11987   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
11988   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
11989   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
11990   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
11991   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
11992   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
11993   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
11994   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
11995   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
11996
11997   // GL_ARB_point_parameters
11998   glPointParameterfARB: TglPointParameterfARB;
11999   glPointParameterfvARB: TglPointParameterfvARB;
12000
12001   // GL_ARB_texture_compression
12002   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
12003   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
12004   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
12005   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
12006   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
12007   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
12008   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
12009
12010   // GL_ARB_transpose_matrix
12011   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12012   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12013   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12014   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12015
12016   // GL_ARB_vertex_blend
12017   glWeightbvARB: TglWeightbvARB;
12018   glWeightsvARB: TglWeightsvARB;
12019   glWeightivARB: TglWeightivARB;
12020   glWeightfvARB: TglWeightfvARB;
12021   glWeightdvARB: TglWeightdvARB;
12022   glWeightubvARB: TglWeightubvARB;
12023   glWeightusvARB: TglWeightusvARB;
12024   glWeightuivARB: TglWeightuivARB;
12025   glWeightPointerARB: TglWeightPointerARB;
12026   glVertexBlendARB: TglVertexBlendARB;
12027
12028   // GL_ARB_vertex_buffer_object
12029   glBindBufferARB: TglBindBufferARB;
12030   glDeleteBuffersARB: TglDeleteBuffersARB;
12031   glGenBuffersARB: TglGenBuffersARB;
12032   glIsBufferARB: TglIsBufferARB;
12033   glBufferDataARB: TglBufferDataARB;
12034   glBufferSubDataARB: TglBufferSubData;
12035   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12036   glMapBufferARB: TglMapBufferARB;
12037   glUnmapBufferARB: TglUnmapBufferARB;
12038   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12039   glGetBufferPointervARB: TglGetBufferPointervARB;
12040
12041   // GL_ARB_vertex_program
12042   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12043   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12044   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12045   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12046   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12047   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12048   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12049   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12050   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12051   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12052   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12053   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12054   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12055   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12056   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12057   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12058   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12059   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12060   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12061   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12062   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12063   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12064   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12065   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12066   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12067   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12068   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12069   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12070   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12071   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12072   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12073   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12074   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12075   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12076   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12077   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12078   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12079   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12080   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12081   glProgramStringARB: TglProgramStringARB;
12082   glBindProgramARB: TglBindProgramARB;
12083   glDeleteProgramsARB: TglDeleteProgramsARB;
12084   glGenProgramsARB: TglGenProgramsARB;
12085
12086   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12087   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12088   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12089   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12090   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12091   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12092   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12093   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12094   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12095   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12096   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12097   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12098   glGetProgramivARB: TglGetProgramivARB;
12099   glGetProgramStringARB: TglGetProgramStringARB;
12100   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12101   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12102   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12103   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12104   glIsProgramARB: TglIsProgramARB;
12105
12106   // GL_ARB_window_pos
12107   glWindowPos2dARB: TglWindowPos2dARB;
12108   glWindowPos2dvARB: TglWindowPos2dvARB;
12109   glWindowPos2fARB: TglWindowPos2fARB;
12110   glWindowPos2fvARB: TglWindowPos2fvARB;
12111   glWindowPos2iARB: TglWindowPos2iARB;
12112   glWindowPos2ivARB: TglWindowPos2ivARB;
12113   glWindowPos2sARB: TglWindowPos2sARB;
12114   glWindowPos2svARB: TglWindowPos2svARB;
12115   glWindowPos3dARB: TglWindowPos3dARB;
12116   glWindowPos3dvARB: TglWindowPos3dvARB;
12117   glWindowPos3fARB: TglWindowPos3fARB;
12118   glWindowPos3fvARB: TglWindowPos3fvARB;
12119   glWindowPos3iARB: TglWindowPos3iARB;
12120   glWindowPos3ivARB: TglWindowPos3ivARB;
12121   glWindowPos3sARB: TglWindowPos3sARB;
12122   glWindowPos3svARB: TglWindowPos3svARB;
12123
12124   // GL_ARB_draw_buffers
12125   glDrawBuffersARB: TglDrawBuffersARB;
12126
12127   // GL_ARB_color_buffer_float
12128   glClampColorARB: TglClampColorARB;
12129
12130   // GL_ARB_vertex_shader
12131   glGetActiveAttribARB: TglGetActiveAttribARB;
12132   glGetAttribLocationARB: TglGetAttribLocationARB;
12133   glBindAttribLocationARB: TglBindAttribLocationARB;
12134
12135   // GL_ARB_shader_objects
12136   glDeleteObjectARB: TglDeleteObjectARB;
12137   glGetHandleARB: TglGetHandleARB;
12138   glDetachObjectARB: TglDetachObjectARB;
12139   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12140   glShaderSourceARB: TglShaderSourceARB;
12141   glCompileShaderARB: TglCompileShaderARB;
12142   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12143   glAttachObjectARB: TglAttachObjectARB;
12144   glLinkProgramARB: TglLinkProgramARB;
12145   glUseProgramObjectARB: TglUseProgramObjectARB;
12146   glValidateProgramARB: TglValidateProgramARB;
12147   glUniform1fARB: TglUniform1fARB;
12148   glUniform2fARB: TglUniform2fARB;
12149   glUniform3fARB: TglUniform3fARB;
12150   glUniform4fARB: TglUniform4fARB;
12151   glUniform1iARB: TglUniform1iARB;
12152   glUniform2iARB: TglUniform2iARB;
12153   glUniform3iARB: TglUniform3iARB;
12154   glUniform4iARB: TglUniform4iARB;
12155   glUniform1fvARB: TglUniform1fvARB;
12156   glUniform2fvARB: TglUniform2fvARB;
12157   glUniform3fvARB: TglUniform3fvARB;
12158   glUniform4fvARB: TglUniform4fvARB;
12159   glUniform1ivARB: TglUniform1ivARB;
12160   glUniform2ivARB: TglUniform2ivARB;
12161   glUniform3ivARB: TglUniform3ivARB;
12162   glUniform4ivARB: TglUniform4ivARB;
12163   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12164   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12165   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12166   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12167   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12168   glGetInfoLogARB: TglGetInfoLogARB;
12169   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12170   glGetUniformLocationARB: TglGetUniformLocationARB;
12171   glGetActiveUniformARB: TglGetActiveUniformARB;
12172   glGetUniformfvARB: TglGetUniformfvARB;
12173   glGetUniformivARB: TglGetUniformivARB;
12174   glGetShaderSourceARB: TglGetShaderSourceARB;
12175
12176   // GL_ARB_Occlusion_Query
12177   glGenQueriesARB: TglGenQueriesARB;
12178   glDeleteQueriesARB: TglDeleteQueriesARB;
12179   glIsQueryARB: TglIsQueryARB;
12180   glBeginQueryARB: TglBeginQueryARB;
12181   glEndQueryARB: TglEndQueryARB;
12182   glGetQueryivARB: TglGetQueryivARB;
12183   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12184   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12185
12186   // GL_ARB_draw_instanced
12187   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12188   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12189
12190   // GL_ARB_framebuffer_object
12191   glIsRenderbuffer: TglIsRenderbuffer;
12192   glBindRenderbuffer: TglBindRenderbuffer;
12193   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12194   glGenRenderbuffers: TglGenRenderbuffers;
12195   glRenderbufferStorage: TglRenderbufferStorage;
12196   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12197   glIsFramebuffer: TglIsFramebuffer;
12198   glBindFramebuffer: TglBindFramebuffer;
12199   glDeleteFramebuffers: TglDeleteFramebuffers;
12200   glGenFramebuffers: TglGenFramebuffers;
12201   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12202   glFramebufferTexture1D: TglFramebufferTexture1D;
12203   glFramebufferTexture2D: TglFramebufferTexture2D;
12204   glFramebufferTexture3D: TglFramebufferTexture3D;
12205   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12206   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12207   glGenerateMipmap: TglGenerateMipmap;
12208   glBlitFramebuffer: TglBlitFramebuffer;
12209   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12210   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12211
12212   // GL_ARB_geometry_shader4
12213   glProgramParameteriARB: TglProgramParameteriARB;
12214   glFramebufferTextureARB: TglFramebufferTextureARB;
12215   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12216   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12217
12218   // GL_ARB_instanced_arrays
12219   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12220
12221   // GL_ARB_map_buffer_range
12222   glMapBufferRange: TglMapBufferRange;
12223   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12224
12225   // GL_ARB_texture_buffer_object
12226   glTexBufferARB: TglTexBufferARB;
12227
12228   // GL_ARB_vertex_array_object
12229   glBindVertexArray: TglBindVertexArray;
12230   glDeleteVertexArrays: TglDeleteVertexArrays;
12231   glGenVertexArrays: TglGenVertexArrays;
12232   glIsVertexArray: TglIsVertexArray;
12233
12234   // GL_ARB_uniform_buffer_object
12235   glGetUniformIndices: TglGetUniformIndices;
12236   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12237   glGetActiveUniformName: TglGetActiveUniformName;
12238   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12239   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12240   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12241   glUniformBlockBinding: TglUniformBlockBinding;
12242
12243   // GL_ARB_copy_buffer
12244   glCopyBufferSubData: TglCopyBufferSubData;
12245
12246   // GL_ARB_draw_elements_base_vertex
12247   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12248   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12249   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12250   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12251
12252   // GL_ARB_provoking_vertex
12253   glProvokingVertex: TglProvokingVertex;
12254
12255   // GL_ARB_sync
12256   glFenceSync: TglFenceSync;
12257   glIsSync: TglIsSync;
12258   glDeleteSync: TglDeleteSync;
12259   glClientWaitSync: TglClientWaitSync;
12260   glWaitSync: TglWaitSync;
12261   glGetInteger64v: TglGetInteger64v;
12262   glGetSynciv: TglGetSynciv;
12263
12264   // GL_ARB_texture_multisample
12265   glTexImage2DMultisample: TglTexImage2DMultisample;
12266   glTexImage3DMultisample: TglTexImage3DMultisample;
12267   glGetMultisamplefv: TglGetMultisamplefv;
12268   glSampleMaski: TglSampleMaski;
12269
12270   // GL_ARB_draw_buffers_blend
12271   glBlendEquationiARB: TglBlendEquationiARB;
12272   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12273   glBlendFunciARB: TglBlendFunciARB;
12274   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12275
12276   // GL_ARB_sample_shading
12277   glMinSampleShadingARB: TglMinSampleShadingARB;
12278
12279   // GL_ARB_shading_language_include
12280   glNamedStringARB: TglNamedStringARB;
12281   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12282   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12283   glIsNamedStringARB: TglIsNamedStringARB;
12284   glGetNamedStringARB: TglGetNamedStringARB;
12285   glGetNamedStringivARB: TglGetNamedStringivARB;
12286
12287   // GL_ARB_blend_func_extended
12288   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12289   glGetFragDataIndex: TglGetFragDataIndex;
12290
12291   // GL_ARB_sampler_objects
12292   glGenSamplers: TglGenSamplers;
12293   glDeleteSamplers: TglDeleteSamplers;
12294   glIsSampler: TglIsSampler;
12295   glBindSampler: TglBindSampler;
12296   glSamplerParameteri: TglSamplerParameteri;
12297   glSamplerParameteriv: TglSamplerParameteriv;
12298   glSamplerParameterf: TglSamplerParameterf;
12299   glSamplerParameterfv: TglSamplerParameterfv;
12300   glSamplerParameterIiv: TglSamplerParameterIiv;
12301   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12302   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12303   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12304   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12305   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12306
12307   // GL_ARB_timer_query
12308   glQueryCounter: TglQueryCounter;
12309   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12310   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12311
12312   // GL_ARB_vertex_type_2_10_10_10_rev
12313   glVertexP2ui: TglVertexP2ui;
12314   glVertexP2uiv: TglVertexP2uiv;
12315   glVertexP3ui: TglVertexP3ui;
12316   glVertexP3uiv: TglVertexP3uiv;
12317   glVertexP4ui: TglVertexP4ui;
12318   glVertexP4uiv: TglVertexP4uiv;
12319   glTexCoordP1ui: TglTexCoordP1ui;
12320   glTexCoordP1uiv: TglTexCoordP1uiv;
12321   glTexCoordP2ui: TglTexCoordP2ui;
12322   glTexCoordP2uiv: TglTexCoordP2uiv;
12323   glTexCoordP3ui: TglTexCoordP3ui;
12324   glTexCoordP3uiv: TglTexCoordP3uiv;
12325   glTexCoordP4ui: TglTexCoordP4ui;
12326   glTexCoordP4uiv: TglTexCoordP4uiv;
12327   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12328   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12329   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12330   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12331   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12332   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12333   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12334   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12335   glNormalP3ui: TglNormalP3ui;
12336   glNormalP3uiv: TglNormalP3uiv;
12337   glColorP3ui: TglColorP3ui;
12338   glColorP3uiv: TglColorP3uiv;
12339   glColorP4ui: TglColorP4ui;
12340   glColorP4uiv: TglColorP4uiv;
12341   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12342   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12343   glVertexAttribP1ui: TglVertexAttribP1ui;
12344   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12345   glVertexAttribP2ui: TglVertexAttribP2ui;
12346   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12347   glVertexAttribP3ui: TglVertexAttribP3ui;
12348   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12349   glVertexAttribP4ui: TglVertexAttribP4ui;
12350   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12351
12352   // GL_ARB_draw_indirect
12353   glDrawArraysIndirect: TglDrawArraysIndirect;
12354   glDrawElementsIndirect: TglDrawElementsIndirect;
12355
12356   // GL_ARB_gpu_shader_fp64
12357   glUniform1d: TglUniform1d;
12358   glUniform2d: TglUniform2d;
12359   glUniform3d: TglUniform3d;
12360   glUniform4d: TglUniform4d;
12361   glUniform1dv: TglUniform1dv;
12362   glUniform2dv: TglUniform2dv;
12363   glUniform3dv: TglUniform3dv;
12364   glUniform4dv: TglUniform4dv;
12365   glUniformMatrix2dv: TglUniformMatrix2dv;
12366   glUniformMatrix3dv: TglUniformMatrix3dv;
12367   glUniformMatrix4dv: TglUniformMatrix4dv;
12368   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12369   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12370   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12371   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12372   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12373   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12374   glGetUniformdv: TglGetUniformdv;
12375
12376   // GL_ARB_shader_subroutine
12377   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12378   glGetSubroutineIndex: TglGetSubroutineIndex;
12379   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12380   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12381   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12382   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12383   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12384   glGetProgramStageiv: TglGetProgramStageiv;
12385
12386   // GL_ARB_tessellation_shader
12387   glPatchParameteri: TglPatchParameteri;
12388   glPatchParameterfv: TglPatchParameterfv;
12389
12390   // GL_ARB_transform_feedback2
12391   glBindTransformFeedback: TglBindTransformFeedback;
12392   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12393   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12394   glIsTransformFeedback: TglIsTransformFeedback;
12395   glPauseTransformFeedback: TglPauseTransformFeedback;
12396   glResumeTransformFeedback: TglResumeTransformFeedback;
12397   glDrawTransformFeedback: TglDrawTransformFeedback;
12398
12399   // GL_ARB_transform_feedback3
12400   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12401   glBeginQueryIndexed: TglBeginQueryIndexed;
12402   glEndQueryIndexed: TglEndQueryIndexed;
12403   glGetQueryIndexediv: TglGetQueryIndexediv;
12404
12405   // GL_ARB_ES2_compatibility
12406   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12407   glShaderBinary: TglShaderBinary;
12408   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12409   glDepthRangef: TglDepthRangef;
12410   glClearDepthf: TglClearDepthf;
12411
12412   // GL_ARB_get_program_binary
12413   glGetProgramBinary: TglGetProgramBinary;
12414   glProgramBinary: TglProgramBinary;
12415   glProgramParameteri: TglProgramParameteri;
12416
12417   // GL_ARB_separate_shader_objects
12418   glUseProgramStages: TglUseProgramStages;
12419   glActiveShaderProgram: TglActiveShaderProgram;
12420   glCreateShaderProgramv: TglCreateShaderProgramv;
12421   glBindProgramPipeline: TglBindProgramPipeline;
12422   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12423   glGenProgramPipelines: TglGenProgramPipelines;
12424   glIsProgramPipeline: TglIsProgramPipeline;
12425   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12426   glProgramUniform1i: TglProgramUniform1i;
12427   glProgramUniform1iv: TglProgramUniform1iv;
12428   glProgramUniform1f: TglProgramUniform1f;
12429   glProgramUniform1fv: TglProgramUniform1fv;
12430   glProgramUniform1d: TglProgramUniform1d;
12431   glProgramUniform1dv: TglProgramUniform1dv;
12432   glProgramUniform1ui: TglProgramUniform1ui;
12433   glProgramUniform1uiv: TglProgramUniform1uiv;
12434   glProgramUniform2i: TglProgramUniform2i;
12435   glProgramUniform2iv: TglProgramUniform2iv;
12436   glProgramUniform2f: TglProgramUniform2f;
12437   glProgramUniform2fv: TglProgramUniform2fv;
12438   glProgramUniform2d: TglProgramUniform2d;
12439   glProgramUniform2dv: TglProgramUniform2dv;
12440   glProgramUniform2ui: TglProgramUniform2ui;
12441   glProgramUniform2uiv: TglProgramUniform2uiv;
12442   glProgramUniform3i: TglProgramUniform3i;
12443   glProgramUniform3iv: TglProgramUniform3iv;
12444   glProgramUniform3f: TglProgramUniform3f;
12445   glProgramUniform3fv: TglProgramUniform3fv;
12446   glProgramUniform3d: TglProgramUniform3d;
12447   glProgramUniform3dv: TglProgramUniform3dv;
12448   glProgramUniform3ui: TglProgramUniform3ui;
12449   glProgramUniform3uiv: TglProgramUniform3uiv;
12450   glProgramUniform4i: TglProgramUniform4i;
12451   glProgramUniform4iv: TglProgramUniform4iv;
12452   glProgramUniform4f: TglProgramUniform4f;
12453   glProgramUniform4fv: TglProgramUniform4fv;
12454   glProgramUniform4d: TglProgramUniform4d;
12455   glProgramUniform4dv: TglProgramUniform4dv;
12456   glProgramUniform4ui: TglProgramUniform4ui;
12457   glProgramUniform4uiv: TglProgramUniform4uiv;
12458   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12459   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12460   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12461   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12462   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12463   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12464   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12465   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12466   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12467   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12468   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12469   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12470   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12471   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12472   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12473   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12474   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12475   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12476   glValidateProgramPipeline: TglValidateProgramPipeline;
12477   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12478
12479   // GL_ARB_vertex_attrib_64bit
12480   glVertexAttribL1d: TglVertexAttribL1d;
12481   glVertexAttribL2d: TglVertexAttribL2d;
12482   glVertexAttribL3d: TglVertexAttribL3d;
12483   glVertexAttribL4d: TglVertexAttribL4d;
12484   glVertexAttribL1dv: TglVertexAttribL1dv;
12485   glVertexAttribL2dv: TglVertexAttribL2dv;
12486   glVertexAttribL3dv: TglVertexAttribL3dv;
12487   glVertexAttribL4dv: TglVertexAttribL4dv;
12488   glVertexAttribLPointer: TglVertexAttribLPointer;
12489   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12490
12491   // GL_ARB_viewport_array
12492   glViewportArrayv: TglViewportArrayv;
12493   glViewportIndexedf: TglViewportIndexedf;
12494   glViewportIndexedfv: TglViewportIndexedfv;
12495   glScissorArrayv: TglScissorArrayv;
12496   glScissorIndexed: TglScissorIndexed;
12497   glScissorIndexedv: TglScissorIndexedv;
12498   glDepthRangeArrayv: TglDepthRangeArrayv;
12499   glDepthRangeIndexed: TglDepthRangeIndexed;
12500   glGetFloati_v: TglGetFloati_v;
12501   glGetDoublei_v: TglGetDoublei_v;
12502
12503   // GL 4.2
12504
12505   // GL_ARB_base_instance
12506   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12507   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12508   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12509
12510   // GL_ARB_transform_feedback_instanced
12511   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12512   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12513
12514   // GL_ARB_internalformat_query
12515   glGetInternalformativ : TglGetInternalformativ;
12516
12517   // GL_ARB_shader_atomic_counters
12518   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12519
12520   /// GL_ARB_shader_image_load_store
12521   glBindImageTexture : TglBindImageTexture;
12522   glMemoryBarrier : TglMemoryBarrier;
12523
12524   // GL_ARB_texture_storage
12525   glTexStorage1D : TglTexStorage1D;
12526   glTexStorage2D : TglTexStorage2D;
12527   glTexStorage3D : TglTexStorage3D;
12528   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12529   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12530   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12531
12532
12533   // GL 4.3
12534     // GL_KHR_debug
12535     glDebugMessageControl : TglDebugMessageControl;
12536     glDebugMessageInsert : TglDebugMessageInsert;
12537     glDebugMessageCallback : TglDebugMessageCallback;
12538     glGetDebugMessageLog : TglGetDebugMessageLog;
12539     glPushDebugGroup : TglPushDebugGroup;
12540     glPopDebugGroup : TglPopDebugGroup;
12541     glObjectLabel : TglObjectLabel;
12542     glGetObjectLabel : TglGetObjectLabel;
12543     glObjectPtrLabel : TglObjectPtrLabel;
12544     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12545     // GL_ARB_clear_buffer_object
12546     glClearBufferData : TglClearBufferData;
12547     glClearBufferSubData : TglClearBufferSubData;
12548     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12549     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12550     // GL_ARB_compute_shader
12551     glDispatchCompute : TglDispatchCompute;
12552     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12553     // GL_ARB_copy_image
12554     glCopyImageSubData : TglCopyImageSubData;
12555     // GL_ARB_framebuffer_no_attachments
12556     glFramebufferParameteri : TglFramebufferParameteri;
12557     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12558     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12559     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12560     // GL_ARB_internalformat_query2
12561     glGetInternalformati64v : TglGetInternalformati64v;
12562     // GL_ARB_invalidate_subdata
12563     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12564     glInvalidateTexImage : TglInvalidateTexImage;
12565     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12566     glInvalidateBufferData : TglInvalidateBufferData;
12567     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12568     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12569     // GL_ARB_multi_draw_indirect
12570     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12571     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12572     // GL_ARB_program_interface_query
12573     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12574     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12575     glGetProgramResourceName : TglGetProgramResourceName;
12576     glGetProgramResourceiv : TglGetProgramResourceiv;
12577     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12578     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12579     // GL_ARB_shader_storage_buffer_object
12580     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12581     // GL_ARB_texture_buffer_range
12582     glTexBufferRange : TglTexBufferRange;
12583     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12584     // GL_ARB_texture_storage_multisample
12585     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12586     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12587     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12588     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12589     // GL_ARB_texture_view
12590     glTextureView : TglTextureView;
12591     // GL_ARB_vertex_attrib_binding
12592     glBindVertexBuffer : TglBindVertexBuffer;
12593     glVertexAttribFormat : TglVertexAttribFormat;
12594     glVertexAttribIFormat : TglVertexAttribIFormat;
12595     glVertexAttribLFormat : TglVertexAttribLFormat;
12596     glVertexAttribBinding : TglVertexAttribBinding;
12597     glVertexBindingDivisor : TglVertexBindingDivisor;
12598     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12599     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12600     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12601     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12602     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12603     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12604   // END GL 4.3
12605
12606
12607   // GL 4.4
12608     glBufferStorage : TglBufferStorage;
12609     glClearTexImage : TglClearTexImage;
12610     glClearTexSubImage : TglClearTexSubImage;
12611     glBindBuffersBase : TglBindBuffersBase;
12612     glBindBuffersRange : TglBindBuffersRange;
12613     glBindTextures : TglBindTextures;
12614     glBindSamplers : TglBindSamplers;
12615     glBindImageTextures : TglBindImageTextures;
12616     glBindVertexBuffers : TglBindVertexBuffers;
12617     glTexPageCommitmentARB : TglTexPageCommitmentARB;
12618
12619   // GL 4.5
12620   glClipControl : TglClipControl;
12621   glCreateTransformFeedbacks : TglCreateTransformFeedbacks;
12622   glTransformFeedbackBufferBase : TglTransformFeedbackBufferBase;
12623   glTransformFeedbackBufferRange : TglTransformFeedbackBufferRange;
12624   glGetTransformFeedbackiv : TglGetTransformFeedbackiv;
12625   glGetTransformFeedbacki_v : TglGetTransformFeedbacki_v;
12626   glGetTransformFeedbacki64_v : TglGetTransformFeedbacki64_v;
12627   glCreateBuffers : TglCreateBuffers;
12628   glNamedBufferStorage : TglNamedBufferStorage;
12629   glNamedBufferData : TglNamedBufferData;
12630   glNamedBufferSubData : TglNamedBufferSubData;
12631   glCopyNamedBufferSubData : TglCopyNamedBufferSubData;
12632   glClearNamedBufferData : TglClearNamedBufferData;
12633   glClearNamedBufferSubData : TglClearNamedBufferSubData;
12634   glMapNamedBuffer : TglMapNamedBuffer;
12635   glMapNamedBufferRange : TglMapNamedBufferRange;
12636   glUnmapNamedBuffer : TglUnmapNamedBuffer;
12637   glFlushMappedNamedBufferRange : TglFlushMappedNamedBufferRange;
12638   glGetNamedBufferParameteriv : TglGetNamedBufferParameteriv;
12639   glGetNamedBufferParameteri64v : TglGetNamedBufferParameteri64v;
12640   glGetNamedBufferPointerv : TglGetNamedBufferPointerv;
12641   glGetNamedBufferSubData : TglGetNamedBufferSubData;
12642   glCreateFramebuffers : TglCreateFramebuffers;
12643   glNamedFramebufferRenderbuffer : TglNamedFramebufferRenderbuffer;
12644   glNamedFramebufferParameteri : TglNamedFramebufferParameteri;
12645   glNamedFramebufferTexture : TglNamedFramebufferTexture;
12646   glNamedFramebufferTextureLayer : TglNamedFramebufferTextureLayer;
12647   glNamedFramebufferDrawBuffer : TglNamedFramebufferDrawBuffer;
12648   glNamedFramebufferDrawBuffers : TglNamedFramebufferDrawBuffers;
12649   glNamedFramebufferReadBuffer : TglNamedFramebufferReadBuffer;
12650   glInvalidateNamedFramebufferData : TglInvalidateNamedFramebufferData;
12651   glInvalidateNamedFramebufferSubData : TglInvalidateNamedFramebufferSubData;
12652   glClearNamedFramebufferiv : TglClearNamedFramebufferiv;
12653   glClearNamedFramebufferuiv : TglClearNamedFramebufferuiv;
12654   glClearNamedFramebufferfv : TglClearNamedFramebufferfv;
12655   glClearNamedFramebufferfi : TglClearNamedFramebufferfi;
12656   glBlitNamedFramebuffer : TglBlitNamedFramebuffer;
12657   glCheckNamedFramebufferStatus : TglCheckNamedFramebufferStatus;
12658   glGetNamedFramebufferParameteriv : TglGetNamedFramebufferParameteriv;
12659   glGetNamedFramebufferAttachmentParameteriv : TglGetNamedFramebufferAttachmentParameteriv;
12660   glCreateRenderbuffers : TglCreateRenderbuffers;
12661   glNamedRenderbufferStorage : TglNamedRenderbufferStorage;
12662   glNamedRenderbufferStorageMultisample : TglNamedRenderbufferStorageMultisample;
12663   glGetNamedRenderbufferParameteriv : TglGetNamedRenderbufferParameteriv;
12664   glCreateTextures : TglCreateTextures;
12665   glTextureBuffer : TglTextureBuffer;
12666   glTextureBufferRange : TglTextureBufferRange;
12667   glTextureStorage1D : TglTextureStorage1D;
12668   glTextureStorage2D : TglTextureStorage2D;
12669   glTextureStorage3D : TglTextureStorage3D;
12670   glTextureStorage2DMultisample : TglTextureStorage2DMultisample;
12671   glTextureStorage3DMultisample : TglTextureStorage3DMultisample;
12672   glTextureSubImage1D : TglTextureSubImage1D;
12673   glTextureSubImage2D : TglTextureSubImage2D;
12674   glTextureSubImage3D : TglTextureSubImage3D;
12675   glCompressedTextureSubImage1D : TglCompressedTextureSubImage1D;
12676   glCompressedTextureSubImage2D : TglCompressedTextureSubImage2D;
12677   glCompressedTextureSubImage3D : TglCompressedTextureSubImage3D;
12678   glCopyTextureSubImage1D : TglCopyTextureSubImage1D;
12679   glCopyTextureSubImage2D : TglCopyTextureSubImage2D;
12680   glCopyTextureSubImage3D : TglCopyTextureSubImage3D;
12681   glTextureParameterf : TglTextureParameterf;
12682   glTextureParameterfv : TglTextureParameterfv;
12683   glTextureParameteri : TglTextureParameteri;
12684   glTextureParameterIiv : TglTextureParameterIiv;
12685   glTextureParameterIuiv : TglTextureParameterIuiv;
12686   glTextureParameteriv : TglTextureParameteriv;
12687   glGenerateTextureMipmap : TglGenerateTextureMipmap;
12688   glBindTextureUnit : TglBindTextureUnit;
12689   glGetTextureImage : TglGetTextureImage;
12690   glGetCompressedTextureImage : TglGetCompressedTextureImage;
12691   glGetTextureLevelParameterfv : TglGetTextureLevelParameterfv;
12692   glGetTextureLevelParameteriv : TglGetTextureLevelParameteriv;
12693   glGetTextureParameterfv : TglGetTextureParameterfv;
12694   glGetTextureParameterIiv : TglGetTextureParameterIiv;
12695   glGetTextureParameterIuiv : TglGetTextureParameterIuiv;
12696   glGetTextureParameteriv : TglGetTextureParameteriv;
12697   glCreateVertexArrays : TglCreateVertexArrays;
12698   glDisableVertexArrayAttrib : TglDisableVertexArrayAttrib;
12699   glEnableVertexArrayAttrib : TglEnableVertexArrayAttrib;
12700   glVertexArrayElementBuffer : TglVertexArrayElementBuffer;
12701   glVertexArrayVertexBuffer : TglVertexArrayVertexBuffer;
12702   glVertexArrayVertexBuffers : TglVertexArrayVertexBuffers;
12703   glVertexArrayAttribBinding : TglVertexArrayAttribBinding;
12704   glVertexArrayAttribFormat : TglVertexArrayAttribFormat;
12705   glVertexArrayAttribIFormat : TglVertexArrayAttribIFormat;
12706   glVertexArrayAttribLFormat : TglVertexArrayAttribLFormat;
12707   glVertexArrayBindingDivisor : TglVertexArrayBindingDivisor;
12708   glGetVertexArrayiv : TglGetVertexArrayiv;
12709   glGetVertexArrayIndexediv : TglGetVertexArrayIndexediv;
12710   glGetVertexArrayIndexed64iv : TglGetVertexArrayIndexed64iv;
12711   glCreateSamplers : TglCreateSamplers;
12712   glCreateProgramPipelines : TglCreateProgramPipelines;
12713   glCreateQueries : TglCreateQueries;
12714   glMemoryBarrierByRegion : TglMemoryBarrierByRegion;
12715   glGetTextureSubImage : TglGetTextureSubImage;
12716   glGetCompressedTextureSubImage : TglGetCompressedTextureSubImage;
12717   glGetGraphicsResetStatus : TglGetGraphicsResetStatus;
12718   glGetnCompressedTexImage : TglGetnCompressedTexImage;
12719   glGetnTexImage : TglGetnTexImage;
12720   glGetnUniformdv : TglGetnUniformdv;
12721   glGetnUniformfv : TglGetnUniformfv;
12722   glGetnUniformiv : TglGetnUniformiv;
12723   glGetnUniformuiv : TglGetnUniformuiv;
12724   glReadnPixels : TglReadnPixels;
12725   glGetnMapdv : TglGetnMapdv;
12726   glGetnMapfv : TglGetnMapfv;
12727   glGetnMapiv : TglGetnMapiv;
12728   glGetnPixelMapfv : TglGetnPixelMapfv;
12729   glGetnPixelMapuiv : TglGetnPixelMapuiv;
12730   glGetnPixelMapusv : TglGetnPixelMapusv;
12731   glGetnPolygonStipple : TglGetnPolygonStipple;
12732   glGetnColorTable : TglGetnColorTable;
12733   glGetnConvolutionFilter : TglGetnConvolutionFilter;
12734   glGetnSeparableFilter : TglGetnSeparableFilter;
12735   glGetnHistogram : TglGetnHistogram;
12736   glGetnMinmax : TglGetnMinmax;
12737   glTextureBarrier : TglTextureBarrier;
12738
12739   // GL_ARB_sparse_buffer
12740   glBufferPageCommitmentARB : TglBufferPageCommitmentARB;
12741   glNamedBufferPageCommitmentEXT : TglNamedBufferPageCommitmentEXT;
12742   glNamedBufferPageCommitmentARB : TglNamedBufferPageCommitmentARB;
12743
12744   // GL_KHR_blend_equation_advanced
12745   glBlendBarrierKHR : TglBlendBarrierKHR;
12746
12747   // GL_ARB_cl_event
12748   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12749
12750   // GL_ARB_debug_output
12751   glDebugMessageControlARB: TglDebugMessageControlARB;
12752   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12753   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12754   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12755
12756   // GL_ARB_compute_variable_group_size
12757   glDispatchComputeGroupSizeARB : TglDispatchComputeGroupSizeARB;
12758
12759   // GL_ARB_robustness
12760   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12761   glGetnMapdvARB: TglGetnMapdvARB;
12762   glGetnMapfvARB: TglGetnMapfvARB;
12763   glGetnMapivARB: TglGetnMapivARB;
12764   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12765   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12766   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12767   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12768   glGetnColorTableARB: TglGetnColorTableARB;
12769   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12770   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12771   glGetnHistogramARB: TglGetnHistogramARB;
12772   glGetnMinmaxARB: TglGetnMinmaxARB;
12773   glGetnTexImageARB: TglGetnTexImageARB;
12774   glReadnPixelsARB: TglReadnPixelsARB;
12775   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12776   glGetnUniformfvARB: TglGetnUniformfvARB;
12777   glGetnUniformivARB: TglGetnUniformivARB;
12778   glGetnUniformuivARB: TglGetnUniformuivARB;
12779   glGetnUniformdvARB: TglGetnUniformdvARB;
12780
12781   // GL_ATI_draw_buffers
12782   glDrawBuffersATI: TglDrawBuffersATI;
12783
12784   // GL_ATI_element_array
12785   glElementPointerATI: TglElementPointerATI;
12786   glDrawElementArrayATI: TglDrawElementArrayATI;
12787   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12788
12789   // GL_ATI_envmap_bumpmap
12790   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12791   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12792   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12793   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12794
12795   // GL_ATI_fragment_shader
12796   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12797   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12798   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12799   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12800   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12801   glPassTexCoordATI: TglPassTexCoordATI;
12802   glSampleMapATI: TglSampleMapATI;
12803   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12804   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12805   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12806   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12807   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12808   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12809   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12810
12811   // GL_ATI_map_object_buffer
12812   glMapObjectBufferATI: TglMapObjectBufferATI;
12813   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12814
12815   // GL_ATI_pn_triangles
12816   glPNTrianglesiATI: TglPNTrianglesiATI;
12817   glPNTrianglesfATI: TglPNTrianglesfATI;
12818
12819   // GL_ATI_separate_stencil
12820   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12821   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12822
12823   // GL_ATI_vertex_array_object
12824   glNewObjectBufferATI: TglNewObjectBufferATI;
12825   glIsObjectBufferATI: TglIsObjectBufferATI;
12826   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12827   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12828   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12829   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12830   glArrayObjectATI: TglArrayObjectATI;
12831   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12832   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12833   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12834   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12835   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12836   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12837   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12838   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12839
12840   // GL_ATI_vertex_streams
12841   glVertexStream1sATI: TglVertexStream1sATI;
12842   glVertexStream1svATI: TglVertexStream1svATI;
12843   glVertexStream1iATI: TglVertexStream1iATI;
12844   glVertexStream1ivATI: TglVertexStream1ivATI;
12845   glVertexStream1fATI: TglVertexStream1fATI;
12846   glVertexStream1fvATI: TglVertexStream1fvATI;
12847   glVertexStream1dATI: TglVertexStream1dATI;
12848   glVertexStream1dvATI: TglVertexStream1dvATI;
12849   glVertexStream2sATI: TglVertexStream2sATI;
12850   glVertexStream2svATI: TglVertexStream2svATI;
12851   glVertexStream2iATI: TglVertexStream2iATI;
12852   glVertexStream2ivATI: TglVertexStream2ivATI;
12853   glVertexStream2fATI: TglVertexStream2fATI;
12854   glVertexStream2fvATI: TglVertexStream2fvATI;
12855   glVertexStream2dATI: TglVertexStream2dATI;
12856   glVertexStream2dvATI: TglVertexStream2dvATI;
12857   glVertexStream3sATI: TglVertexStream3sATI;
12858   glVertexStream3svATI: TglVertexStream3svATI;
12859   glVertexStream3iATI: TglVertexStream3iATI;
12860   glVertexStream3ivATI: TglVertexStream3ivATI;
12861   glVertexStream3fATI: TglVertexStream3fATI;
12862   glVertexStream3fvATI: TglVertexStream3fvATI;
12863   glVertexStream3dATI: TglVertexStream3dATI;
12864   glVertexStream3dvATI: TglVertexStream3dvATI;
12865   glVertexStream4sATI: TglVertexStream4sATI;
12866   glVertexStream4svATI: TglVertexStream4svATI;
12867   glVertexStream4iATI: TglVertexStream4iATI;
12868   glVertexStream4ivATI: TglVertexStream4ivATI;
12869   glVertexStream4fATI: TglVertexStream4fATI;
12870   glVertexStream4fvATI: TglVertexStream4fvATI;
12871   glVertexStream4dATI: TglVertexStream4dATI;
12872   glVertexStream4dvATI: TglVertexStream4dvATI;
12873   glNormalStream3bATI: TglNormalStream3bATI;
12874   glNormalStream3bvATI: TglNormalStream3bvATI;
12875   glNormalStream3sATI: TglNormalStream3sATI;
12876   glNormalStream3svATI: TglNormalStream3svATI;
12877   glNormalStream3iATI: TglNormalStream3iATI;
12878   glNormalStream3ivATI: TglNormalStream3ivATI;
12879   glNormalStream3fATI: TglNormalStream3fATI;
12880   glNormalStream3fvATI: TglNormalStream3fvATI;
12881   glNormalStream3dATI: TglNormalStream3dATI;
12882   glNormalStream3dvATI: TglNormalStream3dvATI;
12883   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12884   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12885   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12886
12887   // GL_AMD_performance_monitor
12888   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12889   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12890   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12891   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12892   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12893   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12894   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12895   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12896   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12897   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12898   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12899
12900   // GL_AMD_vertex_shader_tesselator
12901   glTessellationFactorAMD: TglTessellationFactorAMD;
12902   glTessellationModeAMD: TglTessellationModeAMD;
12903
12904   // GL_AMD_draw_buffers_blend
12905   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12906   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12907   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12908   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12909
12910   // GL_AMD_name_gen_delete
12911   glGenNamesAMD: TglGenNamesAMD;
12912   glDeleteNamesAMD: TglDeleteNamesAMD;
12913   glIsNameAMD: TglIsNameAMD;
12914
12915   // GL_AMD_debug_output
12916   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12917   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12918   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12919   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12920
12921   // GL_EXT_blend_color
12922   glBlendColorEXT: TglBlendColorEXT;
12923
12924   // GL_EXT_blend_func_separate
12925   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12926
12927   // GL_EXT_blend_minmax
12928   glBlendEquationEXT: TglBlendEquationEXT;
12929
12930   // GL_EXT_color_subtable
12931   glColorSubTableEXT: TglColorSubTableEXT;
12932   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12933
12934   // GL_EXT_compiled_vertex_array
12935   glLockArraysEXT: TglLockArraysEXT;
12936   glUnlockArraysEXT: TglUnlockArraysEXT;
12937
12938   // GL_EXT_convolution
12939   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12940   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12941   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12942   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12943   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12944   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12945   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12946   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12947   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12948   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12949   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12950   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12951   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12952
12953   // GL_EXT_coordinate_frame
12954   glTangent3bEXT: TglTangent3bEXT;
12955   glTangent3bvEXT: TglTangent3bvEXT;
12956   glTangent3dEXT: TglTangent3dEXT;
12957   glTangent3dvEXT: TglTangent3dvEXT;
12958   glTangent3fEXT: TglTangent3fEXT;
12959   glTangent3fvEXT: TglTangent3fvEXT;
12960   glTangent3iEXT: TglTangent3iEXT;
12961   glTangent3ivEXT: TglTangent3ivEXT;
12962   glTangent3sEXT: TglTangent3sEXT;
12963   glTangent3svEXT: TglTangent3svEXT;
12964   glBinormal3bEXT: TglBinormal3bEXT;
12965   glBinormal3bvEXT: TglBinormal3bvEXT;
12966   glBinormal3dEXT: TglBinormal3dEXT;
12967   glBinormal3dvEXT: TglBinormal3dvEXT;
12968   glBinormal3fEXT: TglBinormal3fEXT;
12969   glBinormal3fvEXT: TglBinormal3fvEXT;
12970   glBinormal3iEXT: TglBinormal3iEXT;
12971   glBinormal3ivEXT: TglBinormal3ivEXT;
12972   glBinormal3sEXT: TglBinormal3sEXT;
12973   glBinormal3svEXT: TglBinormal3svEXT;
12974   glTangentPointerEXT: TglTangentPointerEXT;
12975   glBinormalPointerEXT: TglBinormalPointerEXT;
12976
12977   // GL_EXT_copy_texture
12978   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12979   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12980   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12981   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12982   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12983
12984   // GL_EXT_cull_vertex
12985   glCullParameterdvEXT: TglCullParameterdvEXT;
12986   glCullParameterfvEXT: TglCullParameterfvEXT;
12987
12988   // GL_EXT_draw_range_elements
12989   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12990
12991   // GL_EXT_fog_coord
12992   glFogCoordfEXT: TglFogCoordfEXT;
12993   glFogCoordfvEXT: TglFogCoordfvEXT;
12994   glFogCoorddEXT: TglFogCoorddEXT;
12995   glFogCoorddvEXT: TglFogCoorddvEXT;
12996   glFogCoordPointerEXT: TglFogCoordPointerEXT;
12997
12998   // GL_EXT_framebuffer_object
12999   glIsRenderbufferEXT: TglIsRenderbufferEXT;
13000   glBindRenderbufferEXT: TglBindRenderbufferEXT;
13001   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
13002   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
13003   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
13004   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
13005   glIsFramebufferEXT: TglIsFramebufferEXT;
13006   glBindFramebufferEXT: TglBindFramebufferEXT;
13007   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
13008   glGenFramebuffersEXT: TglGenFramebuffersEXT;
13009   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
13010   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
13011   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
13012   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
13013   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
13014   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
13015   glGenerateMipmapEXT: TglGenerateMipmapEXT;
13016
13017   // GL_EXT_histogram
13018   glGetHistogramEXT: TglGetHistogramEXT;
13019   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
13020   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
13021   glGetMinmaxEXT: TglGetMinmaxEXT;
13022   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
13023   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
13024   glHistogramEXT: TglHistogramEXT;
13025   glMinmaxEXT: TglMinmaxEXT;
13026   glResetHistogramEXT: TglResetHistogramEXT;
13027   glResetMinmaxEXT: TglResetMinmaxEXT;
13028
13029   // GL_EXT_index_func
13030   glIndexFuncEXT: TglIndexFuncEXT;
13031
13032   // GL_EXT_index_material
13033   glIndexMaterialEXT: TglIndexMaterialEXT;
13034
13035   // GL_EXT_light_texture
13036   glApplyTextureEXT: TglApplyTextureEXT;
13037   glTextureLightEXT: TglTextureLightEXT;
13038   glTextureMaterialEXT: TglTextureMaterialEXT;
13039
13040   // GL_EXT_multi_draw_arrays
13041   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13042   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13043
13044   // GL_EXT_multisample
13045   glSampleMaskEXT: TglSampleMaskEXT;
13046   glSamplePatternEXT: TglSamplePatternEXT;
13047
13048   // GL_EXT_paletted_texture
13049   glColorTableEXT: TglColorTableEXT;
13050   glGetColorTableEXT: TglGetColorTableEXT;
13051   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13052   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13053
13054   // GL_EXT_pixel_transform
13055   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13056   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13057   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13058   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13059
13060   // GL_EXT_point_parameters
13061   glPointParameterfEXT: TglPointParameterfEXT;
13062   glPointParameterfvEXT: TglPointParameterfvEXT;
13063
13064   // GL_EXT_polygon_offset
13065   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13066
13067   // GL_EXT_secondary_color
13068   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13069   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13070   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13071   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13072   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13073   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13074   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13075   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13076   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13077   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13078   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13079   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13080   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13081   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13082   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13083   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13084   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13085
13086   // GL_EXT_stencil_two_side
13087   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13088
13089   // GL_EXT_subtexture
13090   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13091   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13092
13093   // GL_EXT_texture3D
13094   glTexImage3DEXT: TglTexImage3DEXT;
13095   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13096
13097   // GL_EXT_texture_object
13098   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13099   glBindTextureEXT: TglBindTextureEXT;
13100   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13101   glGenTexturesEXT: TglGenTexturesEXT;
13102   glIsTextureEXT: TglIsTextureEXT;
13103   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13104
13105   // GL_EXT_texture_perturb_normal
13106   glTextureNormalEXT: TglTextureNormalEXT;
13107
13108   // GL_EXT_vertex_array
13109   glArrayElementEXT: TglArrayElementEXT;
13110   glColorPointerEXT: TglColorPointerEXT;
13111   glDrawArraysEXT: TglDrawArraysEXT;
13112   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13113   glGetPointervEXT: TglGetPointervEXT;
13114   glIndexPointerEXT: TglIndexPointerEXT;
13115   glNormalPointerEXT: TglNormalPointerEXT;
13116   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13117   glVertexPointerEXT: TglVertexPointerEXT;
13118
13119   // GL_EXT_vertex_shader
13120   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13121   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13122   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13123   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13124   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13125   glShaderOp1EXT: TglShaderOp1EXT;
13126   glShaderOp2EXT: TglShaderOp2EXT;
13127   glShaderOp3EXT: TglShaderOp3EXT;
13128   glSwizzleEXT: TglSwizzleEXT;
13129   glWriteMaskEXT: TglWriteMaskEXT;
13130   glInsertComponentEXT: TglInsertComponentEXT;
13131   glExtractComponentEXT: TglExtractComponentEXT;
13132   glGenSymbolsEXT: TglGenSymbolsEXT;
13133   glSetInvariantEXT: TglSetInvariantEXT;
13134   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13135   glVariantbvEXT: TglVariantbvEXT;
13136   glVariantsvEXT: TglVariantsvEXT;
13137   glVariantivEXT: TglVariantivEXT;
13138   glVariantfvEXT: TglVariantfvEXT;
13139   glVariantdvEXT: TglVariantdvEXT;
13140   glVariantubvEXT: TglVariantubvEXT;
13141   glVariantusvEXT: TglVariantusvEXT;
13142   glVariantuivEXT: TglVariantuivEXT;
13143   glVariantPointerEXT: TglVariantPointerEXT;
13144   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13145   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13146   glBindLightParameterEXT: TglBindLightParameterEXT;
13147   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13148   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13149   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13150   glBindParameterEXT: TglBindParameterEXT;
13151   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13152   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13153   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13154   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13155   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13156   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13157   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13158   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13159   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13160   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13161   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13162
13163   // GL_EXT_vertex_weighting
13164   glVertexWeightfEXT: TglVertexWeightfEXT;
13165   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13166   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13167
13168   // GL_EXT_stencil_clear_tag
13169   glStencilClearTagEXT: TglStencilClearTagEXT;
13170
13171   // GL_EXT_framebuffer_blit
13172   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13173
13174   // GL_EXT_framebuffer_multisample
13175   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13176
13177   // GL_EXT_timer_query
13178   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13179   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13180
13181   // GL_EXT_gpu_program_parameters
13182   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13183   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13184
13185   // GL_EXT_bindable_uniform
13186   glUniformBufferEXT: TglUniformBufferEXT;
13187   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13188   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13189
13190   // GL_EXT_draw_buffers2
13191   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13192   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13193   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13194   glEnableIndexedEXT: TglEnableIndexedEXT;
13195   glDisableIndexedEXT: TglDisableIndexedEXT;
13196   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13197
13198   // GL_EXT_draw_instanced
13199   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13200   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13201
13202   // GL_EXT_geometry_shader4
13203   glProgramParameteriEXT: TglProgramParameteriEXT;
13204   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13205 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13206   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13207
13208   // GL_EXT_gpu_shader4
13209   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13210   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13211   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13212   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13213   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13214   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13215   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13216   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13217   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13218   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13219   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13220   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13221   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13222   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13223   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13224   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13225   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13226   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13227   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13228   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13229   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13230   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13231   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13232   glUniform1uiEXT: TglUniform1uiEXT;
13233   glUniform2uiEXT: TglUniform2uiEXT;
13234   glUniform3uiEXT: TglUniform3uiEXT;
13235   glUniform4uiEXT: TglUniform4uiEXT;
13236   glUniform1uivEXT: TglUniform1uivEXT;
13237   glUniform2uivEXT: TglUniform2uivEXT;
13238   glUniform3uivEXT: TglUniform3uivEXT;
13239   glUniform4uivEXT: TglUniform4uivEXT;
13240   glGetUniformuivEXT: TglGetUniformuivEXT;
13241   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13242   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13243
13244   // GL_EXT_texture_array
13245   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13246
13247   // GL_EXT_texture_buffer_object
13248   glTexBufferEXT: TglTexBufferEXT;
13249
13250   // GL_EXT_texture_integer
13251   glClearColorIiEXT: TglClearColorIiEXT;
13252   glClearColorIuiEXT: TglClearColorIuiEXT;
13253   glTexParameterIivEXT: TglTexParameterIivEXT;
13254   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13255   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13256   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13257
13258   // GL_EXT_transform_feedback
13259   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13260   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13261   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13262   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13263   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13264   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13265   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13266
13267   // GL_EXT_direct_state_access
13268   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13269   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13270   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13271   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13272   glMatrixMultfEXT: TglMatrixMultfEXT;
13273   glMatrixMultdEXT: TglMatrixMultdEXT;
13274   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13275   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13276   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13277   glMatrixScalefEXT: TglMatrixScalefEXT;
13278   glMatrixScaledEXT: TglMatrixScaledEXT;
13279   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13280   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13281   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13282   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13283   glMatrixPopEXT: TglMatrixPopEXT;
13284   glMatrixPushEXT: TglMatrixPushEXT;
13285   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13286   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13287   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13288   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13289   glTextureParameterfEXT: TglTextureParameterfEXT;
13290   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13291   glTextureParameteriEXT: TglTextureParameteriEXT;
13292   glTextureParameterivEXT: TglTextureParameterivEXT;
13293   glTextureImage1DEXT: TglTextureImage1DEXT;
13294   glTextureImage2DEXT: TglTextureImage2DEXT;
13295   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13296   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13297   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13298   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13299   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13300   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13301   glGetTextureImageEXT: TglGetTextureImageEXT;
13302   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13303   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13304   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13305   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13306   glTextureImage3DEXT: TglTextureImage3DEXT;
13307   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13308   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13309   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13310   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13311   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13312   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13313   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13314   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13315   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13316   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13317   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13318   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13319   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13320   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13321   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13322   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13323   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13324   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13325   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13326   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13327   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13328   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13329   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13330   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13331   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13332   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13333   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13334   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13335   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13336   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13337   glMultiTexGendEXT: TglMultiTexGendEXT;
13338   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13339   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13340   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13341   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13342   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13343   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13344   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13345   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13346   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13347   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13348   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13349   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13350   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13351   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13352   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13353   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13354   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13355   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13356   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13357   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13358   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13359   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13360   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13361   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13362   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13363   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13364   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13365   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13366   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13367   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13368   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13369   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13370   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13371   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13372   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13373   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13374   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13375   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13376   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13377   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13378   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13379   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13380   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13381   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13382   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13383   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13384   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13385   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13386   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13387   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13388   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13389   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13390   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13391   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13392   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13393   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13394   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13395   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13396   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13397   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13398   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13399   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13400   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13401   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13402   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13403   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13404   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13405   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13406   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13407   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13408   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13409   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13410   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13411   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13412   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13413   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13414   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13415   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13416   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13417   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13418   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13419   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13420   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13421   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13422   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13423   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13424   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13425   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13426   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13427   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13428   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13429   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13430   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13431   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13432   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13433   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13434   glTextureBufferEXT: TglTextureBufferEXT;
13435   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13436   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13437   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13438   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13439   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13440   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13441   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13442   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13443   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13444   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13445   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13446   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13447   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13448   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13449   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13450   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13451   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13452   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13453   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13454   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13455   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13456   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13457   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13458   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13459   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13460   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13461   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13462   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13463   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13464   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13465   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13466   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13467   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13468   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13469   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13470   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13471   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13472   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13473   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13474
13475   // GL_EXT_separate_shader_objects
13476   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13477   glActiveProgramEXT: TglActiveProgramEXT;
13478   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13479
13480   // GL_EXT_shader_image_load_store
13481   glBindImageTextureEXT: TglBindImageTextureEXT;
13482   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13483
13484   // GL_EXT_vertex_attrib_64bit
13485   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13486   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13487   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13488   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13489   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13490   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13491   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13492   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13493   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13494   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13495   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13496
13497   // GL_HP_image_transform
13498   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13499   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13500   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13501   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13502   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13503   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13504
13505   // GL_EXT_depth_bounds_test
13506   glDepthBoundsEXT: TglDepthBoundsEXT;
13507
13508   // GL_EXT_blend_equation_separate
13509   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13510
13511   // GL_IBM_multimode_draw_arrays
13512   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13513   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13514
13515   // GL_IBM_vertex_array_lists
13516   glColorPointerListIBM: TglColorPointerListIBM;
13517   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13518   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13519   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13520   glIndexPointerListIBM: TglIndexPointerListIBM;
13521   glNormalPointerListIBM: TglNormalPointerListIBM;
13522   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13523   glVertexPointerListIBM: TglVertexPointerListIBM;
13524
13525   // GL_INGR_blend_func_separate
13526   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13527
13528   // GL_INTEL_parallel_arrays
13529   glVertexPointervINTEL: TglVertexPointervINTEL;
13530   glNormalPointervINTEL: TglNormalPointervINTEL;
13531   glColorPointervINTEL: TglColorPointervINTEL;
13532   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13533
13534   // GL_MESA_resize_buffers
13535   glResizeBuffersMESA: TglResizeBuffersMESA;
13536
13537   // GL_MESA_window_pos
13538   glWindowPos2dMESA: TglWindowPos2dMESA;
13539   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13540   glWindowPos2fMESA: TglWindowPos2fMESA;
13541   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13542   glWindowPos2iMESA: TglWindowPos2iMESA;
13543   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13544   glWindowPos2sMESA: TglWindowPos2sMESA;
13545   glWindowPos2svMESA: TglWindowPos2svMESA;
13546   glWindowPos3dMESA: TglWindowPos3dMESA;
13547   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13548   glWindowPos3fMESA: TglWindowPos3fMESA;
13549   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13550   glWindowPos3iMESA: TglWindowPos3iMESA;
13551   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13552   glWindowPos3sMESA: TglWindowPos3sMESA;
13553   glWindowPos3svMESA: TglWindowPos3svMESA;
13554   glWindowPos4dMESA: TglWindowPos4dMESA;
13555   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13556   glWindowPos4fMESA: TglWindowPos4fMESA;
13557   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13558   glWindowPos4iMESA: TglWindowPos4iMESA;
13559   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13560   glWindowPos4sMESA: TglWindowPos4sMESA;
13561   glWindowPos4svMESA: TglWindowPos4svMESA;
13562
13563   // GL_NV_evaluators
13564   glMapControlPointsNV: TglMapControlPointsNV;
13565   glMapParameterivNV: TglMapParameterivNV;
13566   glMapParameterfvNV: TglMapParameterfvNV;
13567   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13568   glGetMapParameterivNV: TglGetMapParameterivNV;
13569   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13570   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13571   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13572   glEvalMapsNV: TglEvalMapsNV;
13573
13574   // GL_NV_fence
13575   glDeleteFencesNV: TglDeleteFencesNV;
13576   glGenFencesNV: TglGenFencesNV;
13577   glIsFenceNV: TglIsFenceNV;
13578   glTestFenceNV: TglTestFenceNV;
13579   glGetFenceivNV: TglGetFenceivNV;
13580   glFinishFenceNV: TglFinishFenceNV;
13581   glSetFenceNV: TglSetFenceNV;
13582
13583   // GL_NV_fragment_program
13584   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13585   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13586   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13587   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13588   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13589   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13590
13591   // GL_NV_half_float
13592   glVertex2hNV: TglVertex2hNV;
13593   glVertex2hvNV: TglVertex2hvNV;
13594   glVertex3hNV: TglVertex3hNV;
13595   glVertex3hvNV: TglVertex3hvNV;
13596   glVertex4hNV: TglVertex4hNV;
13597   glVertex4hvNV: TglVertex4hvNV;
13598   glNormal3hNV: TglNormal3hNV;
13599   glNormal3hvNV: TglNormal3hvNV;
13600   glColor3hNV: TglColor3hNV;
13601   glColor3hvNV: TglColor3hvNV;
13602   glColor4hNV: TglColor4hNV;
13603   glColor4hvNV: TglColor4hvNV;
13604   glTexCoord1hNV: TglTexCoord1hNV;
13605   glTexCoord1hvNV: TglTexCoord1hvNV;
13606   glTexCoord2hNV: TglTexCoord2hNV;
13607   glTexCoord2hvNV: TglTexCoord2hvNV;
13608   glTexCoord3hNV: TglTexCoord3hNV;
13609   glTexCoord3hvNV: TglTexCoord3hvNV;
13610   glTexCoord4hNV: TglTexCoord4hNV;
13611   glTexCoord4hvNV: TglTexCoord4hvNV;
13612   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13613   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13614   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13615   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13616   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13617   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13618   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13619   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13620   glFogCoordhNV: TglFogCoordhNV;
13621   glFogCoordhvNV: TglFogCoordhvNV;
13622   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13623   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13624   glVertexWeighthNV: TglVertexWeighthNV;
13625   glVertexWeighthvNV: TglVertexWeighthvNV;
13626   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13627   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13628   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13629   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13630   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13631   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13632   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13633   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13634   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13635   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13636   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13637   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13638
13639   // GL_NV_occlusion_query
13640   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13641   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13642   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13643   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13644   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13645   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13646   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13647
13648   // GL_NV_pixel_data_range
13649   glPixelDataRangeNV: TglPixelDataRangeNV;
13650   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13651
13652   // GL_NV_point_sprite
13653   glPointParameteriNV: TglPointParameteriNV;
13654   glPointParameterivNV: TglPointParameterivNV;
13655
13656   // GL_NV_primitive_restart
13657   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13658   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13659
13660   // GL_NV_register_combiners
13661   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13662   glCombinerParameterfNV: TglCombinerParameterfNV;
13663   glCombinerParameterivNV: TglCombinerParameterivNV;
13664   glCombinerParameteriNV: TglCombinerParameteriNV;
13665   glCombinerInputNV: TglCombinerInputNV;
13666   glCombinerOutputNV: TglCombinerOutputNV;
13667   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13668   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13669   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13670   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13671   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13672   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13673   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13674
13675   // GL_NV_register_combiners2
13676   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13677   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13678
13679   // GL_NV_vertex_array_range
13680   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13681   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13682
13683   // GL_NV_vertex_program
13684   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13685   glBindProgramNV: TglBindProgramNV;
13686   glDeleteProgramsNV: TglDeleteProgramsNV;
13687   glExecuteProgramNV: TglExecuteProgramNV;
13688   glGenProgramsNV: TglGenProgramsNV;
13689   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13690   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13691   glGetProgramivNV: TglGetProgramivNV;
13692   glGetProgramStringNV: TglGetProgramStringNV;
13693   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13694   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13695   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13696   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13697   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13698   glIsProgramNV: TglIsProgramNV;
13699   glLoadProgramNV: TglLoadProgramNV;
13700   glProgramParameter4dNV: TglProgramParameter4dNV;
13701   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13702   glProgramParameter4fNV: TglProgramParameter4fNV;
13703   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13704   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13705   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13706   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13707   glTrackMatrixNV: TglTrackMatrixNV;
13708   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13709   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13710   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13711   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13712   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13713   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13714   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13715   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13716   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13717   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13718   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13719   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13720   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13721   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13722   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13723   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13724   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13725   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13726   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13727   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13728   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13729   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13730   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13731   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13732   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13733   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13734   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13735   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13736   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13737   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13738   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13739   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13740   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13741   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13742   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13743   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13744   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13745   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13746   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13747   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13748
13749   // GL_NV_depth_buffer_float
13750   glDepthRangedNV: TglDepthRangedNV;
13751   glClearDepthdNV: TglClearDepthdNV;
13752   glDepthBoundsdNV: TglDepthBoundsdNV;
13753
13754   // GL_NV_framebuffer_multisample_coverage
13755   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13756
13757   // GL_NV_geometry_program4
13758   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13759
13760   // GL_NV_gpu_program4
13761   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13762   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13763   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13764   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13765   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13766   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13767   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13768   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13769   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13770   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13771   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13772   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13773   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13774   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13775   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13776   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13777
13778   // GL_NV_parameter_buffer_object
13779   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13780   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13781   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13782
13783   // GL_NV_transform_feedback
13784   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13785   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13786   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13787   glBindBufferRangeNV: TglBindBufferRangeNV;
13788   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13789   glBindBufferBaseNV: TglBindBufferBaseNV;
13790   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13791   glActiveVaryingNV: TglActiveVaryingNV;
13792   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13793   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13794   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13795   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13796
13797   // GL_NV_conditional_render
13798   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13799   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13800
13801   // GL_NV_present_video
13802   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13803   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13804   glGetVideoivNV: TglGetVideoivNV;
13805   glGetVideouivNV: TglGetVideouivNV;
13806   glGetVideoi64vNV: TglGetVideoi64vNV;
13807   glGetVideoui64vNV: TglGetVideoui64vNV;
13808 //  glVideoParameterivNV: TglVideoParameterivNV;
13809
13810   // GL_NV_explicit_multisample
13811   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13812   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13813   glTexRenderbufferNV: TglTexRenderbufferNV;
13814
13815   // GL_NV_transform_feedback2
13816   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13817   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13818   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13819   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13820   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13821   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13822   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13823
13824   // GL_NV_video_capture
13825   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13826   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13827   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13828   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13829   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13830   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13831   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13832   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13833   glVideoCaptureNV: TglVideoCaptureNV;
13834   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13835   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13836   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13837
13838   // GL_NV_copy_image
13839   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13840
13841   // GL_NV_shader_buffer_load
13842   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13843   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13844   glIsBufferResidentNV: TglIsBufferResidentNV;
13845   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13846   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13847   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13848   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13849   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13850   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13851   glUniformui64NV: TglUniformui64NV;
13852   glUniformui64vNV: TglUniformui64vNV;
13853   glGetUniformui64vNV: TglGetUniformui64vNV;
13854   glProgramUniformui64NV: TglProgramUniformui64NV;
13855   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13856
13857   // GL_NV_vertex_buffer_unified_memory
13858   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13859   glVertexFormatNV: TglVertexFormatNV;
13860   glNormalFormatNV: TglNormalFormatNV;
13861   glColorFormatNV: TglColorFormatNV;
13862   glIndexFormatNV: TglIndexFormatNV;
13863   glTexCoordFormatNV: TglTexCoordFormatNV;
13864   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13865   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13866   glFogCoordFormatNV: TglFogCoordFormatNV;
13867   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13868   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13869   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13870
13871   // GL_NV_gpu_program5
13872   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13873   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13874
13875   // GL_NV_gpu_shader5
13876   glUniform1i64NV: TglUniform1i64NV;
13877   glUniform2i64NV: TglUniform2i64NV;
13878   glUniform3i64NV: TglUniform3i64NV;
13879   glUniform4i64NV: TglUniform4i64NV;
13880   glUniform1i64vNV: TglUniform1i64vNV;
13881   glUniform2i64vNV: TglUniform2i64vNV;
13882   glUniform3i64vNV: TglUniform3i64vNV;
13883   glUniform4i64vNV: TglUniform4i64vNV;
13884   glUniform1ui64NV: TglUniform1ui64NV;
13885   glUniform2ui64NV: TglUniform2ui64NV;
13886   glUniform3ui64NV: TglUniform3ui64NV;
13887   glUniform4ui64NV: TglUniform4ui64NV;
13888   glUniform1ui64vNV: TglUniform1ui64vNV;
13889   glUniform2ui64vNV: TglUniform2ui64vNV;
13890   glUniform3ui64vNV: TglUniform3ui64vNV;
13891   glUniform4ui64vNV: TglUniform4ui64vNV;
13892   glGetUniformi64vNV: TglGetUniformi64vNV;
13893   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13894   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13895   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13896   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13897   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13898   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13899   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13900   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13901   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13902   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13903   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13904   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13905   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13906   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13907   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13908   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13909
13910   // GL_NV_vertex_attrib_integer_64bit
13911   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13912   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13913   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13914   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13915   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13916   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13917   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13918   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13919   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13920   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13921   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13922   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13923   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13924   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13925   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13926   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13927   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13928   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13929   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13930
13931   // GL_NV_vdpau_interop
13932   glVDPAUInitNV: TglVDPAUInitNV;
13933   glVDPAUFiniNV: TglVDPAUFiniNV;
13934   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13935   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13936   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13937   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13938   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13939   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13940   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13941   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13942
13943   // GL_NV_texture_barrier
13944   glTextureBarrierNV: TglTextureBarrierNV;
13945
13946   // (4.3) GL_NV_path_rendering
13947   glGenPathsNV : TglGenPathsNV;
13948   glDeletePathsNV : TglDeletePathsNV;
13949   glIsPathNV : TglIsPathNV;
13950   glPathCommandsNV : TglPathCommandsNV;
13951   glPathCoordsNV : TglPathCoordsNV;
13952   glPathSubCommandsNV : TglPathSubCommandsNV;
13953   glPathSubCoordsNV : TglPathSubCoordsNV;
13954   glPathStringNV : TglPathStringNV;
13955   glPathGlyphsNV : TglPathGlyphsNV;
13956   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13957   glWeightPathsNV : TglWeightPathsNV;
13958   glCopyPathNV : TglCopyPathNV;
13959   glInterpolatePathsNV : TglInterpolatePathsNV;
13960   glTransformPathNV : TglTransformPathNV;
13961   glPathParameterivNV : TglPathParameterivNV;
13962   glPathParameteriNV : TglPathParameteriNV;
13963   glPathParameterfvNV : TglPathParameterfvNV;
13964   glPathParameterfNV : TglPathParameterfNV;
13965   glPathDashArrayNV : TglPathDashArrayNV;
13966   glPathStencilFuncNV : TglPathStencilFuncNV;
13967   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13968   glStencilFillPathNV : TglStencilFillPathNV;
13969   glStencilStrokePathNV : TglStencilStrokePathNV;
13970   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13971   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13972   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13973   glPathColorGenNV : TglPathColorGenNV;
13974   glPathTexGenNV : TglPathTexGenNV;
13975   glPathFogGenNV : TglPathFogGenNV;
13976   glCoverFillPathNV : TglCoverFillPathNV;
13977   glCoverStrokePathNV : TglCoverStrokePathNV;
13978   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13979   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13980   glGetPathParameterivNV : TglGetPathParameterivNV;
13981   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13982   glGetPathCommandsNV : TglGetPathCommandsNV;
13983   glGetPathCoordsNV : TglGetPathCoordsNV;
13984   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13985   glGetPathMetricsNV : TglGetPathMetricsNV;
13986   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13987   glGetPathSpacingNV : TglGetPathSpacingNV;
13988   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13989   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13990   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13991   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13992   glIsPointInFillPathNV : TglIsPointInFillPathNV;
13993   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
13994   glGetPathLengthNV : TglGetPathLengthNV;
13995   glPointAlongPathNV : TglPointAlongPathNV;
13996
13997   // GL_AMD_pinned_memory
13998
13999   // GL_AMD_stencil_operation_extended
14000   glStencilOpValueAMD : TglStencilOpValueAMD;
14001
14002   // GL_AMD_vertex_shader_viewport_index
14003
14004   // GL_AMD_vertex_shader_layer
14005
14006   // GL_NV_bindless_texture
14007   glGetTextureHandleNV : TglGetTextureHandleNV;
14008   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
14009   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
14010   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
14011   glGetImageHandleNV : TglGetImageHandleNV;
14012   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
14013   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
14014   glUniformHandleui64NV : TglUniformHandleui64NV;
14015   glUniformHandleui64vNV : TglUniformHandleui64vNV;
14016   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
14017   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
14018   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
14019   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
14020
14021   // GL_ARB_bindless_texture
14022   glGetTextureHandleARB : TglGetTextureHandleARB;
14023   glGetTextureSamplerHandleARB : TglGetTextureSamplerHandleARB;
14024   glMakeTextureHandleResidentARB : TglMakeTextureHandleResidentARB;
14025   glMakeTextureHandleNonResidentARB : TglMakeTextureHandleNonResidentARB;
14026   glGetImageHandleARB : TglGetImageHandleARB;
14027   glMakeImageHandleResidentARB : TglMakeImageHandleResidentARB;
14028   glMakeImageHandleNonResidentARB : TglMakeImageHandleNonResidentARB;
14029   glUniformHandleui64ARB : TglUniformHandleui64ARB;
14030   glUniformHandleui64vARB : TglUniformHandleui64vARB;
14031   glProgramUniformHandleui64ARB : TglProgramUniformHandleui64ARB;
14032   glProgramUniformHandleui64vARB : TglProgramUniformHandleui64vARB;
14033   glIsTextureHandleResidentARB : TglIsTextureHandleResidentARB;
14034   glIsImageHandleResidentARB : TglIsImageHandleResidentARB;
14035   glVertexAttribL1ui64ARB : TglVertexAttribL1ui64ARB;
14036   glVertexAttribL1ui64vARB : TglVertexAttribL1ui64vARB;
14037   glGetVertexAttribLui64vARB : TglGetVertexAttribLui64vARB;
14038
14039   // GL_PGI_misc_hints
14040   glHintPGI: TglHintPGI;
14041
14042   // GL_SGIS_detail_texture
14043   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
14044   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
14045
14046   // GL_SGIS_fog_function
14047   glFogFuncSGIS: TglFogFuncSGIS;
14048   glGetFogFuncSGIS: TglGetFogFuncSGIS;
14049
14050   // GL_SGIS_multisample
14051   glSampleMaskSGIS: TglSampleMaskSGIS;
14052   glSamplePatternSGIS: TglSamplePatternSGIS;
14053
14054   // GL_SGIS_pixel_texture
14055   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14056   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14057   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14058   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14059   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14060   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14061
14062   // GL_SGIS_point_parameters
14063   glPointParameterfSGIS: TglPointParameterfSGIS;
14064   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14065
14066   // GL_SGIS_sharpen_texture
14067   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14068   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14069
14070   // GL_SGIS_texture4D
14071   glTexImage4DSGIS: TglTexImage4DSGIS;
14072   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14073
14074   // GL_SGIS_texture_color_mask
14075   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14076
14077   // GL_SGIS_texture_filter4
14078   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14079   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14080
14081   // GL_SGIX_async
14082   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14083   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14084   glPollAsyncSGIX: TglPollAsyncSGIX;
14085   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14086   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14087   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14088
14089   // GL_SGIX_flush_raster
14090   glFlushRasterSGIX: TglFlushRasterSGIX;
14091
14092   // GL_SGIX_fragment_lighting
14093   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14094   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14095   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14096   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14097   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14098   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14099   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14100   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14101   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14102   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14103   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14104   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14105   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14106   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14107   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14108   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14109   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14110   glLightEnviSGIX: TglLightEnviSGIX;
14111
14112   // GL_SGIX_framezoom
14113   glFrameZoomSGIX: TglFrameZoomSGIX;
14114
14115   // GL_SGIX_igloo_interface
14116   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14117
14118   // GL_SGIX_instruments
14119   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14120   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14121   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14122   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14123   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14124   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14125
14126   // GL_SGIX_list_priority
14127   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14128   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14129   glListParameterfSGIX: TglListParameterfSGIX;
14130   glListParameterfvSGIX: TglListParameterfvSGIX;
14131   glListParameteriSGIX: TglListParameteriSGIX;
14132   glListParameterivSGIX: TglListParameterivSGIX;
14133
14134   // GL_SGIX_pixel_texture
14135   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14136
14137   // GL_SGIX_polynomial_ffd
14138   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14139   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14140   glDeformSGIX: TglDeformSGIX;
14141   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14142
14143   // GL_SGIX_reference_plane
14144   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14145
14146   // GL_SGIX_sprite
14147   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14148   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14149   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14150   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14151
14152   // GL_SGIX_tag_sample_buffer
14153   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14154
14155   // GL_SGI_color_table
14156   glColorTableSGI: TglColorTableSGI;
14157   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14158   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14159   glCopyColorTableSGI: TglCopyColorTableSGI;
14160   glGetColorTableSGI: TglGetColorTableSGI;
14161   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14162   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14163
14164   // GL_SUNX_constant_data
14165   glFinishTextureSUNX: TglFinishTextureSUNX;
14166
14167   // GL_SUN_global_alpha
14168   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14169   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14170   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14171   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14172   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14173   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14174   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14175   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14176
14177   // GL_SUN_mesh_array
14178   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14179
14180   // GL_SUN_triangle_list
14181   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14182   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14183   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14184   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14185   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14186   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14187   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14188
14189   // GL_SUN_vertex
14190   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14191   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14192   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14193   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14194   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14195   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14196   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14197   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14198   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14199   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14200   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14201   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14202   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14203   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14204   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14205   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14206   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14207   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14208   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14209   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14210   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14211   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14212   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14213   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14214   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14215   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14216   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14217   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14218   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14219   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14220   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14221   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14222   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14223   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14224   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14225   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14226   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14227   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14228   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14229   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14230
14231 {$IFDEF DGL_WIN}
14232   wglGetProcAddress: TwglGetProcAddress;
14233   wglCopyContext: TwglCopyContext;
14234   wglCreateContext: TwglCreateContext;
14235   wglCreateLayerContext: TwglCreateLayerContext;
14236   wglDeleteContext: TwglDeleteContext;
14237   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14238   wglGetCurrentContext: TwglGetCurrentContext;
14239   wglGetCurrentDC: TwglGetCurrentDC;
14240   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14241   wglMakeCurrent: TwglMakeCurrent;
14242   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14243   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14244   wglShareLists: TwglShareLists;
14245   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14246   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14247   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14248   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14249   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14250   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14251   wglUseFontBitmaps: TwglUseFontBitmaps;
14252   wglUseFontOutlines: TwglUseFontOutlines;
14253
14254    // WGL_ARB_buffer_region
14255   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14256   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14257   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14258   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14259
14260   // WGL_ARB_extensions_string
14261   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14262
14263   // WGL_ARB_make_current_read
14264   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14265   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14266
14267   // WGL_ARB_pbuffer
14268   wglCreatePbufferARB: TwglCreatePbufferARB;
14269   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14270   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14271   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14272   wglQueryPbufferARB: TwglQueryPbufferARB;
14273
14274   // WGL_ARB_pixel_format
14275   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14276   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14277   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14278   // WGL_ARB_color_buffer_float
14279   wglClampColorARB: TwglClampColorARB;
14280
14281   // WGL_ARB_render_texture
14282   wglBindTexImageARB: TwglBindTexImageARB;
14283   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14284   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14285
14286   // WGL_ARB_create_context
14287   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14288
14289   // WGL_AMD_gpu_association
14290   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14291   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14292   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14293   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14294   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14295   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14296   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14297   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14298   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14299
14300   // WGL_EXT_display_color_table
14301   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14302   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14303   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14304   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14305
14306   // WGL_EXT_extensions_string
14307   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14308
14309   // WGL_EXT_make_current_read
14310   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14311   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14312
14313   // WGL_EXT_pbuffer
14314   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14315   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14316   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14317   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14318   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14319
14320   // WGL_EXT_pixel_format
14321   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14322   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14323   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14324
14325   // WGL_EXT_swap_control
14326   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14327   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14328
14329   // WGL_I3D_digital_video_control
14330   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14331   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14332
14333   // WGL_I3D_gamma
14334   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14335   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14336   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14337   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14338
14339   // WGL_I3D_genlock
14340   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14341   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14342   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14343   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14344   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14345   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14346   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14347   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14348   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14349   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14350   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14351   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14352
14353   // WGL_I3D_image_buffer
14354   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14355   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14356   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14357   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14358
14359   // WGL_I3D_swap_frame_lock
14360   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14361   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14362   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14363   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14364
14365   // WGL_I3D_swap_frame_usage
14366   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14367   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14368   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14369   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14370
14371   // WGL_NV_vertex_array_range
14372   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14373   wglFreeMemoryNV: TwglFreeMemoryNV;
14374
14375   // WGL_NV_present_video
14376   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14377   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14378   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14379
14380   // WGL_NV_video_output
14381   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14382   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14383   wglBindVideoImageNV: TwglBindVideoImageNV;
14384   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14385   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14386   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14387
14388   // WGL_NV_swap_group
14389   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14390   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14391   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14392   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14393   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14394   wglResetFrameCountNV: TwglResetFrameCountNV;
14395
14396   // WGL_NV_gpu_affinity
14397   wglEnumGpusNV: TwglEnumGpusNV;
14398   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14399   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14400   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14401   wglDeleteDCNV: TwglDeleteDCNV;
14402
14403   // WGL_NV_video_capture
14404   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14405   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14406   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14407   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14408   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14409
14410   // WGL_NV_copy_image
14411   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14412
14413   // WGL_NV_DX_interop
14414   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14415   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14416   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14417   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14418   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14419   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14420   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14421   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14422
14423   // WGL_OML_sync_control
14424   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14425   wglGetMscRateOML: TwglGetMscRateOML;
14426   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14427   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14428   wglWaitForMscOML: TwglWaitForMscOML;
14429   wglWaitForSbcOML: TwglWaitForSbcOML;
14430
14431   // WGL_3DL_stereo_control
14432   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14433
14434   // WIN_draw_range_elements
14435   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14436
14437   // WIN_swap_hint
14438   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14439 {$ENDIF}
14440
14441 {$IFDEF DGL_LINUX}
14442   glXChooseVisual: TglXChooseVisual;
14443   glXCopyContext: TglXCopyContext;
14444   glXCreateContext: TglXCreateContext;
14445   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14446   glXDestroyContext: TglXDestroyContext;
14447   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14448   glXGetConfig: TglXGetConfig;
14449   glXGetCurrentContext: TglXGetCurrentContext;
14450   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14451   glXIsDirect: TglXIsDirect;
14452   glXMakeCurrent: TglXMakeCurrent;
14453   glXQueryExtension: TglXQueryExtension;
14454   glXQueryVersion: TglXQueryVersion;
14455   glXSwapBuffers: TglXSwapBuffers;
14456   glXUseXFont: TglXUseXFont;
14457   glXWaitGL: TglXWaitGL;
14458   glXWaitX: TglXWaitX;
14459
14460   glXGetClientString: TglXGetClientString;
14461   glXQueryServerString: TglXQueryServerString;
14462   glXQueryExtensionsString: TglXQueryExtensionsString;
14463
14464   // GLX_VERSION_1_3
14465   glXGetFBConfigs: TglXGetFBConfigs;
14466   glXChooseFBConfig: TglXChooseFBConfig;
14467   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14468   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14469   glXCreateWindow: TglXCreateWindow;
14470   glXDestroyWindow: TglXDestroyWindow;
14471   glXCreatePixmap: TglXCreatePixmap;
14472
14473   glXDestroyPixmap: TglXDestroyPixmap;
14474   glXCreatePbuffer: TglXCreatePbuffer;
14475   glXDestroyPbuffer: TglXDestroyPbuffer;
14476   glXQueryDrawable: TglXQueryDrawable;
14477   glXCreateNewContext: TglXCreateNewContext;
14478   glXMakeContextCurrent: TglXMakeContextCurrent;
14479   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14480   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14481
14482   glXQueryContext: TglXQueryContext;
14483   glXSelectEvent: TglXSelectEvent;
14484   glXGetSelectedEvent: TglXGetSelectedEvent;
14485
14486   // GLX_VERSION_1_4
14487   glXGetProcAddress: TglXGetProcAddress;
14488
14489   // GLX_ARB_get_proc_address
14490   glXGetProcAddressARB: TglXGetProcAddressARB;
14491
14492   // GLX_ARB_create_context
14493   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14494
14495   // GLX_EXT_import_context
14496   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14497   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14498   glXGetContextIDEXT: TglXGetContextIDEXT;
14499   glXImportContextEXT: TglXImportContextEXT;
14500   glXFreeContextEXT: TglXFreeContextEXT;
14501
14502   // GLX_EXT_texture_from_pixmap
14503   glXBindTexImageEXT: TglXBindTexImageEXT;
14504   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14505
14506   glXSwapIntervalEXT : TglXSwapIntervalEXT;
14507 {$ENDIF}
14508
14509   // GL utility functions and procedures
14510   gluErrorString: TgluErrorString;
14511   gluGetString: TgluGetString;
14512   gluOrtho2D: TgluOrtho2D;
14513   gluPerspective: TgluPerspective;
14514   gluPickMatrix: TgluPickMatrix;
14515   gluLookAt: TgluLookAt;
14516   gluProject: TgluProject;
14517   gluUnProject: TgluUnProject;
14518   gluScaleImage: TgluScaleImage;
14519   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14520   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14521   gluNewQuadric: TgluNewQuadric;
14522   gluDeleteQuadric: TgluDeleteQuadric;
14523   gluQuadricNormals: TgluQuadricNormals;
14524   gluQuadricTexture: TgluQuadricTexture;
14525   gluQuadricOrientation: TgluQuadricOrientation;
14526   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14527   gluCylinder: TgluCylinder;
14528   gluDisk: TgluDisk;
14529   gluPartialDisk: TgluPartialDisk;
14530   gluSphere: TgluSphere;
14531   gluQuadricCallback: TgluQuadricCallback;
14532   gluNewTess: TgluNewTess;
14533   gluDeleteTess: TgluDeleteTess;
14534   gluTessBeginPolygon: TgluTessBeginPolygon;
14535   gluTessBeginContour: TgluTessBeginContour;
14536   gluTessVertex: TgluTessVertex;
14537   gluTessEndContour: TgluTessEndContour;
14538   gluTessEndPolygon: TgluTessEndPolygon;
14539   gluTessProperty: TgluTessProperty;
14540   gluTessNormal: TgluTessNormal;
14541   gluTessCallback: TgluTessCallback;
14542   gluGetTessProperty: TgluGetTessProperty;
14543   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14544   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14545   gluBeginSurface: TgluBeginSurface;
14546   gluBeginCurve: TgluBeginCurve;
14547   gluEndCurve: TgluEndCurve;
14548   gluEndSurface: TgluEndSurface;
14549   gluBeginTrim: TgluBeginTrim;
14550   gluEndTrim: TgluEndTrim;
14551   gluPwlCurve: TgluPwlCurve;
14552   gluNurbsCurve: TgluNurbsCurve;
14553   gluNurbsSurface: TgluNurbsSurface;
14554   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14555   gluNurbsProperty: TgluNurbsProperty;
14556   gluGetNurbsProperty: TgluGetNurbsProperty;
14557   gluNurbsCallback: TgluNurbsCallback;
14558   gluBeginPolygon: TgluBeginPolygon;
14559   gluNextContour: TgluNextContour;
14560   gluEndPolygon: TgluEndPolygon;
14561
14562
14563 type
14564   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14565
14566 var
14567   GL_LibHandle: Pointer = nil;
14568   GLU_LibHandle: Pointer = nil;
14569
14570   LastPixelFormat: Integer;
14571   ExtensionsRead: Boolean;
14572   ImplementationRead: Boolean;
14573
14574
14575 const
14576 {$IFDEF DGL_WIN}
14577   OPENGL_LIBNAME = 'OpenGL32.dll';
14578   GLU_LIBNAME = 'GLU32.dll';
14579 {$ELSE}
14580   {$IFDEF darwin}
14581     OPENGL_LIBNAME = 'libGL.dylib';
14582     GLU_LIBNAME = 'libGLU.dylib';
14583   {$ELSE}
14584     OPENGL_LIBNAME = 'libGL.so.1';
14585     GLU_LIBNAME = 'libGLU.so.1';
14586   {$ENDIF}
14587 {$ENDIF}
14588
14589 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14590
14591 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14592 function dglCheckExtension(Extension: AnsiString): Boolean;
14593
14594 procedure ReadExtensions;
14595 procedure ReadImplementationProperties;
14596
14597 // =============================================================================
14598 // Helper-Functions
14599 // =============================================================================
14600 {$IFDEF DGL_WIN}
14601   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14602   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14603   procedure DestroyRenderingContext(RC: HGLRC);
14604
14605   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14606   procedure DeactivateRenderingContext;
14607 {$ENDIF}
14608
14609
14610 procedure ReadOpenGLCore;
14611 procedure Read_GL_3DFX_tbuffer;
14612 procedure Read_GL_APPLE_element_array;
14613 procedure Read_GL_APPLE_fence;
14614 procedure Read_GL_APPLE_vertex_array_object;
14615 procedure Read_GL_APPLE_vertex_array_range;
14616 procedure Read_GL_APPLE_texture_range;
14617 procedure Read_GL_APPLE_vertex_program_evaluators;
14618 procedure Read_GL_APPLE_object_purgeable;
14619 procedure Read_GL_ARB_matrix_palette;
14620 procedure Read_GL_ARB_multitexture;
14621 procedure Read_GL_ARB_point_parameters;
14622 procedure Read_GL_ARB_texture_compression;
14623 procedure Read_GL_ARB_transpose_matrix;
14624 procedure Read_GL_ARB_vertex_blend;
14625 procedure Read_GL_ARB_vertex_buffer_object;
14626 procedure Read_GL_ARB_vertex_program;
14627 procedure Read_GL_ARB_window_pos;
14628 procedure Read_GL_ARB_color_buffer_float;
14629 procedure Read_GL_ARB_Shader_Objects;
14630 procedure Read_GL_ARB_occlusion_query;
14631 procedure Read_GL_ARB_draw_instanced;
14632 procedure Read_GL_ARB_framebuffer_object;
14633 procedure Read_GL_ARB_geometry_shader4;
14634 procedure Read_GL_ARB_instanced_arrays;
14635 procedure Read_GL_ARB_map_buffer_range;
14636 procedure Read_GL_ARB_texture_buffer_object;
14637 procedure Read_GL_ARB_vertex_array_object;
14638 procedure Read_GL_ARB_uniform_buffer_object;
14639 procedure Read_GL_ARB_copy_buffer;
14640 procedure Read_GL_ARB_draw_elements_base_vertex;
14641 procedure Read_GL_ARB_provoking_vertex;
14642 procedure Read_GL_ARB_sync;
14643 procedure Read_GL_ARB_texture_multisample;
14644 procedure Read_GL_ARB_draw_buffers_blend;
14645 procedure Read_GL_ARB_sample_shading;
14646 procedure Read_GL_ARB_shading_language_include;
14647 procedure Read_GL_ARB_blend_func_extended;
14648 procedure Read_GL_ARB_sampler_objects;
14649 procedure Read_GL_ARB_timer_query;
14650 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14651 procedure Read_GL_ARB_draw_indirect;
14652 procedure Read_GL_ARB_gpu_shader_fp64;
14653 procedure Read_GL_ARB_shader_subroutine;
14654 procedure Read_GL_ARB_tessellation_shader;
14655 procedure Read_GL_ARB_transform_feedback2;
14656 procedure Read_GL_ARB_transform_feedback3;
14657 procedure Read_GL_ARB_ES2_compatibility;
14658 procedure Read_GL_ARB_get_program_binary;
14659 procedure Read_GL_ARB_separate_shader_objects;
14660 procedure Read_GL_ARB_vertex_attrib_64bit;
14661 procedure Read_GL_ARB_viewport_array;
14662 // GL 4.2
14663 procedure Read_GL_ARB_base_instance;
14664 procedure Read_GL_ARB_transform_feedback_instanced;
14665 procedure Read_GL_ARB_internalformat_query;
14666 procedure Read_GL_ARB_shader_atomic_counters;
14667 procedure Read_GL_ARB_shader_image_load_store;
14668 procedure Read_GL_ARB_texture_storage;
14669 // GL 4.3
14670 procedure Read_GL_KHR_debug;
14671 procedure Read_GL_ARB_clear_buffer_object;
14672 procedure Read_GL_ARB_compute_shader;
14673 procedure Read_GL_ARB_copy_image;
14674 procedure Read_GL_ARB_framebuffer_no_attachments;
14675 procedure Read_GL_ARB_internalformat_query2;
14676 procedure Read_GL_ARB_invalidate_subdata;
14677 procedure Read_GL_ARB_multi_draw_indirect;
14678 procedure Read_GL_ARB_program_interface_query;
14679 procedure Read_GL_ARB_shader_storage_buffer_object;
14680 procedure Read_GL_ARB_texture_buffer_range;
14681 procedure Read_GL_ARB_texture_storage_multisample;
14682 procedure Read_GL_ARB_texture_view;
14683 procedure Read_GL_ARB_vertex_attrib_binding;
14684
14685
14686 procedure Read_GL_4_4;
14687 procedure Read_GL_4_5;
14688
14689 //
14690 procedure Read_GL_ARB_cl_event;
14691 procedure Read_GL_ARB_compute_variable_group_size;
14692 procedure Read_GL_ARB_debug_output;
14693 procedure Read_GL_ARB_robustness;
14694 procedure Read_GL_ATI_draw_buffers;
14695 procedure Read_GL_ATI_element_array;
14696 procedure Read_GL_ATI_envmap_bumpmap;
14697 procedure Read_GL_ATI_fragment_shader;
14698 procedure Read_GL_ATI_map_object_buffer;
14699 procedure Read_GL_ATI_pn_triangles;
14700 procedure Read_GL_ATI_separate_stencil;
14701 procedure Read_GL_ATI_vertex_array_object;
14702 procedure Read_GL_ATI_vertex_attrib_array_object;
14703 procedure Read_GL_ATI_vertex_streams;
14704 procedure Read_GL_AMD_performance_monitor;
14705 procedure Read_GL_AMD_vertex_shader_tesselator;
14706 procedure Read_GL_AMD_draw_buffers_blend;
14707 procedure Read_GL_AMD_name_gen_delete;
14708 procedure Read_GL_AMD_debug_output;
14709 procedure Read_GL_EXT_blend_color;
14710 procedure Read_GL_EXT_blend_func_separate;
14711 procedure Read_GL_EXT_blend_minmax;
14712 procedure Read_GL_EXT_color_subtable;
14713 procedure Read_GL_EXT_compiled_vertex_array;
14714 procedure Read_GL_EXT_convolution;
14715 procedure Read_GL_EXT_coordinate_frame;
14716 procedure Read_GL_EXT_copy_texture;
14717 procedure Read_GL_EXT_cull_vertex;
14718 procedure Read_GL_EXT_draw_range_elements;
14719 procedure Read_GL_EXT_fog_coord;
14720 procedure Read_GL_EXT_framebuffer_object;
14721 procedure Read_GL_EXT_histogram;
14722 procedure Read_GL_EXT_index_func;
14723 procedure Read_GL_EXT_index_material;
14724 procedure Read_GL_EXT_multi_draw_arrays;
14725 procedure Read_GL_EXT_multisample;
14726 procedure Read_GL_EXT_paletted_texture;
14727 procedure Read_GL_EXT_pixel_transform;
14728 procedure Read_GL_EXT_point_parameters;
14729 procedure Read_GL_EXT_polygon_offset;
14730 procedure Read_GL_EXT_secondary_color;
14731 procedure Read_GL_EXT_stencil_two_side;
14732 procedure Read_GL_EXT_subtexture;
14733 procedure Read_GL_EXT_texture3D;
14734 procedure Read_GL_EXT_texture_object;
14735 procedure Read_GL_EXT_texture_perturb_normal;
14736 procedure Read_GL_EXT_vertex_array;
14737 procedure Read_GL_EXT_vertex_shader;
14738 procedure Read_GL_EXT_vertex_weighting;
14739 procedure Read_GL_EXT_depth_bounds_test;
14740 procedure Read_GL_EXT_blend_equation_separate;
14741 procedure Read_GL_EXT_stencil_clear_tag;
14742 procedure Read_GL_EXT_framebuffer_blit;
14743 procedure Read_GL_EXT_framebuffer_multisample;
14744 procedure Read_GL_EXT_timer_query;
14745 procedure Read_GL_EXT_gpu_program_parameters;
14746 procedure Read_GL_EXT_bindable_uniform;
14747 procedure Read_GL_EXT_draw_buffers2;
14748 procedure Read_GL_EXT_draw_instanced;
14749 procedure Read_GL_EXT_geometry_shader4;
14750 procedure Read_GL_EXT_gpu_shader4;
14751 procedure Read_GL_EXT_texture_array;
14752 procedure Read_GL_EXT_texture_buffer_object;
14753 procedure Read_GL_EXT_texture_integer;
14754 procedure Read_GL_EXT_transform_feedback;
14755 procedure Read_GL_EXT_direct_state_access;
14756 procedure Read_GL_EXT_separate_shader_objects;
14757 procedure Read_GL_EXT_shader_image_load_store;
14758 procedure Read_GL_EXT_vertex_attrib_64bit;
14759 procedure Read_GL_HP_image_transform;
14760 procedure Read_GL_IBM_multimode_draw_arrays;
14761 procedure Read_GL_IBM_vertex_array_lists;
14762 procedure Read_GL_INGR_blend_func_separate;
14763 procedure Read_GL_INTEL_parallel_arrays;
14764 procedure Read_GL_MESA_resize_buffers;
14765 procedure Read_GL_MESA_window_pos;
14766 procedure Read_GL_NV_evaluators;
14767 procedure Read_GL_NV_fence;
14768 procedure Read_GL_NV_fragment_program;
14769 procedure Read_GL_NV_half_float;
14770 procedure Read_GL_NV_occlusion_query;
14771 procedure Read_GL_NV_pixel_data_range;
14772 procedure Read_GL_NV_point_sprite;
14773 procedure Read_GL_NV_primitive_restart;
14774 procedure Read_GL_NV_register_combiners;
14775 procedure Read_GL_NV_register_combiners2;
14776 procedure Read_GL_NV_vertex_array_range;
14777 procedure Read_GL_NV_vertex_program;
14778 procedure Read_GL_NV_depth_buffer_float;
14779 procedure Read_GL_NV_framebuffer_multisample_coverage;
14780 procedure Read_GL_NV_geometry_program4;
14781 procedure Read_GL_NV_gpu_program4;
14782 procedure Read_GL_NV_parameter_buffer_object;
14783 procedure Read_GL_NV_transform_feedback;
14784 procedure Read_GL_NV_conditional_render;
14785 procedure Read_GL_NV_present_video;
14786 procedure Read_GL_NV_explicit_multisample;
14787 procedure Read_GL_NV_transform_feedback2;
14788 procedure Read_GL_NV_video_capture;
14789 procedure Read_GL_NV_copy_image;
14790 procedure Read_GL_NV_shader_buffer_load;
14791 procedure Read_GL_NV_vertex_buffer_unified_memory;
14792 procedure Read_GL_NV_gpu_program5;
14793 procedure Read_GL_NV_gpu_shader5;
14794 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14795 procedure Read_GL_NV_vdpau_interop;
14796 procedure Read_GL_NV_texture_barrier;
14797 procedure Read_GL_PGI_misc_hints;
14798 procedure Read_GL_SGIS_detail_texture;
14799 procedure Read_GL_SGIS_fog_function;
14800 procedure Read_GL_SGIS_multisample;
14801 procedure Read_GL_SGIS_pixel_texture;
14802 procedure Read_GL_SGIS_point_parameters;
14803 procedure Read_GL_SGIS_sharpen_texture;
14804 procedure Read_GL_SGIS_texture4D;
14805 procedure Read_GL_SGIS_texture_color_mask;
14806 procedure Read_GL_SGIS_texture_filter4;
14807 procedure Read_GL_SGIX_async;
14808 procedure Read_GL_SGIX_flush_raster;
14809 procedure Read_GL_SGIX_fragment_lighting;
14810 procedure Read_GL_SGIX_framezoom;
14811 procedure Read_GL_SGIX_igloo_interface;
14812 procedure Read_GL_SGIX_instruments;
14813 procedure Read_GL_SGIX_list_priority;
14814 procedure Read_GL_SGIX_pixel_texture;
14815 procedure Read_GL_SGIX_polynomial_ffd;
14816 procedure Read_GL_SGIX_reference_plane;
14817 procedure Read_GL_SGIX_sprite;
14818 procedure Read_GL_SGIX_tag_sample_buffer;
14819 procedure Read_GL_SGI_color_table;
14820 procedure Read_GL_SUNX_constant_data;
14821 procedure Read_GL_SUN_global_alpha;
14822 procedure Read_GL_SUN_mesh_array;
14823 procedure Read_GL_SUN_triangle_list;
14824 procedure Read_GL_SUN_vertex;
14825
14826 {$IFDEF DGL_WIN}
14827 procedure Read_WGL_ARB_buffer_region;
14828 procedure Read_WGL_ARB_extensions_string;
14829 procedure Read_WGL_ARB_make_current_read;
14830 procedure Read_WGL_ARB_pbuffer;
14831 procedure Read_WGL_ARB_pixel_format;
14832 procedure Read_WGL_ARB_pixel_format_float;
14833 procedure Read_WGL_ARB_render_texture;
14834 procedure Read_WGL_ARB_create_context;
14835 procedure Read_WGL_AMD_gpu_association;
14836 procedure Read_WGL_EXT_display_color_table;
14837 procedure Read_WGL_EXT_extensions_string;
14838 procedure Read_WGL_EXT_make_current_read;
14839 procedure Read_WGL_EXT_pbuffer;
14840 procedure Read_WGL_EXT_pixel_format;
14841 procedure Read_WGL_EXT_swap_control;
14842 procedure Read_WGL_I3D_digital_video_control;
14843 procedure Read_WGL_I3D_gamma;
14844 procedure Read_WGL_I3D_genlock;
14845 procedure Read_WGL_I3D_image_buffer;
14846 procedure Read_WGL_I3D_swap_frame_lock;
14847 procedure Read_WGL_I3D_swap_frame_usage;
14848 procedure Read_WGL_NV_vertex_array_range;
14849 procedure Read_WGL_NV_present_video;
14850 procedure Read_WGL_NV_video_output;
14851 procedure Read_WGL_NV_swap_group;
14852 procedure Read_WGL_NV_gpu_affinity;
14853 procedure Read_WGL_NV_video_capture;
14854 procedure Read_WGL_NV_copy_image;
14855 procedure Read_WGL_OML_sync_control;
14856 procedure Read_WGL_3DL_stereo_control;
14857
14858 procedure Read_WIN_draw_range_elements;
14859 procedure Read_WIN_swap_hint;
14860 {$ENDIF}
14861
14862
14863 implementation
14864
14865
14866 {$IFDEF DGL_LINUX}
14867 const
14868   RTLD_LAZY = $001;
14869   RTLD_NOW = $002;
14870   RTLD_BINDING_MASK = $003;
14871
14872   // Seems to work on Debian / Fedora
14873   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14874
14875 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14876 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14877
14878 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14879 {$ENDIF}
14880
14881 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14882 const
14883   RTLD_DEFAULT = Pointer(-2);
14884 {$ENDIF}{$ENDIF}
14885
14886 function dglLoadLibrary(Name: PChar): Pointer;
14887 begin
14888   {$IFDEF DGL_WIN}
14889   Result := Pointer(LoadLibrary(Name));
14890   {$ENDIF}
14891
14892   {$IFDEF DGL_LINUX}
14893   Result := dlopen(Name, RTLD_LAZY);
14894   {$ENDIF}
14895
14896   {$IFDEF DGL_MAC}
14897   {$IFDEF OPENGL_FRAMEWORK}
14898   Result := RTLD_DEFAULT;
14899   {$ELSE}
14900   Result := Pointer(LoadLibrary(Name));
14901   {$ENDIF}
14902   {$ENDIF}
14903 end;
14904
14905
14906 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14907 begin
14908   if LibHandle = nil then
14909     Result := False
14910   else
14911     {$IFDEF DGL_WIN}
14912     Result := FreeLibrary(HMODULE(LibHandle));
14913     {$ENDIF}
14914
14915     {$IFDEF DGL_LINUX}
14916     Result := dlclose(LibHandle) = 0;
14917     {$ENDIF}
14918
14919     {$IFDEF DGL_MAC}
14920     {$IFDEF OPENGL_FRAMEWORK}
14921         Result := true;
14922         {$ELSE}
14923     Result := FreeLibrary(HMODULE(LibHandle));
14924     {$ENDIF}
14925         {$ENDIF}
14926 end;
14927
14928
14929 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14930 begin
14931   if LibHandle = nil then
14932     LibHandle := GL_LibHandle;
14933
14934
14935   {$IFDEF DGL_WIN}
14936     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14937
14938     if result <> nil then
14939       exit;
14940
14941     if Addr(wglGetProcAddress) <> nil then
14942       Result := wglGetProcAddress(ProcName);
14943   {$ENDIF}
14944
14945   {$IFDEF DGL_LINUX}
14946     if not ForceDLSym then begin
14947       if Addr(glXGetProcAddress) <> nil then
14948         Result := glXGetProcAddress(ProcName);
14949
14950       if result <> nil then
14951         exit;
14952
14953       if Addr(glXGetProcAddressARB) <> nil then
14954         Result := glXGetProcAddressARB(ProcName);
14955
14956       if result <> nil then
14957         exit;
14958     end;
14959
14960     Result := dlsym(LibHandle, ProcName);
14961   {$ENDIF}
14962
14963   {$IFDEF DGL_MAC}
14964     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14965   {$ENDIF}
14966 end;
14967
14968
14969 function Int_GetExtensionString: AnsiString;
14970 var
14971         ExtensionCount : GLuint;
14972   i : Integer;
14973 begin
14974   if GL_VERSION_3_0
14975     then
14976       begin
14977         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14978         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14979
14980         result := '';
14981
14982         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14983           then
14984             begin
14985               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14986
14987               For I := 0 to extensionCount - 1 do
14988                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14989             end;
14990       end
14991     else
14992       begin
14993         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
14994
14995         if Assigned(@glGetString)
14996           then result := glGetString(GL_EXTENSIONS)
14997           else result := '';
14998       end;
14999
15000   if (GL_LibHandle <> nil) then begin
15001     {$IFDEF DGL_WIN}
15002       // wglGetExtensionsStringEXT
15003       if not Assigned(@wglGetExtensionsStringEXT) then
15004         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
15005
15006       if Assigned(@wglGetExtensionsStringEXT) then
15007         Result := Result + #32 + wglGetExtensionsStringEXT;
15008
15009       // wglGetExtensionsStringARB
15010       if not Assigned(@wglGetExtensionsStringARB) then
15011         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
15012
15013       if Assigned(@wglGetExtensionsStringARB) then
15014         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
15015     {$ENDIF}
15016   end;
15017
15018   Result := #32 + Result + #32;
15019 end;
15020
15021
15022 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
15023 begin
15024   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
15025 end;
15026
15027
15028 function dglCheckExtension(Extension: AnsiString): Boolean;
15029 var
15030   Extensions: AnsiString;
15031 begin
15032   Extensions := Int_GetExtensionString;
15033   Result := Int_CheckExtension(Extensions, Extension);
15034 end;
15035
15036
15037
15038 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
15039 begin
15040   Result := False;
15041
15042   // free opened libraries
15043   if GL_LibHandle <> nil then
15044     dglFreeLibrary(GL_LibHandle);
15045
15046   if GLU_LibHandle <> nil then
15047     dglFreeLibrary(GLU_LibHandle);
15048
15049   // load library
15050   GL_LibHandle := dglLoadLibrary(PChar(LibName));
15051   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
15052
15053   // load GL functions
15054   if (GL_LibHandle <> nil) then begin
15055     {$IFDEF DGL_WIN}
15056       wglCopyContext := dglGetProcAddress('wglCopyContext');
15057       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15058       wglCreateContext := dglGetProcAddress('wglCreateContext');
15059       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15060       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15061       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15062       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15063       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15064       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15065       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15066       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15067       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15068       wglShareLists := dglGetProcAddress('wglShareLists');
15069       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15070       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15071       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15072       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15073       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15074       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15075       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15076       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15077     {$ENDIF}
15078
15079     {$IFDEF DGL_LINUX}
15080       // GLX_VERSION_1_4 (needs to be first)
15081       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15082
15083       // GLX_ARB_get_proc_address  (also needs to be first)
15084       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15085
15086       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15087       glXCopyContext := dglGetProcAddress('glXCopyContext');
15088       glXCreateContext := dglGetProcAddress('glXCreateContext');
15089       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15090       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15091       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15092       glXGetConfig := dglGetProcAddress('glXGetConfig');
15093       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15094       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15095       glXIsDirect := dglGetProcAddress('glXIsDirect');
15096       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15097       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15098       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15099       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15100       glXUseXFont := dglGetProcAddress('glXUseXFont');
15101       glXWaitGL := dglGetProcAddress('glXWaitGL');
15102       glXWaitX := dglGetProcAddress('glXWaitX');
15103
15104       glXGetClientString := dglGetProcAddress('glXGetClientString');
15105       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15106       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15107
15108       // GLX_VERSION_1_3
15109       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15110       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15111       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15112       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15113       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15114       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15115       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15116
15117       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15118       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15119       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15120       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15121       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15122       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15123       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15124       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15125
15126       glXQueryContext := dglGetProcAddress('glXQueryContext');
15127       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15128       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15129
15130       // GLX_ARB_create_context
15131       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15132
15133       // GLX_EXT_import_context
15134       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15135       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15136       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15137       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15138       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15139
15140       // GLX_EXT_texture_from_pixmap
15141       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15142       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15143
15144       glXSwapIntervalEXT := dglGetProcAddress('glXSwapIntervalEXT');
15145     {$ENDIF}
15146
15147     Result := True;
15148   end;
15149
15150   // load GLU functions
15151   if GLU_LibHandle <> nil then begin
15152     // GLU ========================================================================
15153     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15154     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15155     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15156     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15157     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15158     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15159     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15160     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15161     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15162     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15163     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15164     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15165     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15166     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15167     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15168     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15169     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15170     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15171     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15172     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15173     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15174     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15175     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15176     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15177     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15178     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15179     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15180     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15181     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15182     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15183     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15184     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15185     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15186     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15187     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15188     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15189     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15190     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15191     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15192     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15193     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15194     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15195     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15196     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15197     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15198     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15199     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15200     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15201     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15202     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15203     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15204   end;
15205 end;
15206
15207 procedure ReadOpenGLCore;
15208 begin
15209   // GL_VERSION_1_0
15210   glCullFace := dglGetProcAddress('glCullFace');
15211   glFrontFace := dglGetProcAddress('glFrontFace');
15212   glHint := dglGetProcAddress('glHint');
15213   glLineWidth := dglGetProcAddress('glLineWidth');
15214   glPointSize := dglGetProcAddress('glPointSize');
15215   glPolygonMode := dglGetProcAddress('glPolygonMode');
15216   glScissor := dglGetProcAddress('glScissor');
15217   glTexParameterf := dglGetProcAddress('glTexParameterf');
15218   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15219   glTexParameteri := dglGetProcAddress('glTexParameteri');
15220   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15221   glTexImage1D := dglGetProcAddress('glTexImage1D');
15222   glTexImage2D := dglGetProcAddress('glTexImage2D');
15223   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15224   glClear := dglGetProcAddress('glClear');
15225   glClearColor := dglGetProcAddress('glClearColor');
15226   glClearStencil := dglGetProcAddress('glClearStencil');
15227   glClearDepth := dglGetProcAddress('glClearDepth');
15228   glStencilMask := dglGetProcAddress('glStencilMask');
15229   glColorMask := dglGetProcAddress('glColorMask');
15230   glDepthMask := dglGetProcAddress('glDepthMask');
15231   glDisable := dglGetProcAddress('glDisable');
15232   glEnable := dglGetProcAddress('glEnable');
15233   glFinish := dglGetProcAddress('glFinish');
15234   glFlush := dglGetProcAddress('glFlush');
15235   glBlendFunc := dglGetProcAddress('glBlendFunc');
15236   glLogicOp := dglGetProcAddress('glLogicOp');
15237   glStencilFunc := dglGetProcAddress('glStencilFunc');
15238   glStencilOp := dglGetProcAddress('glStencilOp');
15239   glDepthFunc := dglGetProcAddress('glDepthFunc');
15240   glPixelStoref := dglGetProcAddress('glPixelStoref');
15241   glPixelStorei := dglGetProcAddress('glPixelStorei');
15242   glReadBuffer := dglGetProcAddress('glReadBuffer');
15243   glReadPixels := dglGetProcAddress('glReadPixels');
15244   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15245   glGetDoublev := dglGetProcAddress('glGetDoublev');
15246   glGetError := dglGetProcAddress('glGetError');
15247   glGetFloatv := dglGetProcAddress('glGetFloatv');
15248   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15249   glGetString := dglGetProcAddress('glGetString');
15250   glGetTexImage := dglGetProcAddress('glGetTexImage');
15251   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15252   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15253   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15254   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15255   glIsEnabled := dglGetProcAddress('glIsEnabled');
15256   glDepthRange := dglGetProcAddress('glDepthRange');
15257   glViewport := dglGetProcAddress('glViewport');
15258
15259   // GL_VERSION_1_1
15260   glDrawArrays := dglGetProcAddress('glDrawArrays');
15261   glDrawElements := dglGetProcAddress('glDrawElements');
15262   glGetPointerv := dglGetProcAddress('glGetPointerv');
15263   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15264   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15265   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15266   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15267   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15268   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15269   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15270   glBindTexture := dglGetProcAddress('glBindTexture');
15271   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15272   glGenTextures := dglGetProcAddress('glGenTextures');
15273
15274 {$ifdef DGL_DEPRECATED}
15275   glAccum := dglGetProcAddress('glAccum');
15276   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15277   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15278   glArrayElement := dglGetProcAddress('glArrayElement');
15279   glBegin := dglGetProcAddress('glBegin');
15280   glBitmap := dglGetProcAddress('glBitmap');
15281   glCallList := dglGetProcAddress('glCallList');
15282   glCallLists := dglGetProcAddress('glCallLists');
15283   glClearAccum := dglGetProcAddress('glClearAccum');
15284   glClearIndex := dglGetProcAddress('glClearIndex');
15285   glClipPlane := dglGetProcAddress('glClipPlane');
15286   glColor3b := dglGetProcAddress('glColor3b');
15287   glColor3bv := dglGetProcAddress('glColor3bv');
15288   glColor3d := dglGetProcAddress('glColor3d');
15289   glColor3dv := dglGetProcAddress('glColor3dv');
15290   glColor3f := dglGetProcAddress('glColor3f');
15291   glColor3fv := dglGetProcAddress('glColor3fv');
15292   glColor3i := dglGetProcAddress('glColor3i');
15293   glColor3iv := dglGetProcAddress('glColor3iv');
15294   glColor3s := dglGetProcAddress('glColor3s');
15295   glColor3sv := dglGetProcAddress('glColor3sv');
15296   glColor3ub := dglGetProcAddress('glColor3ub');
15297   glColor3ubv := dglGetProcAddress('glColor3ubv');
15298   glColor3ui := dglGetProcAddress('glColor3ui');
15299   glColor3uiv := dglGetProcAddress('glColor3uiv');
15300   glColor3us := dglGetProcAddress('glColor3us');
15301   glColor3usv := dglGetProcAddress('glColor3usv');
15302   glColor4b := dglGetProcAddress('glColor4b');
15303   glColor4bv := dglGetProcAddress('glColor4bv');
15304   glColor4d := dglGetProcAddress('glColor4d');
15305   glColor4dv := dglGetProcAddress('glColor4dv');
15306   glColor4f := dglGetProcAddress('glColor4f');
15307   glColor4fv := dglGetProcAddress('glColor4fv');
15308   glColor4i := dglGetProcAddress('glColor4i');
15309   glColor4iv := dglGetProcAddress('glColor4iv');
15310   glColor4s := dglGetProcAddress('glColor4s');
15311   glColor4sv := dglGetProcAddress('glColor4sv');
15312   glColor4ub := dglGetProcAddress('glColor4ub');
15313   glColor4ubv := dglGetProcAddress('glColor4ubv');
15314   glColor4ui := dglGetProcAddress('glColor4ui');
15315   glColor4uiv := dglGetProcAddress('glColor4uiv');
15316   glColor4us := dglGetProcAddress('glColor4us');
15317   glColor4usv := dglGetProcAddress('glColor4usv');
15318   glColorMaterial := dglGetProcAddress('glColorMaterial');
15319   glColorPointer := dglGetProcAddress('glColorPointer');
15320   glCopyPixels := dglGetProcAddress('glCopyPixels');
15321   glDeleteLists := dglGetProcAddress('glDeleteLists');
15322   glDisableClientState := dglGetProcAddress('glDisableClientState');
15323   glDrawPixels := dglGetProcAddress('glDrawPixels');
15324   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15325   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15326   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15327   glEnableClientState := dglGetProcAddress('glEnableClientState');
15328   glEnd := dglGetProcAddress('glEnd');
15329   glEndList := dglGetProcAddress('glEndList');
15330   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15331   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15332   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15333   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15334   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15335   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15336   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15337   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15338   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15339   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15340   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15341   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15342   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15343   glFogf := dglGetProcAddress('glFogf');
15344   glFogfv := dglGetProcAddress('glFogfv');
15345   glFogi := dglGetProcAddress('glFogi');
15346   glFogiv := dglGetProcAddress('glFogiv');
15347   glFrustum := dglGetProcAddress('glFrustum');
15348   glGenLists := dglGetProcAddress('glGenLists');
15349   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15350   glGetLightfv := dglGetProcAddress('glGetLightfv');
15351   glGetLightiv := dglGetProcAddress('glGetLightiv');
15352   glGetMapdv := dglGetProcAddress('glGetMapdv');
15353   glGetMapfv := dglGetProcAddress('glGetMapfv');
15354   glGetMapiv := dglGetProcAddress('glGetMapiv');
15355   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15356   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15357   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15358   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15359   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15360   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15361   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15362   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15363   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15364   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15365   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15366   glIndexMask := dglGetProcAddress('glIndexMask');
15367   glIndexPointer := dglGetProcAddress('glIndexPointer');
15368   glIndexd := dglGetProcAddress('glIndexd');
15369   glIndexdv := dglGetProcAddress('glIndexdv');
15370   glIndexf := dglGetProcAddress('glIndexf');
15371   glIndexfv := dglGetProcAddress('glIndexfv');
15372   glIndexi := dglGetProcAddress('glIndexi');
15373   glIndexiv := dglGetProcAddress('glIndexiv');
15374   glIndexs := dglGetProcAddress('glIndexs');
15375   glIndexsv := dglGetProcAddress('glIndexsv');
15376   glIndexub := dglGetProcAddress('glIndexub');
15377   glIndexubv := dglGetProcAddress('glIndexubv');
15378   glInitNames := dglGetProcAddress('glInitNames');
15379   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15380   glIsList := dglGetProcAddress('glIsList');
15381   glIsTexture := dglGetProcAddress('glIsTexture');
15382   glLightModelf := dglGetProcAddress('glLightModelf');
15383   glLightModelfv := dglGetProcAddress('glLightModelfv');
15384   glLightModeli := dglGetProcAddress('glLightModeli');
15385   glLightModeliv := dglGetProcAddress('glLightModeliv');
15386   glLightf := dglGetProcAddress('glLightf');
15387   glLightfv := dglGetProcAddress('glLightfv');
15388   glLighti := dglGetProcAddress('glLighti');
15389   glLightiv := dglGetProcAddress('glLightiv');
15390   glLineStipple := dglGetProcAddress('glLineStipple');
15391   glListBase := dglGetProcAddress('glListBase');
15392   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15393   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15394   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15395   glLoadName := dglGetProcAddress('glLoadName');
15396   glMap1d := dglGetProcAddress('glMap1d');
15397   glMap1f := dglGetProcAddress('glMap1f');
15398   glMap2d := dglGetProcAddress('glMap2d');
15399   glMap2f := dglGetProcAddress('glMap2f');
15400   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15401   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15402   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15403   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15404   glMaterialf := dglGetProcAddress('glMaterialf');
15405   glMaterialfv := dglGetProcAddress('glMaterialfv');
15406   glMateriali := dglGetProcAddress('glMateriali');
15407   glMaterialiv := dglGetProcAddress('glMaterialiv');
15408   glMatrixMode := dglGetProcAddress('glMatrixMode');
15409   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15410   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15411   glNewList := dglGetProcAddress('glNewList');
15412   glNormal3b := dglGetProcAddress('glNormal3b');
15413   glNormal3bv := dglGetProcAddress('glNormal3bv');
15414   glNormal3d := dglGetProcAddress('glNormal3d');
15415   glNormal3dv := dglGetProcAddress('glNormal3dv');
15416   glNormal3f := dglGetProcAddress('glNormal3f');
15417   glNormal3fv := dglGetProcAddress('glNormal3fv');
15418   glNormal3i := dglGetProcAddress('glNormal3i');
15419   glNormal3iv := dglGetProcAddress('glNormal3iv');
15420   glNormal3s := dglGetProcAddress('glNormal3s');
15421   glNormal3sv := dglGetProcAddress('glNormal3sv');
15422   glNormalPointer := dglGetProcAddress('glNormalPointer');
15423   glOrtho := dglGetProcAddress('glOrtho');
15424   glPassThrough := dglGetProcAddress('glPassThrough');
15425   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15426   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15427   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15428   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15429   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15430   glPixelZoom := dglGetProcAddress('glPixelZoom');
15431   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15432   glPopAttrib := dglGetProcAddress('glPopAttrib');
15433   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15434   glPopMatrix := dglGetProcAddress('glPopMatrix');
15435   glPopName := dglGetProcAddress('glPopName');
15436   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15437   glPushAttrib := dglGetProcAddress('glPushAttrib');
15438   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15439   glPushMatrix := dglGetProcAddress('glPushMatrix');
15440   glPushName := dglGetProcAddress('glPushName');
15441   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15442   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15443   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15444   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15445   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15446   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15447   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15448   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15449   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15450   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15451   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15452   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15453   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15454   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15455   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15456   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15457   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15458   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15459   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15460   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15461   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15462   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15463   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15464   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15465   glRectd := dglGetProcAddress('glRectd');
15466   glRectdv := dglGetProcAddress('glRectdv');
15467   glRectf := dglGetProcAddress('glRectf');
15468   glRectfv := dglGetProcAddress('glRectfv');
15469   glRecti := dglGetProcAddress('glRecti');
15470   glRectiv := dglGetProcAddress('glRectiv');
15471   glRects := dglGetProcAddress('glRects');
15472   glRectsv := dglGetProcAddress('glRectsv');
15473   glRenderMode := dglGetProcAddress('glRenderMode');
15474   glRotated := dglGetProcAddress('glRotated');
15475   glRotatef := dglGetProcAddress('glRotatef');
15476   glScaled := dglGetProcAddress('glScaled');
15477   glScalef := dglGetProcAddress('glScalef');
15478   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15479   glShadeModel := dglGetProcAddress('glShadeModel');
15480   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15481   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15482   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15483   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15484   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15485   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15486   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15487   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15488   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15489   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15490   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15491   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15492   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15493   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15494   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15495   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15496   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15497   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15498   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15499   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15500   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15501   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15502   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15503   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15504   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15505   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15506   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15507   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15508   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15509   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15510   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15511   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15512   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15513   glTexEnvf := dglGetProcAddress('glTexEnvf');
15514   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15515   glTexEnvi := dglGetProcAddress('glTexEnvi');
15516   glTexEnviv := dglGetProcAddress('glTexEnviv');
15517   glTexGend := dglGetProcAddress('glTexGend');
15518   glTexGendv := dglGetProcAddress('glTexGendv');
15519   glTexGenf := dglGetProcAddress('glTexGenf');
15520   glTexGenfv := dglGetProcAddress('glTexGenfv');
15521   glTexGeni := dglGetProcAddress('glTexGeni');
15522   glTexGeniv := dglGetProcAddress('glTexGeniv');
15523   glTranslated := dglGetProcAddress('glTranslated');
15524   glTranslatef := dglGetProcAddress('glTranslatef');
15525   glVertex2d := dglGetProcAddress('glVertex2d');
15526   glVertex2dv := dglGetProcAddress('glVertex2dv');
15527   glVertex2f := dglGetProcAddress('glVertex2f');
15528   glVertex2fv := dglGetProcAddress('glVertex2fv');
15529   glVertex2i := dglGetProcAddress('glVertex2i');
15530   glVertex2iv := dglGetProcAddress('glVertex2iv');
15531   glVertex2s := dglGetProcAddress('glVertex2s');
15532   glVertex2sv := dglGetProcAddress('glVertex2sv');
15533   glVertex3d := dglGetProcAddress('glVertex3d');
15534   glVertex3dv := dglGetProcAddress('glVertex3dv');
15535   glVertex3f := dglGetProcAddress('glVertex3f');
15536   glVertex3fv := dglGetProcAddress('glVertex3fv');
15537   glVertex3i := dglGetProcAddress('glVertex3i');
15538   glVertex3iv := dglGetProcAddress('glVertex3iv');
15539   glVertex3s := dglGetProcAddress('glVertex3s');
15540   glVertex3sv := dglGetProcAddress('glVertex3sv');
15541   glVertex4d := dglGetProcAddress('glVertex4d');
15542   glVertex4dv := dglGetProcAddress('glVertex4dv');
15543   glVertex4f := dglGetProcAddress('glVertex4f');
15544   glVertex4fv := dglGetProcAddress('glVertex4fv');
15545   glVertex4i := dglGetProcAddress('glVertex4i');
15546   glVertex4iv := dglGetProcAddress('glVertex4iv');
15547   glVertex4s := dglGetProcAddress('glVertex4s');
15548   glVertex4sv := dglGetProcAddress('glVertex4sv');
15549   glVertexPointer := dglGetProcAddress('glVertexPointer');
15550 {$endif}
15551
15552   // GL_VERSION_1_2
15553   glBlendColor := dglGetProcAddress('glBlendColor');
15554   glBlendEquation := dglGetProcAddress('glBlendEquation');
15555   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15556   glTexImage3D := dglGetProcAddress('glTexImage3D');
15557   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15558   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15559 {$ifdef DGL_DEPRECATED}
15560   glColorTable := dglGetProcAddress('glColorTable');
15561   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15562   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15563   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15564   glGetColorTable := dglGetProcAddress('glGetColorTable');
15565   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15566   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15567   glColorSubTable := dglGetProcAddress('glColorSubTable');
15568   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15569   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15570   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15571   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15572   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15573   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15574   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15575   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15576   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15577   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15578   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15579   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15580   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15581   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15582   glGetHistogram := dglGetProcAddress('glGetHistogram');
15583   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15584   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15585   glGetMinmax := dglGetProcAddress('glGetMinmax');
15586   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15587   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15588   glHistogram := dglGetProcAddress('glHistogram');
15589   glMinmax := dglGetProcAddress('glMinmax');
15590   glResetHistogram := dglGetProcAddress('glResetHistogram');
15591   glResetMinmax := dglGetProcAddress('glResetMinmax');
15592 {$endif}
15593
15594   // GL_VERSION_1_3
15595   glActiveTexture := dglGetProcAddress('glActiveTexture');
15596   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15597   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15598   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15599   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15600   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15601   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15602   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15603   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15604 {$ifdef DGL_DEPRECATED}
15605   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15606   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15607   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15608   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15609   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15610   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15611   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15612   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15613   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15614   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15615   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15616   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15617   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15618   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15619   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15620   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15621   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15622   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15623   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15624   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15625   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15626   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15627   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15628   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15629   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15630   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15631   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15632   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15633   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15634   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15635   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15636   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15637   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15638   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15639   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15640   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15641   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15642 {$endif}
15643
15644   // GL_VERSION_1_4
15645   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15646   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15647   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15648   glPointParameterf := dglGetProcAddress('glPointParameterf');
15649   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15650   glPointParameteri := dglGetProcAddress('glPointParameteri');
15651   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15652 {$ifdef DGL_DEPRECATED}
15653   glFogCoordf := dglGetProcAddress('glFogCoordf');
15654   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15655   glFogCoordd := dglGetProcAddress('glFogCoordd');
15656   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15657   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15658   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15659   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15660   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15661   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15662   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15663   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15664   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15665   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15666   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15667   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15668   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15669   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15670   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15671   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15672   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15673   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15674   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15675   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15676   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15677   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15678   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15679   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15680   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15681   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15682   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15683   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15684   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15685   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15686   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15687   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15688   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15689   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15690   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15691 {$endif}
15692
15693   // GL_VERSION_1_5
15694   glGenQueries := dglGetProcAddress('glGenQueries');
15695   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15696   glIsQuery := dglGetProcAddress('glIsQuery');
15697   glBeginQuery := dglGetProcAddress('glBeginQuery');
15698   glEndQuery := dglGetProcAddress('glEndQuery');
15699   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15700   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15701   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15702   glBindBuffer := dglGetProcAddress('glBindBuffer');
15703   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15704   glGenBuffers := dglGetProcAddress('glGenBuffers');
15705   glIsBuffer := dglGetProcAddress('glIsBuffer');
15706   glBufferData := dglGetProcAddress('glBufferData');
15707   glBufferSubData := dglGetProcAddress('glBufferSubData');
15708   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15709   glMapBuffer := dglGetProcAddress('glMapBuffer');
15710   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15711   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15712   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15713
15714   // GL_VERSION_2_0
15715   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15716   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15717   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15718   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15719   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15720   glAttachShader := dglGetProcAddress('glAttachShader');
15721   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15722   glCompileShader := dglGetProcAddress('glCompileShader');
15723   glCreateProgram := dglGetProcAddress('glCreateProgram');
15724   glCreateShader := dglGetProcAddress('glCreateShader');
15725   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15726   glDeleteShader := dglGetProcAddress('glDeleteShader');
15727   glDetachShader := dglGetProcAddress('glDetachShader');
15728   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15729   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15730   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15731   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15732   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15733   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15734   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15735   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15736   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15737   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15738   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15739   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15740   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15741   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15742   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15743   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15744   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15745   glIsProgram := dglGetProcAddress('glIsProgram');
15746   glIsShader := dglGetProcAddress('glIsShader');
15747   glLinkProgram := dglGetProcAddress('glLinkProgram');
15748   glShaderSource := dglGetProcAddress('glShaderSource');
15749   glUseProgram := dglGetProcAddress('glUseProgram');
15750   glUniform1f := dglGetProcAddress('glUniform1f');
15751   glUniform2f := dglGetProcAddress('glUniform2f');
15752   glUniform3f := dglGetProcAddress('glUniform3f');
15753   glUniform4f := dglGetProcAddress('glUniform4f');
15754   glUniform1i := dglGetProcAddress('glUniform1i');
15755   glUniform2i := dglGetProcAddress('glUniform2i');
15756   glUniform3i := dglGetProcAddress('glUniform3i');
15757   glUniform4i := dglGetProcAddress('glUniform4i');
15758   glUniform1fv := dglGetProcAddress('glUniform1fv');
15759   glUniform2fv := dglGetProcAddress('glUniform2fv');
15760   glUniform3fv := dglGetProcAddress('glUniform3fv');
15761   glUniform4fv := dglGetProcAddress('glUniform4fv');
15762   glUniform1iv := dglGetProcAddress('glUniform1iv');
15763   glUniform2iv := dglGetProcAddress('glUniform2iv');
15764   glUniform3iv := dglGetProcAddress('glUniform3iv');
15765   glUniform4iv := dglGetProcAddress('glUniform4iv');
15766   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15767   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15768   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15769   glValidateProgram := dglGetProcAddress('glValidateProgram');
15770   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15771   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15772   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15773   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15774   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15775   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15776   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15777   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15778   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15779   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15780   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15781   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15782   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15783   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15784   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15785   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15786   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15787   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15788   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15789   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15790   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15791   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15792   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15793   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15794   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15795   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15796   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15797   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15798   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15799   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15800   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15801   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15802   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15803   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15804   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15805   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15806   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15807
15808   // GL_VERSION_2_1
15809   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15810   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15811   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15812   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15813   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15814   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15815
15816   // GL_VERSION_3_0
15817   { OpenGL 3.0 also reuses entry points from these extensions: }
15818   Read_GL_ARB_framebuffer_object;
15819   Read_GL_ARB_map_buffer_range;
15820   Read_GL_ARB_vertex_array_object;
15821
15822   glColorMaski := dglGetProcAddress('glColorMaski');
15823   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15824   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15825   glEnablei := dglGetProcAddress('glEnablei');
15826   glDisablei := dglGetProcAddress('glDisablei');
15827   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15828   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15829   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15830   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15831   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15832   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15833   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15834   glClampColor := dglGetProcAddress('glClampColor');
15835   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15836   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15837   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15838   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15839   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15840   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15841   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15842   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15843   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15844   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15845   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15846   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15847   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15848   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15849   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15850   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15851   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15852   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15853   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15854   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15855   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15856   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15857   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15858   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15859   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15860   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15861   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15862   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15863   glUniform1ui := dglGetProcAddress('glUniform1ui');
15864   glUniform2ui := dglGetProcAddress('glUniform2ui');
15865   glUniform3ui := dglGetProcAddress('glUniform3ui');
15866   glUniform4ui := dglGetProcAddress('glUniform4ui');
15867   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15868   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15869   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15870   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15871   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15872   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15873   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15874   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15875   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15876   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15877   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15878   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15879   glGetStringi := dglGetProcAddress('glGetStringi');
15880
15881   // GL_VERSION_2_1
15882   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15883   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15884   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15885
15886   // GL_VERSION_3_1
15887   { OpenGL 3.1 also reuses entry points from these extensions: }
15888   Read_GL_ARB_copy_buffer;
15889   Read_GL_ARB_uniform_buffer_object;
15890
15891   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15892   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15893   glTexBuffer := dglGetProcAddress('glTexBuffer');
15894   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15895
15896   // GL_VERSION_3_2
15897   { OpenGL 3.2 also reuses entry points from these extensions: }
15898   Read_GL_ARB_draw_elements_base_vertex;
15899   Read_GL_ARB_provoking_vertex;
15900   Read_GL_ARB_sync;
15901   Read_GL_ARB_texture_multisample;
15902
15903   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15904   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15905   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15906 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15907
15908   // GL_VERSION_3_3
15909   { OpenGL 3.3 also reuses entry points from these extensions: }
15910   Read_GL_ARB_blend_func_extended;
15911   Read_GL_ARB_sampler_objects;
15912   { ARB_explicit_attrib_location, but it has none }
15913   { ARB_occlusion_query2 (no entry points) }
15914   { ARB_shader_bit_encoding (no entry points) }
15915   { ARB_texture_rgb10_a2ui (no entry points) }
15916   { ARB_texture_swizzle (no entry points) }
15917   Read_GL_ARB_timer_query;
15918   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15919
15920   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15921
15922   // GL_VERSION_4_0
15923   { OpenGL 4.0 also reuses entry points from these extensions: }
15924   { ARB_texture_query_lod (no entry points) }
15925   Read_GL_ARB_draw_indirect;
15926   { ARB_gpu_shader5 (no entry points) }
15927   Read_GL_ARB_gpu_shader_fp64;
15928   Read_GL_ARB_shader_subroutine;
15929   Read_GL_ARB_tessellation_shader;
15930   { ARB_texture_buffer_object_rgb32 (no entry points) }
15931   { ARB_texture_cube_map_array (no entry points) }
15932   { ARB_texture_gather (no entry points) }
15933   Read_GL_ARB_transform_feedback2;
15934   Read_GL_ARB_transform_feedback3;
15935
15936   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15937   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15938   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15939   glBlendFunci := dglGetProcAddress('glBlendFunci');
15940   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15941
15942   // GL_VERSION_4_1
15943   { OpenGL 4.1 also reuses entry points from these extensions: }
15944   Read_GL_ARB_ES2_compatibility;
15945   Read_GL_ARB_get_program_binary;
15946   Read_GL_ARB_separate_shader_objects;
15947   { ARB_shader_precision (no entry points) }
15948   Read_GL_ARB_vertex_attrib_64bit;
15949   Read_GL_ARB_viewport_array;
15950
15951   // GL_VERSION_4_2
15952   { OpenGL 4.2 reuses entry points from these extensions: }
15953   Read_GL_ARB_base_instance;
15954   //Read_GL_ARB_shading_language_420pack (no entry points)
15955   Read_GL_ARB_transform_feedback_instanced;
15956   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15957   //Read_GL_ARB_conservative_depth;
15958   Read_GL_ARB_internalformat_query;
15959   //Read_GL_ARB_map_buffer_alignment;
15960   Read_GL_ARB_shader_atomic_counters;
15961   Read_GL_ARB_shader_image_load_store;
15962   //Read_GL_ARB_shading_language_packing;
15963   Read_GL_ARB_texture_storage;
15964
15965   // GL_VERSION_4_3
15966   // OpenGL 4.3 reuses entry points from these extensions:
15967   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15968   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15969   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15970   // Read_GL_ARB_ES3_compatibility (no entry points)
15971   Read_GL_ARB_clear_buffer_object;
15972   Read_GL_ARB_compute_shader;
15973   Read_GL_ARB_copy_image;
15974   Read_GL_KHR_debug;
15975   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15976   Read_GL_ARB_framebuffer_no_attachments;
15977   Read_GL_ARB_internalformat_query2;
15978   Read_GL_ARB_invalidate_subdata;
15979   Read_GL_ARB_multi_draw_indirect;
15980   Read_GL_ARB_program_interface_query;
15981   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15982   Read_GL_ARB_shader_storage_buffer_object;
15983   // Read_GL_ARB_stencil_texturing  (no entry points)
15984   Read_GL_ARB_texture_buffer_range;
15985   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15986   Read_GL_ARB_texture_storage_multisample;
15987   Read_GL_ARB_texture_view;
15988   Read_GL_ARB_vertex_attrib_binding;
15989
15990   //  Note (Due to Khronos' change in header convetions, no more single read_ functions) starting with GL 4.4
15991   Read_GL_4_4;
15992   Read_GL_4_5;
15993 end;
15994
15995 procedure Read_GL_3DFX_tbuffer;
15996 begin
15997   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
15998 end;
15999
16000 procedure Read_GL_APPLE_element_array;
16001 begin
16002   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
16003   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
16004   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
16005   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
16006   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
16007 end;
16008
16009 procedure Read_GL_APPLE_fence;
16010 begin
16011   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
16012   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
16013   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
16014   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
16015   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
16016   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
16017   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
16018   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
16019 end;
16020
16021 procedure Read_GL_APPLE_vertex_array_object;
16022 begin
16023   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
16024   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
16025   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
16026   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
16027 end;
16028
16029 procedure Read_GL_APPLE_vertex_array_range;
16030 begin
16031   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
16032   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
16033   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
16034 end;
16035
16036 procedure Read_GL_APPLE_texture_range;
16037 begin
16038   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
16039   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
16040 end;
16041
16042 procedure Read_GL_APPLE_vertex_program_evaluators;
16043 begin
16044   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
16045   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
16046   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
16047   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
16048   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
16049   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
16050   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
16051 end;
16052
16053 procedure Read_GL_APPLE_object_purgeable;
16054 begin
16055   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16056   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16057   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16058 end;
16059
16060 procedure Read_GL_ARB_matrix_palette;
16061 begin
16062   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16063   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16064   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16065   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16066   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16067 end;
16068
16069 procedure Read_GL_ARB_multisample;
16070 begin
16071   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16072 end;
16073
16074 procedure Read_GL_ARB_multitexture;
16075 begin
16076   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16077   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16078   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16079   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16080   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16081   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16082   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16083   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16084   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16085   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16086   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16087   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16088   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16089   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16090   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16091   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16092   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16093   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16094   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16095   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16096   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16097   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16098   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16099   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16100   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16101   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16102   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16103   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16104   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16105   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16106   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16107   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16108   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16109   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16110 end;
16111
16112 procedure Read_GL_ARB_point_parameters;
16113 begin
16114   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16115   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16116 end;
16117
16118 procedure Read_GL_ARB_texture_compression;
16119 begin
16120   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16121   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16122   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16123   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16124   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16125   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16126   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16127 end;
16128
16129 procedure Read_GL_ARB_transpose_matrix;
16130 begin
16131   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16132   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16133   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16134   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16135 end;
16136
16137 procedure Read_GL_ARB_vertex_blend;
16138 begin
16139   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16140   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16141   glWeightivARB := dglGetProcAddress('glWeightivARB');
16142   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16143   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16144   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16145   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16146   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16147   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16148   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16149 end;
16150
16151 procedure Read_GL_ARB_vertex_buffer_object;
16152 begin
16153   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16154   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16155   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16156   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16157   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16158   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16159   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16160   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16161   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16162   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16163   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16164 end;
16165
16166 procedure Read_GL_ARB_vertex_program;
16167 begin
16168   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16169   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16170   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16171   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16172   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16173   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16174   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16175   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16176   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16177   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16178   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16179   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16180   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16181   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16182   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16183   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16184   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16185   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16186   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16187   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16188   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16189   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16190   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16191   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16192   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16193   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16194   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16195   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16196   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16197   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16198   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16199   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16200   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16201   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16202   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16203   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16204   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16205   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16206   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16207   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16208   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16209   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16210   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16211   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16212   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16213   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16214   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16215   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16216   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16217   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16218   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16219   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16220   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16221   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16222   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16223   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16224   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16225   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16226   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16227   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16228   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16229   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16230 end;
16231
16232 procedure Read_GL_ARB_window_pos;
16233 begin
16234   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16235   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16236   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16237   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16238   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16239   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16240   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16241   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16242   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16243   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16244   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16245   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16246   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16247   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16248   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16249   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16250 end;
16251
16252 procedure Read_GL_ARB_draw_buffers;
16253 begin
16254   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16255 end;
16256
16257 procedure Read_GL_ARB_color_buffer_float;
16258 begin
16259   glClampColorARB := dglGetProcAddress('glClampColorARB');
16260 end;
16261
16262 procedure Read_GL_ARB_Shader_Objects;
16263 begin
16264   // GL_ARB_Shader_Objects
16265   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16266   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16267   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16268   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16269   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16270   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16271   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16272   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16273   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16274   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16275   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16276   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16277   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16278   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16279   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16280   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16281   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16282   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16283   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16284   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16285   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16286   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16287   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16288   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16289   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16290   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16291   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16292   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16293   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16294   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16295   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16296   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16297   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16298   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16299   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16300   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16301   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16302   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16303   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16304
16305   // GL_ARB_vertex_shader
16306   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16307   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16308   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16309   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16310 end;
16311
16312 procedure Read_GL_ARB_occlusion_query;
16313 begin
16314   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16315   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16316   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16317   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16318   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16319   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16320   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16321   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16322 end;
16323
16324 procedure Read_GL_ARB_draw_instanced;
16325 begin
16326   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16327   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16328 end;
16329
16330 procedure Read_GL_ARB_framebuffer_object;
16331 begin
16332   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16333   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16334   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16335   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16336   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16337   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16338   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16339   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16340   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16341   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16342   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16343   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16344   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16345   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16346   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16347   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16348   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16349   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16350   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16351   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16352 end;
16353
16354 procedure Read_GL_ARB_geometry_shader4;
16355 begin
16356   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16357   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16358   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16359   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16360 end;
16361
16362 procedure Read_GL_ARB_instanced_arrays;
16363 begin
16364   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16365 end;
16366
16367 procedure Read_GL_ARB_map_buffer_range;
16368 begin
16369   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16370   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16371 end;
16372
16373 procedure Read_GL_ARB_texture_buffer_object;
16374 begin
16375   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16376 end;
16377
16378 procedure Read_GL_ARB_vertex_array_object;
16379 begin
16380   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16381   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16382   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16383   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16384 end;
16385
16386 procedure Read_GL_ARB_uniform_buffer_object;
16387 begin
16388   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16389   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16390   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16391   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16392   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16393   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16394   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16395 end;
16396
16397 procedure Read_GL_ARB_copy_buffer;
16398 begin
16399   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16400 end;
16401
16402 procedure Read_GL_ARB_draw_elements_base_vertex;
16403 begin
16404   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16405   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16406   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16407   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16408 end;
16409
16410 procedure Read_GL_ARB_provoking_vertex;
16411 begin
16412   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16413 end;
16414
16415 procedure Read_GL_ARB_sync;
16416 begin
16417   glFenceSync := dglGetProcAddress('glFenceSync');
16418   glIsSync := dglGetProcAddress('glIsSync');
16419   glDeleteSync := dglGetProcAddress('glDeleteSync');
16420   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16421   glWaitSync := dglGetProcAddress('glWaitSync');
16422   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16423   glGetSynciv := dglGetProcAddress('glGetSynciv');
16424 end;
16425
16426 procedure Read_GL_ARB_texture_multisample;
16427 begin
16428   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16429   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16430   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16431   glSampleMaski := dglGetProcAddress('glSampleMaski');
16432 end;
16433
16434 procedure Read_GL_ARB_draw_buffers_blend;
16435 begin
16436   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16437   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16438   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16439   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16440 end;
16441
16442 procedure Read_GL_ARB_sample_shading;
16443 begin
16444   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16445 end;
16446
16447 procedure Read_GL_ARB_shading_language_include;
16448 begin
16449   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16450   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16451   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16452   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16453   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16454   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16455 end;
16456
16457 procedure Read_GL_ARB_sparse_texture;
16458 begin
16459   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
16460 end;
16461
16462 procedure Read_GL_ARB_sparse_buffer;
16463 begin
16464   glBufferPageCommitmentARB := dglGetProcAddress('glBufferPageCommitmentARB');
16465   glNamedBufferPageCommitmentEXT := dglGetProcAddress('glNamedBufferPageCommitmentEXT');
16466   glNamedBufferPageCommitmentARB := dglGetProcAddress('glNamedBufferPageCommitmentARB');
16467 end;
16468
16469 procedure Read_GL_KHR_blend_equation_advanced;
16470 begin
16471   glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
16472 end;
16473
16474
16475 procedure Read_GL_ARB_blend_func_extended;
16476 begin
16477   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16478   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16479 end;
16480
16481 procedure Read_GL_ARB_sampler_objects;
16482 begin
16483   glGenSamplers := dglGetProcAddress('glGenSamplers');
16484   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16485   glIsSampler := dglGetProcAddress('glIsSampler');
16486   glBindSampler := dglGetProcAddress('glBindSampler');
16487   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16488   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16489   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16490   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16491   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16492   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16493   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16494   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16495   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16496   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16497 end;
16498
16499 procedure Read_GL_ARB_timer_query;
16500 begin
16501   glQueryCounter := dglGetProcAddress('glQueryCounter');
16502   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16503   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16504 end;
16505
16506 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16507 begin
16508   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16509   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16510   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16511   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16512   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16513   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16514   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16515   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16516   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16517   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16518   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16519   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16520   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16521   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16522   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16523   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16524   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16525   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16526   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16527   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16528   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16529   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16530   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16531   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16532   glColorP3ui := dglGetProcAddress('glColorP3ui');
16533   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16534   glColorP4ui := dglGetProcAddress('glColorP4ui');
16535   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16536   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16537   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16538   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16539   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16540   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16541   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16542   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16543   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16544   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16545   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16546 end;
16547
16548 procedure Read_GL_ARB_draw_indirect;
16549 begin
16550   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16551   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16552 end;
16553
16554 procedure Read_GL_ARB_gpu_shader_fp64;
16555 begin
16556   glUniform1d := dglGetProcAddress('glUniform1d');
16557   glUniform2d := dglGetProcAddress('glUniform2d');
16558   glUniform3d := dglGetProcAddress('glUniform3d');
16559   glUniform4d := dglGetProcAddress('glUniform4d');
16560   glUniform1dv := dglGetProcAddress('glUniform1dv');
16561   glUniform2dv := dglGetProcAddress('glUniform2dv');
16562   glUniform3dv := dglGetProcAddress('glUniform3dv');
16563   glUniform4dv := dglGetProcAddress('glUniform4dv');
16564   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16565   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16566   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16567   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16568   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16569   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16570   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16571   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16572   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16573   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16574 end;
16575
16576 procedure Read_GL_ARB_shader_subroutine;
16577 begin
16578   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16579   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16580   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16581   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16582   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16583   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16584   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16585   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16586 end;
16587
16588 procedure Read_GL_ARB_tessellation_shader;
16589 begin
16590   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16591   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16592 end;
16593
16594 procedure Read_GL_ARB_transform_feedback2;
16595 begin
16596   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16597   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16598   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16599   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16600   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16601   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16602   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16603 end;
16604
16605 procedure Read_GL_ARB_transform_feedback3;
16606 begin
16607   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16608   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16609   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16610   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16611 end;
16612
16613 procedure Read_GL_ARB_ES2_compatibility;
16614 begin
16615   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16616   glShaderBinary := dglGetProcAddress('glShaderBinary');
16617   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16618   glDepthRangef := dglGetProcAddress('glDepthRangef');
16619   glClearDepthf := dglGetProcAddress('glClearDepthf');
16620 end;
16621
16622 procedure Read_GL_ARB_get_program_binary;
16623 begin
16624   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16625   glProgramBinary := dglGetProcAddress('glProgramBinary');
16626   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16627 end;
16628
16629 procedure Read_GL_ARB_separate_shader_objects;
16630 begin
16631   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16632   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16633   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16634   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16635   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16636   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16637   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16638   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16639   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16640   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16641   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16642   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16643   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16644   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16645   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16646   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16647   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16648   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16649   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16650   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16651   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16652   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16653   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16654   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16655   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16656   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16657   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16658   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16659   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16660   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16661   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16662   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16663   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16664   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16665   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16666   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16667   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16668   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16669   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16670   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16671   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16672   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16673   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16674   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16675   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16676   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16677   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16678   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16679   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16680   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16681   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16682   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16683   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16684   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16685   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16686   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16687   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16688   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16689   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16690   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16691 end;
16692
16693 procedure Read_GL_ARB_vertex_attrib_64bit;
16694 begin
16695   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16696   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16697   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16698   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16699   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16700   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16701   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16702   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16703   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16704   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16705 end;
16706
16707 procedure Read_GL_ARB_viewport_array;
16708 begin
16709   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16710   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16711   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16712   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16713   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16714   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16715   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16716   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16717   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16718   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16719 end;
16720
16721 // GL 4.2
16722
16723 procedure Read_GL_ARB_base_instance;
16724 begin
16725 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16726 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16727 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16728 end;
16729
16730 procedure Read_GL_ARB_transform_feedback_instanced;
16731 begin
16732 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16733 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16734 end;
16735
16736 procedure Read_GL_ARB_internalformat_query;
16737 begin
16738 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16739 end;
16740
16741 procedure Read_GL_ARB_shader_atomic_counters;
16742 begin
16743 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16744 end;
16745
16746 procedure Read_GL_ARB_shader_image_load_store;
16747 begin
16748 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16749 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16750 end;
16751
16752 procedure Read_GL_ARB_texture_storage;
16753 begin
16754 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16755 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16756 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16757 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16758 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16759 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16760 end;
16761
16762
16763 // GL 4.3
16764 procedure Read_GL_KHR_debug;
16765 begin
16766   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16767   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16768   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16769   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16770   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16771   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16772   glObjectLabel := dglGetProcAddress('glObjectLabel');
16773   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16774   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16775   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16776 end;
16777
16778 procedure Read_GL_ARB_clear_buffer_object;
16779 begin
16780   glClearBufferData := dglGetProcAddress('glClearBufferData');
16781   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16782   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16783   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16784 end;
16785
16786 procedure Read_GL_ARB_compute_shader;
16787 begin
16788   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16789   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16790 end;
16791
16792 procedure Read_GL_ARB_copy_image;
16793 begin
16794   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16795 end;
16796
16797 procedure Read_GL_ARB_framebuffer_no_attachments;
16798 begin
16799   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16800   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16801   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16802   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16803 end;
16804
16805 procedure Read_GL_ARB_internalformat_query2;
16806 begin
16807   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16808 end;
16809
16810 procedure Read_GL_ARB_invalidate_subdata;
16811 begin
16812   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16813   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16814   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16815   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16816   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16817   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16818 end;
16819
16820 procedure Read_GL_ARB_multi_draw_indirect;
16821 begin
16822   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16823   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16824 end;
16825
16826 procedure Read_GL_ARB_program_interface_query;
16827 begin
16828   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16829   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16830   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16831   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16832   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16833   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16834 end;
16835
16836 procedure Read_GL_ARB_shader_storage_buffer_object;
16837 begin
16838   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16839 end;
16840
16841 procedure Read_GL_ARB_texture_buffer_range;
16842 begin
16843   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16844   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16845 end;
16846
16847 procedure Read_GL_ARB_texture_storage_multisample;
16848 begin
16849   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16850   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16851   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16852   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16853 end;
16854
16855 procedure Read_GL_ARB_texture_view;
16856 begin
16857   glTextureView := dglGetProcAddress('glTextureView');
16858 end;
16859
16860 procedure Read_GL_ARB_vertex_attrib_binding;
16861 begin
16862   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16863   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16864   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16865   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16866   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16867   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16868   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16869   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16870   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16871   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16872   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16873   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16874 end;
16875
16876 procedure Read_GL_4_4;
16877 begin
16878   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16879   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16880   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16881   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16882   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16883   glBindTextures      := dglGetProcAddress('glBindTextures');
16884   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16885   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16886   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16887 end;
16888
16889 procedure Read_GL_4_5;
16890 begin
16891   glClipControl:= dglGetProcAddress('glClipControl');
16892   glCreateTransformFeedbacks:= dglGetProcAddress('glCreateTransformFeedbacks');
16893   glTransformFeedbackBufferBase:= dglGetProcAddress('glTransformFeedbackBufferBase');
16894   glTransformFeedbackBufferRange:= dglGetProcAddress('glTransformFeedbackBufferRange');
16895   glGetTransformFeedbackiv:= dglGetProcAddress('glGetTransformFeedbackiv');
16896   glGetTransformFeedbacki_v:= dglGetProcAddress('glGetTransformFeedbacki_v');
16897   glGetTransformFeedbacki64_v:= dglGetProcAddress('glGetTransformFeedbacki64_v');
16898   glCreateBuffers:= dglGetProcAddress('glCreateBuffers');
16899   glNamedBufferStorage:= dglGetProcAddress('glNamedBufferStorage');
16900   glNamedBufferData:= dglGetProcAddress('glNamedBufferData');
16901   glNamedBufferSubData:= dglGetProcAddress('glNamedBufferSubData');
16902   glCopyNamedBufferSubData:= dglGetProcAddress('glCopyNamedBufferSubData');
16903   glClearNamedBufferData:= dglGetProcAddress('glClearNamedBufferData');
16904   glClearNamedBufferSubData:= dglGetProcAddress('glClearNamedBufferSubData');
16905   glMapNamedBuffer:= dglGetProcAddress('glMapNamedBuffer');
16906   glMapNamedBufferRange:= dglGetProcAddress('glMapNamedBufferRange');
16907   glUnmapNamedBuffer:= dglGetProcAddress('glUnmapNamedBuffer');
16908   glFlushMappedNamedBufferRange:= dglGetProcAddress('glFlushMappedNamedBufferRange');
16909   glGetNamedBufferParameteriv:= dglGetProcAddress('glGetNamedBufferParameteriv');
16910   glGetNamedBufferParameteri64v:= dglGetProcAddress('glGetNamedBufferParameteri64v');
16911   glGetNamedBufferPointerv:= dglGetProcAddress('glGetNamedBufferPointerv');
16912   glGetNamedBufferSubData:= dglGetProcAddress('glGetNamedBufferSubData');
16913   glCreateFramebuffers:= dglGetProcAddress('glCreateFramebuffers');
16914   glNamedFramebufferRenderbuffer:= dglGetProcAddress('glNamedFramebufferRenderbuffer');
16915   glNamedFramebufferParameteri:= dglGetProcAddress('glNamedFramebufferParameteri');
16916   glNamedFramebufferTexture:= dglGetProcAddress('glNamedFramebufferTexture');
16917   glNamedFramebufferTextureLayer:= dglGetProcAddress('glNamedFramebufferTextureLayer');
16918   glNamedFramebufferDrawBuffer:= dglGetProcAddress('glNamedFramebufferDrawBuffer');
16919   glNamedFramebufferDrawBuffers:= dglGetProcAddress('glNamedFramebufferDrawBuffers');
16920   glNamedFramebufferReadBuffer:= dglGetProcAddress('glNamedFramebufferReadBuffer');
16921   glInvalidateNamedFramebufferData:= dglGetProcAddress('glInvalidateNamedFramebufferData');
16922   glInvalidateNamedFramebufferSubData:= dglGetProcAddress('glInvalidateNamedFramebufferSubData');
16923   glClearNamedFramebufferiv:= dglGetProcAddress('glClearNamedFramebufferiv');
16924   glClearNamedFramebufferuiv:= dglGetProcAddress('glClearNamedFramebufferuiv');
16925   glClearNamedFramebufferfv:= dglGetProcAddress('glClearNamedFramebufferfv');
16926   glClearNamedFramebufferfi:= dglGetProcAddress('glClearNamedFramebufferfi');
16927   glBlitNamedFramebuffer:= dglGetProcAddress('glBlitNamedFramebuffer');
16928   glCheckNamedFramebufferStatus:= dglGetProcAddress('glCheckNamedFramebufferStatus');
16929   glGetNamedFramebufferParameteriv:= dglGetProcAddress('glGetNamedFramebufferParameteriv');
16930   glGetNamedFramebufferAttachmentParameteriv:= dglGetProcAddress('glGetNamedFramebufferAttachmentParameteriv');
16931   glCreateRenderbuffers:= dglGetProcAddress('glCreateRenderbuffers');
16932   glNamedRenderbufferStorage:= dglGetProcAddress('glNamedRenderbufferStorage');
16933   glNamedRenderbufferStorageMultisample:= dglGetProcAddress('glNamedRenderbufferStorageMultisample');
16934   glGetNamedRenderbufferParameteriv:= dglGetProcAddress('glGetNamedRenderbufferParameteriv');
16935   glCreateTextures:= dglGetProcAddress('glCreateTextures');
16936   glTextureBuffer:= dglGetProcAddress('glTextureBuffer');
16937   glTextureBufferRange:= dglGetProcAddress('glTextureBufferRange');
16938   glTextureStorage1D:= dglGetProcAddress('glTextureStorage1D');
16939   glTextureStorage2D:= dglGetProcAddress('glTextureStorage2D');
16940   glTextureStorage3D:= dglGetProcAddress('glTextureStorage3D');
16941   glTextureStorage2DMultisample:= dglGetProcAddress('glTextureStorage2DMultisample');
16942   glTextureStorage3DMultisample:= dglGetProcAddress('glTextureStorage3DMultisample');
16943   glTextureSubImage1D:= dglGetProcAddress('glTextureSubImage1D');
16944   glTextureSubImage2D:= dglGetProcAddress('glTextureSubImage2D');
16945   glTextureSubImage3D:= dglGetProcAddress('glTextureSubImage3D');
16946   glCompressedTextureSubImage1D:= dglGetProcAddress('glCompressedTextureSubImage1D');
16947   glCompressedTextureSubImage2D:= dglGetProcAddress('glCompressedTextureSubImage2D');
16948   glCompressedTextureSubImage3D:= dglGetProcAddress('glCompressedTextureSubImage3D');
16949   glCopyTextureSubImage1D:= dglGetProcAddress('glCopyTextureSubImage1D');
16950   glCopyTextureSubImage2D:= dglGetProcAddress('glCopyTextureSubImage2D');
16951   glCopyTextureSubImage3D:= dglGetProcAddress('glCopyTextureSubImage3D');
16952   glTextureParameterf:= dglGetProcAddress('glTextureParameterf');
16953   glTextureParameterfv:= dglGetProcAddress('glTextureParameterfv');
16954   glTextureParameteri:= dglGetProcAddress('glTextureParameteri');
16955   glTextureParameterIiv:= dglGetProcAddress('glTextureParameterIiv');
16956   glTextureParameterIuiv:= dglGetProcAddress('glTextureParameterIuiv');
16957   glTextureParameteriv:= dglGetProcAddress('glTextureParameteriv');
16958   glGenerateTextureMipmap:= dglGetProcAddress('glGenerateTextureMipmap');
16959   glBindTextureUnit:= dglGetProcAddress('glBindTextureUnit');
16960   glGetTextureImage:= dglGetProcAddress('glGetTextureImage');
16961   glGetCompressedTextureImage:= dglGetProcAddress('glGetCompressedTextureImage');
16962   glGetTextureLevelParameterfv:= dglGetProcAddress('glGetTextureLevelParameterfv');
16963   glGetTextureLevelParameteriv:= dglGetProcAddress('glGetTextureLevelParameteriv');
16964   glGetTextureParameterfv:= dglGetProcAddress('glGetTextureParameterfv');
16965   glGetTextureParameterIiv:= dglGetProcAddress('glGetTextureParameterIiv');
16966   glGetTextureParameterIuiv:= dglGetProcAddress('glGetTextureParameterIuiv');
16967   glGetTextureParameteriv:= dglGetProcAddress('glGetTextureParameteriv');
16968   glCreateVertexArrays:= dglGetProcAddress('glCreateVertexArrays');
16969   glDisableVertexArrayAttrib:= dglGetProcAddress('glDisableVertexArrayAttrib');
16970   glEnableVertexArrayAttrib:= dglGetProcAddress('glEnableVertexArrayAttrib');
16971   glVertexArrayElementBuffer:= dglGetProcAddress('glVertexArrayElementBuffer');
16972   glVertexArrayVertexBuffer:= dglGetProcAddress('glVertexArrayVertexBuffer');
16973   glVertexArrayVertexBuffers:= dglGetProcAddress('glVertexArrayVertexBuffers');
16974   glVertexArrayAttribBinding:= dglGetProcAddress('glVertexArrayAttribBinding');
16975   glVertexArrayAttribFormat:= dglGetProcAddress('glVertexArrayAttribFormat');
16976   glVertexArrayAttribIFormat:= dglGetProcAddress('glVertexArrayAttribIFormat');
16977   glVertexArrayAttribLFormat:= dglGetProcAddress('glVertexArrayAttribLFormat');
16978   glVertexArrayBindingDivisor:= dglGetProcAddress('glVertexArrayBindingDivisor');
16979   glGetVertexArrayiv:= dglGetProcAddress('glGetVertexArrayiv');
16980   glGetVertexArrayIndexediv:= dglGetProcAddress('glGetVertexArrayIndexediv');
16981   glGetVertexArrayIndexed64iv:= dglGetProcAddress('glGetVertexArrayIndexed64iv');
16982   glCreateSamplers:= dglGetProcAddress('glCreateSamplers');
16983   glCreateProgramPipelines:= dglGetProcAddress('glCreateProgramPipelines');
16984   glCreateQueries:= dglGetProcAddress('glCreateQueries');
16985   glMemoryBarrierByRegion:= dglGetProcAddress('glMemoryBarrierByRegion');
16986   glGetTextureSubImage:= dglGetProcAddress('glGetTextureSubImage');
16987   glGetCompressedTextureSubImage:= dglGetProcAddress('glGetCompressedTextureSubImage');
16988   glGetGraphicsResetStatus:= dglGetProcAddress('glGetGraphicsResetStatus');
16989   glGetnCompressedTexImage:= dglGetProcAddress('glGetnCompressedTexImage');
16990   glGetnTexImage:= dglGetProcAddress('glGetnTexImage');
16991   glGetnUniformdv:= dglGetProcAddress('glGetnUniformdv');
16992   glGetnUniformfv:= dglGetProcAddress('glGetnUniformfv');
16993   glGetnUniformiv:= dglGetProcAddress('glGetnUniformiv');
16994   glGetnUniformuiv:= dglGetProcAddress('glGetnUniformuiv');
16995   glReadnPixels:= dglGetProcAddress('glReadnPixels');
16996   glGetnMapdv:= dglGetProcAddress('glGetnMapdv');
16997   glGetnMapfv:= dglGetProcAddress('glGetnMapfv');
16998   glGetnMapiv:= dglGetProcAddress('glGetnMapiv');
16999   glGetnPixelMapfv:= dglGetProcAddress('glGetnPixelMapfv');
17000   glGetnPixelMapuiv:= dglGetProcAddress('glGetnPixelMapuiv');
17001   glGetnPixelMapusv:= dglGetProcAddress('glGetnPixelMapusv');
17002   glGetnPolygonStipple:= dglGetProcAddress('glGetnPolygonStipple');
17003   glGetnColorTable:= dglGetProcAddress('glGetnColorTable');
17004   glGetnConvolutionFilter:= dglGetProcAddress('glGetnConvolutionFilter');
17005   glGetnSeparableFilter:= dglGetProcAddress('glGetnSeparableFilter');
17006   glGetnHistogram:= dglGetProcAddress('glGetnHistogram');
17007   glGetnMinmax:= dglGetProcAddress('glGetnMinmax');
17008   glTextureBarrier:= dglGetProcAddress('glTextureBarrier');
17009 end;
17010
17011 procedure Read_GL_NV_path_rendering;
17012 begin
17013   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
17014   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
17015   glIsPathNV := dglGetProcAddress('glIsPathNV');
17016   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
17017   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
17018   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
17019   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
17020   glPathStringNV := dglGetProcAddress('glPathStringNV');
17021   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
17022   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
17023   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
17024   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
17025   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
17026   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
17027   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
17028   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
17029   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
17030   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
17031   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
17032   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
17033   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
17034   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
17035   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
17036   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
17037   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
17038   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
17039   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
17040   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
17041   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
17042   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
17043   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
17044   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
17045   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
17046   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
17047   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
17048   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
17049   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
17050   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
17051   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
17052   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
17053   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
17054   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
17055   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
17056   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
17057   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
17058   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
17059   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
17060   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
17061   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
17062 end;
17063
17064 procedure Read_GL_AMD_stencil_operation_extended;
17065 begin
17066         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
17067 end;
17068
17069 procedure Read_GL_NV_bindless_texture;
17070 begin
17071   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
17072   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
17073   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
17074   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
17075   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
17076   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
17077   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
17078   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
17079   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
17080   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
17081   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
17082   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
17083   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
17084 end;
17085
17086 procedure Read_GL_ARB_bindless_texture;
17087 begin
17088   glGetTextureHandleARB := dglGetProcAddress('TglGetTextureHandleARB');
17089   glGetTextureSamplerHandleARB := dglGetProcAddress('TglGetTextureSamplerHandleARB');
17090   glMakeTextureHandleResidentARB := dglGetProcAddress('TglMakeTextureHandleResidentARB');
17091   glMakeTextureHandleNonResidentARB := dglGetProcAddress('TglMakeTextureHandleNonResidentARB');
17092   glGetImageHandleARB := dglGetProcAddress('TglGetImageHandleARB');
17093   glMakeImageHandleResidentARB := dglGetProcAddress('TglMakeImageHandleResidentARB');
17094   glMakeImageHandleNonResidentARB := dglGetProcAddress('TglMakeImageHandleNonResidentARB');
17095   glUniformHandleui64ARB := dglGetProcAddress('TglUniformHandleui64ARB');
17096   glUniformHandleui64vARB := dglGetProcAddress('TglUniformHandleui64vARB');
17097   glProgramUniformHandleui64ARB := dglGetProcAddress('TglProgramUniformHandleui64ARB');
17098   glProgramUniformHandleui64vARB := dglGetProcAddress('TglProgramUniformHandleui64vARB');
17099   glIsTextureHandleResidentARB := dglGetProcAddress('TglIsTextureHandleResidentARB');
17100   glIsImageHandleResidentARB := dglGetProcAddress('TglIsImageHandleResidentARB');
17101   glVertexAttribL1ui64ARB := dglGetProcAddress('TglVertexAttribL1ui64ARB');
17102   glVertexAttribL1ui64vARB := dglGetProcAddress('TglVertexAttribL1ui64vARB');
17103   glGetVertexAttribLui64vARB := dglGetProcAddress('TglGetVertexAttribLui64vARB');
17104 end;
17105
17106 procedure Read_GL_ARB_cl_event;
17107 begin
17108   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
17109 end;
17110
17111 procedure Read_GL_ARB_compute_variable_group_size;
17112 begin
17113   glDispatchComputeGroupSizeARB := dglGetProcAddress('glDispatchComputeGroupSizeARB');
17114 end;
17115
17116 procedure Read_GL_ARB_debug_output;
17117 begin
17118   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
17119   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
17120   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
17121   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
17122 end;
17123
17124 procedure Read_GL_ARB_robustness;
17125 begin
17126   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
17127   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
17128   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
17129   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
17130   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
17131   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
17132   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
17133   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
17134   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
17135   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
17136   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
17137   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
17138   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
17139   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
17140   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
17141   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
17142   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
17143   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
17144   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
17145   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
17146 end;
17147
17148 procedure Read_GL_ATI_draw_buffers;
17149 begin
17150   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
17151 end;
17152
17153 procedure Read_GL_ATI_element_array;
17154 begin
17155   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
17156   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
17157   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
17158 end;
17159
17160 procedure Read_GL_ATI_envmap_bumpmap;
17161 begin
17162   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
17163   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
17164   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
17165   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
17166 end;
17167
17168 procedure Read_GL_ATI_fragment_shader;
17169 begin
17170   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
17171   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
17172   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
17173   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
17174   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
17175   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
17176   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
17177   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
17178   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
17179   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
17180   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
17181   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
17182   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
17183   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
17184 end;
17185
17186 procedure Read_GL_ATI_map_object_buffer;
17187 begin
17188   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
17189   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
17190 end;
17191
17192 procedure Read_GL_ATI_pn_triangles;
17193 begin
17194   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
17195   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
17196 end;
17197
17198 procedure Read_GL_ATI_separate_stencil;
17199 begin
17200   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
17201   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
17202 end;
17203
17204 procedure Read_GL_ATI_vertex_array_object;
17205 begin
17206   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
17207   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
17208   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
17209   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
17210   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
17211   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
17212   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
17213   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
17214   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
17215   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17216   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17217   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17218
17219 end;
17220
17221 procedure Read_GL_ATI_vertex_attrib_array_object;
17222 begin
17223   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17224   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17225   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17226 end;
17227
17228 procedure Read_GL_ATI_vertex_streams;
17229 begin
17230   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17231   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17232   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17233   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17234   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17235   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17236   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17237   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17238   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17239   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17240   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17241   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17242   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17243   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17244   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17245   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17246   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17247   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17248   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17249   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17250   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17251   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17252   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17253   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17254   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17255   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17256   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17257   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17258   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17259   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17260   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17261   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17262   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17263   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17264   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17265   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17266   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17267   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17268   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17269   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17270   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17271   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17272   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17273   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17274   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17275 end;
17276
17277 procedure Read_GL_AMD_performance_monitor;
17278 begin
17279   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17280   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17281   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17282   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17283   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17284   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17285   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17286   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17287   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17288   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17289   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17290 end;
17291
17292 procedure Read_GL_AMD_vertex_shader_tesselator;
17293 begin
17294   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17295   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17296 end;
17297
17298 procedure Read_GL_AMD_draw_buffers_blend;
17299 begin
17300   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17301   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17302   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17303   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17304 end;
17305
17306 procedure Read_GL_AMD_name_gen_delete;
17307 begin
17308   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17309   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17310   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17311 end;
17312
17313 procedure Read_GL_AMD_debug_output;
17314 begin
17315   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17316   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17317   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17318   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17319 end;
17320
17321 procedure Read_GL_EXT_blend_color;
17322 begin
17323   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17324 end;
17325
17326 procedure Read_GL_EXT_blend_func_separate;
17327 begin
17328   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17329 end;
17330
17331 procedure Read_GL_EXT_blend_minmax;
17332 begin
17333   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17334 end;
17335
17336 procedure Read_GL_EXT_color_subtable;
17337 begin
17338   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17339   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17340 end;
17341
17342 procedure Read_GL_EXT_compiled_vertex_array;
17343 begin
17344   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17345   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17346 end;
17347
17348 procedure Read_GL_EXT_convolution;
17349 begin
17350   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17351   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17352   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17353   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17354   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17355   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17356   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17357   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17358   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17359   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17360   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17361   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17362   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17363 end;
17364
17365 procedure Read_GL_EXT_coordinate_frame;
17366 begin
17367   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17368   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17369   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17370   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17371   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17372   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17373   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17374   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17375   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17376   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17377   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17378   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17379   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17380   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17381   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17382   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17383   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17384   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17385   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17386   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17387   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17388   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17389 end;
17390
17391 procedure Read_GL_EXT_copy_texture;
17392 begin
17393   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17394   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17395   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17396   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17397   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17398 end;
17399
17400 procedure Read_GL_EXT_cull_vertex;
17401 begin
17402   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17403   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17404 end;
17405
17406 procedure Read_GL_EXT_draw_range_elements;
17407 begin
17408   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17409 end;
17410
17411 procedure Read_GL_EXT_fog_coord;
17412 begin
17413   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17414   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17415   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17416   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17417   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17418 end;
17419
17420 procedure Read_GL_EXT_framebuffer_object;
17421 begin
17422   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17423   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17424   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17425   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17426   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17427   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17428   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17429   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17430   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17431   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17432   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17433   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17434   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17435   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17436   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17437   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17438   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17439 end;
17440
17441 procedure Read_GL_EXT_histogram;
17442 begin
17443   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17444   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17445   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17446   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17447   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17448   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17449   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17450   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17451   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17452   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17453 end;
17454
17455 procedure Read_GL_EXT_index_func;
17456 begin
17457   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17458 end;
17459
17460 procedure Read_GL_EXT_index_material;
17461 begin
17462   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17463 end;
17464
17465 procedure Read_GL_EXT_light_texture;
17466 begin
17467   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17468   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17469   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17470 end;
17471
17472 procedure Read_GL_EXT_multi_draw_arrays;
17473 begin
17474   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17475   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17476 end;
17477
17478 procedure Read_GL_EXT_multisample;
17479 begin
17480   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17481   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17482 end;
17483
17484 procedure Read_GL_EXT_paletted_texture;
17485 begin
17486   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17487   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17488   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17489   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17490 end;
17491
17492 procedure Read_GL_EXT_pixel_transform;
17493 begin
17494   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17495   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17496   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17497   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17498 end;
17499
17500 procedure Read_GL_EXT_point_parameters;
17501 begin
17502   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17503   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17504 end;
17505
17506 procedure Read_GL_EXT_polygon_offset;
17507 begin
17508   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17509 end;
17510
17511 procedure Read_GL_EXT_secondary_color;
17512 begin
17513   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17514   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17515   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17516   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17517   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17518   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17519   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17520   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17521   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17522   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17523   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17524   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17525   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17526   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17527   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17528   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17529   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17530 end;
17531
17532 procedure Read_GL_EXT_stencil_two_side;
17533 begin
17534   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17535 end;
17536
17537 procedure Read_GL_EXT_subtexture;
17538 begin
17539   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17540   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17541 end;
17542
17543 procedure Read_GL_EXT_texture3D;
17544 begin
17545   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17546   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17547 end;
17548
17549 procedure Read_GL_EXT_texture_object;
17550 begin
17551   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17552   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17553   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17554   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17555   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17556   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17557 end;
17558
17559 procedure Read_GL_EXT_texture_perturb_normal;
17560 begin
17561   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17562 end;
17563
17564 procedure Read_GL_EXT_vertex_array;
17565 begin
17566   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17567   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17568   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17569   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17570   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17571   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17572   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17573   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17574   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17575 end;
17576
17577 procedure Read_GL_EXT_vertex_shader;
17578 begin
17579   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17580   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17581   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17582   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17583   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17584   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17585   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17586   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17587   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17588   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17589   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17590   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17591   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17592   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17593   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17594   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17595   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17596   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17597   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17598   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17599   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17600   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17601   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17602   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17603   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17604   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17605   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17606   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17607   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17608   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17609   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17610   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17611   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17612   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17613   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17614   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17615   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17616   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17617   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17618   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17619   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17620   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17621 end;
17622
17623 procedure Read_GL_EXT_vertex_weighting;
17624 begin
17625   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17626   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17627   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17628 end;
17629
17630 procedure Read_GL_EXT_depth_bounds_test;
17631 begin
17632   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17633   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17634 end;
17635
17636 procedure Read_GL_EXT_blend_equation_separate;
17637 begin
17638   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17639 end;
17640
17641 procedure Read_GL_EXT_stencil_clear_tag;
17642 begin
17643   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17644 end;
17645
17646 procedure Read_GL_EXT_framebuffer_blit;
17647 begin
17648   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17649 end;
17650
17651 procedure Read_GL_EXT_framebuffer_multisample;
17652 begin
17653   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17654 end;
17655
17656 procedure Read_GL_EXT_timer_query;
17657 begin
17658   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17659   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17660 end;
17661
17662 procedure Read_GL_EXT_gpu_program_parameters;
17663 begin
17664   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17665   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17666 end;
17667
17668 procedure Read_GL_EXT_bindable_uniform;
17669 begin
17670   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17671   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17672   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17673 end;
17674
17675 procedure Read_GL_EXT_draw_buffers2;
17676 begin
17677   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17678   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17679   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17680   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17681   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17682   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17683 end;
17684
17685 procedure Read_GL_EXT_draw_instanced;
17686 begin
17687   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17688   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17689 end;
17690
17691 procedure Read_GL_EXT_geometry_shader4;
17692 begin
17693   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17694   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17695 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17696   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17697 end;
17698
17699 procedure Read_GL_EXT_gpu_shader4;
17700 begin
17701   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17702   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17703   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17704   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17705   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17706   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17707   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17708   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17709   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17710   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17711   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17712   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17713   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17714   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17715   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17716   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17717   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17718   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17719   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17720   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17721   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17722   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17723   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17724   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17725   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17726   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17727   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17728   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17729   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17730   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17731   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17732   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17733   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17734   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17735 end;
17736
17737 procedure Read_GL_EXT_texture_array;
17738 begin
17739   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17740 end;
17741
17742 procedure Read_GL_EXT_texture_buffer_object;
17743 begin
17744   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17745 end;
17746
17747 procedure Read_GL_EXT_texture_integer;
17748 begin
17749   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17750   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17751   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17752   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17753   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17754   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17755 end;
17756
17757 procedure Read_GL_EXT_transform_feedback;
17758 begin
17759   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17760   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17761   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17762   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17763   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17764   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17765   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17766 end;
17767
17768 procedure Read_GL_EXT_direct_state_access;
17769 begin
17770   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17771   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17772   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17773   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17774   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17775   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17776   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17777   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17778   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17779   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17780   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17781   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17782   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17783   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17784   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17785   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17786   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17787   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17788   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17789   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17790   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17791   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17792   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17793   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17794   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17795   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17796   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17797   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17798   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17799   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17800   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17801   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17802   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17803   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17804   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17805   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17806   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17807   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17808   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17809   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17810   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17811   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17812   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17813   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17814   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17815   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17816   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17817   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17818   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17819   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17820   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17821   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17822   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17823   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17824   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17825   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17826   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17827   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17828   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17829   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17830   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17831   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17832   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17833   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17834   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17835   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17836   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17837   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17838   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17839   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17840   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17841   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17842   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17843   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17844   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17845   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17846   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17847   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17848   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17849   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17850   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17851   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17852   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17853   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17854   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17855   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17856   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17857   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17858   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17859   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17860   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17861   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17862   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17863   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17864   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17865   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17866   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17867   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17868   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17869   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17870   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17871   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17872   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17873   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17874   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17875   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17876   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17877   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17878   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17879   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17880   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17881   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17882   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17883   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17884   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17885   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17886   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17887   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17888   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17889   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17890   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17891   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17892   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17893   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17894   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17895   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17896   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17897   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17898   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17899   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17900   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17901   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17902   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17903   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17904   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17905   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17906   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17907   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17908   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17909   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17910   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17911   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17912   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17913   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17914   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17915   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17916   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17917   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17918   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17919   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17920   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17921   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17922   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17923   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17924   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17925   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17926   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17927   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17928   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17929   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17930   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17931   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17932   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17933   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17934   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17935   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17936   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17937   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17938   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17939   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17940   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17941   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17942   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17943   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17944   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17945   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17946   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17947   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17948   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17949   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17950   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17951   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17952   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17953   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17954   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17955   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17956   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17957   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17958   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17959   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17960   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17961   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17962   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17963   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17964   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17965   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17966   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17967   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17968   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17969   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17970   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17971   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17972   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17973   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17974   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17975   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17976 end;
17977
17978 procedure Read_GL_EXT_separate_shader_objects;
17979 begin
17980   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17981   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17982   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17983 end;
17984
17985 procedure Read_GL_EXT_shader_image_load_store;
17986 begin
17987   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17988   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17989 end;
17990
17991 procedure Read_GL_EXT_vertex_attrib_64bit;
17992 begin
17993   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
17994   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
17995   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
17996   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
17997   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
17998   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
17999   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
18000   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
18001   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
18002   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
18003   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
18004 end;
18005
18006 procedure Read_GL_HP_image_transform;
18007 begin
18008   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
18009   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
18010   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
18011   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
18012   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
18013   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
18014 end;
18015
18016 procedure Read_GL_IBM_multimode_draw_arrays;
18017 begin
18018   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
18019   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
18020 end;
18021
18022 procedure Read_GL_IBM_vertex_array_lists;
18023 begin
18024   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
18025   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
18026   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
18027   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
18028   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
18029   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
18030   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
18031   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
18032 end;
18033
18034 procedure Read_GL_INGR_blend_func_separate;
18035 begin
18036   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
18037 end;
18038
18039 procedure Read_GL_INTEL_parallel_arrays;
18040 begin
18041   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
18042   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
18043   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
18044   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
18045 end;
18046
18047 procedure Read_GL_MESA_resize_buffers;
18048 begin
18049   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
18050 end;
18051
18052 procedure Read_GL_MESA_window_pos;
18053 begin
18054   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
18055   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
18056   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
18057   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
18058   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
18059   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
18060   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
18061   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
18062   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
18063   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
18064   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
18065   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
18066   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
18067   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
18068   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
18069   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
18070   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
18071   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
18072   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
18073   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
18074   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
18075   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
18076   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
18077   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
18078 end;
18079
18080 procedure Read_GL_NV_evaluators;
18081 begin
18082   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
18083   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
18084   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
18085   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
18086   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
18087   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
18088   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
18089   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
18090   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
18091 end;
18092
18093 procedure Read_GL_NV_fence;
18094 begin
18095   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
18096   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
18097   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
18098   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
18099   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
18100   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
18101   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
18102 end;
18103
18104 procedure Read_GL_NV_fragment_program;
18105 begin
18106   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
18107   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
18108   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
18109   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
18110   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
18111   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
18112 end;
18113
18114 procedure Read_GL_NV_half_float;
18115 begin
18116   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
18117   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
18118   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
18119   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
18120   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
18121   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
18122   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
18123   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
18124   glColor3hNV := dglGetProcAddress('glColor3hNV');
18125   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
18126   glColor4hNV := dglGetProcAddress('glColor4hNV');
18127   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
18128   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
18129   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
18130   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
18131   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
18132   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
18133   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
18134   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
18135   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
18136   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
18137   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
18138   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
18139   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
18140   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
18141   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
18142   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
18143   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
18144   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
18145   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
18146   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
18147   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
18148   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
18149   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
18150   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
18151   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
18152   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
18153   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
18154   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
18155   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
18156   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
18157   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
18158   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
18159   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
18160   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
18161   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
18162 end;
18163
18164 procedure Read_GL_NV_occlusion_query;
18165 begin
18166   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
18167   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
18168   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
18169   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
18170   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
18171   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
18172   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
18173 end;
18174
18175 procedure Read_GL_NV_pixel_data_range;
18176 begin
18177   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
18178   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
18179 end;
18180
18181 procedure Read_GL_NV_point_sprite;
18182 begin
18183   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
18184   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
18185 end;
18186
18187 procedure Read_GL_NV_primitive_restart;
18188 begin
18189   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
18190   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
18191 end;
18192
18193 procedure Read_GL_NV_register_combiners;
18194 begin
18195   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
18196   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
18197   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
18198   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
18199   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
18200   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
18201   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
18202   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
18203   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
18204   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
18205   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
18206   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
18207   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
18208 end;
18209
18210 procedure Read_GL_NV_register_combiners2;
18211 begin
18212   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
18213   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
18214 end;
18215
18216 procedure Read_GL_NV_vertex_array_range;
18217 begin
18218   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18219   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18220 end;
18221
18222 procedure Read_GL_NV_vertex_program;
18223 begin
18224   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18225   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18226   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18227   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18228   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18229   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18230   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18231   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18232   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18233   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18234   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18235   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18236   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18237   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18238   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18239   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18240   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18241   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18242   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18243   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18244   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18245   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18246   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18247   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18248   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18249   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18250   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18251   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18252   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18253   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18254   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18255   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18256   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18257   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18258   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18259   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18260   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18261   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18262   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18263   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18264   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18265   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18266   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18267   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18268   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18269   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18270   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18271   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18272   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18273   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18274   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18275   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18276   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18277   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18278   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18279   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18280   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18281   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18282   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18283   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18284   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18285   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18286   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18287   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18288 end;
18289
18290 procedure Read_GL_NV_depth_buffer_float;
18291 begin
18292   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18293   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18294   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18295 end;
18296
18297 procedure Read_GL_NV_framebuffer_multisample_coverage;
18298 begin
18299   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18300 end;
18301
18302 procedure Read_GL_NV_geometry_program4;
18303 begin
18304   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18305 end;
18306
18307 procedure Read_GL_NV_gpu_program4;
18308 begin
18309   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18310   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18311   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18312   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18313   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18314   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18315   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18316   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18317   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18318   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18319   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18320   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18321   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18322   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18323   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18324   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18325 end;
18326
18327 procedure Read_GL_NV_parameter_buffer_object;
18328 begin
18329   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18330   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18331   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18332 end;
18333
18334 procedure Read_GL_NV_transform_feedback;
18335 begin
18336   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18337   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18338   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18339   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18340   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18341   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18342   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18343   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18344   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18345   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18346   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18347   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18348 end;
18349
18350 procedure Read_GL_NV_conditional_render;
18351 begin
18352   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18353   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18354 end;
18355
18356 procedure Read_GL_NV_present_video;
18357 begin
18358   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18359   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18360   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18361   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18362   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18363   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18364 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18365 end;
18366
18367 procedure Read_GL_NV_explicit_multisample;
18368 begin
18369   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18370   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18371   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18372 end;
18373
18374 procedure Read_GL_NV_transform_feedback2;
18375 begin
18376   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18377   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18378   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18379   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18380   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18381   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18382   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18383 end;
18384
18385 procedure Read_GL_NV_video_capture;
18386 begin
18387   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18388   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18389   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18390   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18391   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18392   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18393   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18394   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18395   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18396   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18397   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18398   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18399 end;
18400
18401 procedure Read_GL_NV_copy_image;
18402 begin
18403   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18404 end;
18405
18406 procedure Read_GL_NV_shader_buffer_load;
18407 begin
18408   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18409   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18410   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18411   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18412   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18413   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18414   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18415   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18416   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18417   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18418   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18419   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18420   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18421   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18422 end;
18423
18424 procedure Read_GL_NV_vertex_buffer_unified_memory;
18425 begin
18426   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18427   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18428   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18429   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18430   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18431   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18432   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18433   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18434   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18435   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18436   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18437   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18438 end;
18439
18440 procedure Read_GL_NV_gpu_program5;
18441 begin
18442   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18443   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18444 end;
18445
18446 procedure Read_GL_NV_gpu_shader5;
18447 begin
18448   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18449   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18450   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18451   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18452   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18453   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18454   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18455   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18456   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18457   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18458   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18459   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18460   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18461   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18462   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18463   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18464   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18465   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18466   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18467   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18468   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18469   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18470   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18471   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18472   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18473   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18474   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18475   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18476   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18477   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18478   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18479   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18480   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18481 end;
18482
18483 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18484 begin
18485   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18486   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18487   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18488   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18489   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18490   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18491   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18492   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18493   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18494   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18495   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18496   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18497   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18498   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18499   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18500   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18501   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18502   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18503   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18504 end;
18505
18506 procedure Read_GL_NV_vdpau_interop;
18507 begin
18508   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18509   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18510   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18511   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18512   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18513   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18514   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18515   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18516   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18517   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18518 end;
18519
18520 procedure Read_GL_NV_texture_barrier;
18521 begin
18522   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18523 end;
18524
18525 procedure Read_GL_PGI_misc_hints;
18526 begin
18527   glHintPGI := dglGetProcAddress('glHintPGI');
18528 end;
18529
18530 procedure Read_GL_SGIS_detail_texture;
18531 begin
18532   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18533   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18534 end;
18535
18536 procedure Read_GL_SGIS_fog_function;
18537 begin
18538   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18539   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18540 end;
18541
18542 procedure Read_GL_SGIS_multisample;
18543 begin
18544   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18545   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18546 end;
18547
18548 procedure Read_GL_SGIS_pixel_texture;
18549 begin
18550   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18551   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18552   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18553   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18554   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18555   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18556 end;
18557
18558 procedure Read_GL_SGIS_point_parameters;
18559 begin
18560   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18561   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18562 end;
18563
18564 procedure Read_GL_SGIS_sharpen_texture;
18565 begin
18566   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18567   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18568 end;
18569
18570 procedure Read_GL_SGIS_texture4D;
18571 begin
18572   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18573   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18574 end;
18575
18576 procedure Read_GL_SGIS_texture_color_mask;
18577 begin
18578   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18579 end;
18580
18581 procedure Read_GL_SGIS_texture_filter4;
18582 begin
18583   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18584   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18585 end;
18586
18587 procedure Read_GL_SGIX_async;
18588 begin
18589   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18590   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18591   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18592   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18593   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18594   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18595 end;
18596
18597 procedure Read_GL_SGIX_flush_raster;
18598 begin
18599   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18600 end;
18601
18602 procedure Read_GL_SGIX_fragment_lighting;
18603 begin
18604   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18605   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18606   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18607   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18608   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18609   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18610   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18611   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18612   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18613   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18614   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18615   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18616   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18617   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18618   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18619   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18620   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18621   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18622 end;
18623
18624 procedure Read_GL_SGIX_framezoom;
18625 begin
18626   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18627 end;
18628
18629 procedure Read_GL_SGIX_igloo_interface;
18630 begin
18631   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18632 end;
18633
18634 procedure Read_GL_SGIX_instruments;
18635 begin
18636   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18637   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18638   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18639   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18640   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18641   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18642 end;
18643
18644 procedure Read_GL_SGIX_list_priority;
18645 begin
18646   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18647   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18648   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18649   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18650   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18651   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18652 end;
18653
18654 procedure Read_GL_SGIX_pixel_texture;
18655 begin
18656   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18657 end;
18658
18659 procedure Read_GL_SGIX_polynomial_ffd;
18660 begin
18661   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18662   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18663   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18664   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18665 end;
18666
18667 procedure Read_GL_SGIX_reference_plane;
18668 begin
18669   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18670 end;
18671
18672 procedure Read_GL_SGIX_sprite;
18673 begin
18674   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18675   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18676   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18677   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18678 end;
18679
18680 procedure Read_GL_SGIX_tag_sample_buffer;
18681 begin
18682   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18683 end;
18684
18685 procedure Read_GL_SGI_color_table;
18686 begin
18687   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18688   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18689   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18690   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18691   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18692   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18693   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18694 end;
18695
18696 procedure Read_GL_SUNX_constant_data;
18697 begin
18698   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18699 end;
18700
18701 procedure Read_GL_SUN_global_alpha;
18702 begin
18703   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18704   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18705   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18706   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18707   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18708   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18709   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18710   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18711 end;
18712
18713 procedure Read_GL_SUN_mesh_array;
18714 begin
18715   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18716 end;
18717
18718 procedure Read_GL_SUN_triangle_list;
18719 begin
18720   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18721   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18722   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18723   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18724   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18725   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18726   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18727 end;
18728
18729 procedure Read_GL_SUN_vertex;
18730 begin
18731   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18732   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18733   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18734   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18735   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18736   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18737   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18738   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18739   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18740   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18741   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18742   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18743   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18744   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18745   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18746   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18747   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18748   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18749   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18750   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18751   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18752   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18753   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18754   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18755   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18756   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18757   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18758   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18759   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18760   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18761   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18762   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18763   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18764   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18765   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18766   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18767   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18768   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18769   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18770   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18771 end;
18772
18773 {$IFDEF DGL_WIN}
18774 procedure Read_WGL_ARB_buffer_region;
18775 begin
18776   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18777   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18778   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18779   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18780 end;
18781
18782 procedure Read_WGL_ARB_extensions_string;
18783 begin
18784   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18785 end;
18786
18787 procedure Read_WGL_ARB_make_current_read;
18788 begin
18789   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18790   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18791 end;
18792
18793 procedure Read_WGL_ARB_pbuffer;
18794 begin
18795   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18796   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18797   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18798   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18799   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18800 end;
18801
18802 procedure Read_WGL_ARB_pixel_format;
18803 begin
18804   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18805   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18806   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18807 end;
18808
18809 procedure Read_WGL_ARB_pixel_format_float;
18810 begin
18811   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18812 end;
18813
18814 procedure Read_WGL_ARB_render_texture;
18815 begin
18816   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18817   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18818   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18819 end;
18820
18821 procedure Read_WGL_ARB_create_context;
18822 begin
18823   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18824 end;
18825
18826 procedure Read_WGL_AMD_gpu_association;
18827 begin
18828   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18829   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18830   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18831   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18832   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18833   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18834   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18835   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18836   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18837 end;
18838
18839 procedure Read_WGL_EXT_display_color_table;
18840 begin
18841   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18842   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18843   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18844   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18845 end;
18846
18847 procedure Read_WGL_EXT_extensions_string;
18848 begin
18849   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18850 end;
18851
18852 procedure Read_WGL_EXT_make_current_read;
18853 begin
18854   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18855   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18856 end;
18857
18858 procedure Read_WGL_EXT_pbuffer;
18859 begin
18860   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18861   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18862   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18863   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18864   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18865 end;
18866
18867 procedure Read_WGL_EXT_pixel_format;
18868 begin
18869   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18870   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18871   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18872 end;
18873
18874 procedure Read_WGL_EXT_swap_control;
18875 begin
18876   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18877   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18878 end;
18879
18880 procedure Read_WGL_I3D_digital_video_control;
18881 begin
18882   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18883   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18884 end;
18885
18886 procedure Read_WGL_I3D_gamma;
18887 begin
18888   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18889   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18890   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18891   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18892 end;
18893
18894 procedure Read_WGL_I3D_genlock;
18895 begin
18896   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18897   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18898   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18899   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18900   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18901   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18902   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18903   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18904   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18905   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18906   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18907   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18908 end;
18909
18910 procedure Read_WGL_I3D_image_buffer;
18911 begin
18912   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18913   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18914   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18915   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18916 end;
18917
18918 procedure Read_WGL_I3D_swap_frame_lock;
18919 begin
18920   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18921   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18922   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18923   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18924 end;
18925
18926 procedure Read_WGL_I3D_swap_frame_usage;
18927 begin
18928   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18929   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18930   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18931   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18932 end;
18933
18934 procedure Read_WGL_NV_vertex_array_range;
18935 begin
18936   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18937   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18938 end;
18939
18940 procedure Read_WGL_NV_present_video;
18941 begin
18942   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18943   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18944   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18945 end;
18946
18947 procedure Read_WGL_NV_video_output;
18948 begin
18949   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18950   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18951   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18952   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18953   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18954   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18955 end;
18956
18957 procedure Read_WGL_NV_swap_group;
18958 begin
18959   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18960   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18961   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18962   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18963   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18964   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18965 end;
18966
18967 procedure Read_WGL_NV_gpu_affinity;
18968 begin
18969   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18970   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18971   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18972   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18973   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18974 end;
18975
18976 procedure Read_WGL_NV_video_capture;
18977 begin
18978   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18979   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18980   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18981   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18982   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18983 end;
18984
18985 procedure Read_WGL_NV_copy_image;
18986 begin
18987   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18988 end;
18989
18990 procedure Read_WGL_NV_DX_interop;
18991 begin
18992   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
18993   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
18994   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
18995   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
18996   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
18997   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
18998   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
18999   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
19000 end;
19001
19002
19003 procedure Read_WGL_OML_sync_control;
19004 begin
19005   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
19006   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
19007   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
19008   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
19009   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
19010   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
19011 end;
19012
19013 procedure Read_WGL_3DL_stereo_control;
19014 begin
19015   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
19016 end;
19017
19018 procedure Read_WIN_draw_range_elements;
19019 begin
19020   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
19021 end;
19022
19023 procedure Read_WIN_swap_hint;
19024 begin
19025   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
19026 end;
19027 {$ENDIF}
19028
19029
19030 procedure ReadExtensions;
19031 begin
19032   ReadOpenGLCore;
19033
19034   Read_GL_3DFX_tbuffer;
19035   Read_GL_APPLE_element_array;
19036   Read_GL_APPLE_fence;
19037   Read_GL_APPLE_vertex_array_object;
19038   Read_GL_APPLE_vertex_array_range;
19039   Read_GL_APPLE_texture_range;
19040   Read_GL_APPLE_vertex_program_evaluators;
19041   Read_GL_APPLE_object_purgeable;
19042   Read_GL_ARB_matrix_palette;
19043   Read_GL_ARB_multitexture;
19044   Read_GL_ARB_point_parameters;
19045   Read_GL_ARB_texture_compression;
19046   Read_GL_ARB_transpose_matrix;
19047   Read_GL_ARB_vertex_blend;
19048   Read_GL_ARB_vertex_buffer_object;
19049   Read_GL_ARB_vertex_program;
19050   Read_GL_ARB_window_pos;
19051   Read_GL_ARB_color_buffer_float;
19052   Read_GL_ARB_Shader_Objects;
19053   Read_GL_ARB_occlusion_query;
19054   Read_GL_ARB_draw_instanced;
19055   Read_GL_ARB_framebuffer_object;
19056   Read_GL_ARB_geometry_shader4;
19057   Read_GL_ARB_instanced_arrays;
19058   Read_GL_ARB_map_buffer_range;
19059   Read_GL_ARB_texture_buffer_object;
19060   Read_GL_ARB_vertex_array_object;
19061   Read_GL_ARB_uniform_buffer_object;
19062   Read_GL_ARB_copy_buffer;
19063   Read_GL_ARB_draw_elements_base_vertex;
19064   Read_GL_ARB_provoking_vertex;
19065   Read_GL_ARB_sync;
19066   Read_GL_ARB_texture_multisample;
19067   Read_GL_ARB_draw_buffers_blend;
19068   Read_GL_ARB_sample_shading;
19069   Read_GL_ARB_shading_language_include;
19070   Read_GL_ARB_sparse_texture;
19071   Read_GL_ARB_sparse_buffer;
19072   Read_GL_ARB_blend_func_extended;
19073   Read_GL_ARB_sampler_objects;
19074   Read_GL_ARB_timer_query;
19075   Read_GL_ARB_vertex_type_2_10_10_10_rev;
19076   Read_GL_ARB_draw_indirect;
19077   Read_GL_ARB_gpu_shader_fp64;
19078   Read_GL_ARB_shader_subroutine;
19079   Read_GL_ARB_tessellation_shader;
19080   Read_GL_ARB_transform_feedback2;
19081   Read_GL_ARB_transform_feedback3;
19082   Read_GL_ARB_ES2_compatibility;
19083   Read_GL_ARB_get_program_binary;
19084   Read_GL_ARB_separate_shader_objects;
19085   Read_GL_ARB_vertex_attrib_64bit;
19086   Read_GL_ARB_viewport_array;
19087   Read_GL_ARB_cl_event;
19088   Read_GL_ARB_compute_variable_group_size;
19089   Read_GL_ARB_debug_output;
19090   Read_GL_ARB_robustness;
19091   //
19092   Read_GL_ATI_draw_buffers;
19093   Read_GL_ATI_element_array;
19094   Read_GL_ATI_envmap_bumpmap;
19095   Read_GL_ATI_fragment_shader;
19096   Read_GL_ATI_map_object_buffer;
19097   Read_GL_ATI_pn_triangles;
19098   Read_GL_ATI_separate_stencil;
19099   Read_GL_ATI_vertex_array_object;
19100   Read_GL_ATI_vertex_attrib_array_object;
19101   Read_GL_ATI_vertex_streams;
19102   Read_GL_AMD_performance_monitor;
19103   Read_GL_AMD_vertex_shader_tesselator;
19104   Read_GL_AMD_draw_buffers_blend;
19105   Read_GL_AMD_name_gen_delete;
19106   Read_GL_AMD_debug_output;
19107   Read_GL_AMD_stencil_operation_extended;
19108   Read_GL_EXT_blend_color;
19109   Read_GL_EXT_blend_func_separate;
19110   Read_GL_EXT_blend_minmax;
19111   Read_GL_EXT_color_subtable;
19112   Read_GL_EXT_compiled_vertex_array;
19113   Read_GL_EXT_convolution;
19114   Read_GL_EXT_coordinate_frame;
19115   Read_GL_EXT_copy_texture;
19116   Read_GL_EXT_cull_vertex;
19117   Read_GL_EXT_draw_range_elements;
19118   Read_GL_EXT_fog_coord;
19119   Read_GL_EXT_framebuffer_object;
19120   Read_GL_EXT_histogram;
19121   Read_GL_EXT_index_func;
19122   Read_GL_EXT_index_material;
19123   Read_GL_EXT_multi_draw_arrays;
19124   Read_GL_EXT_multisample;
19125   Read_GL_EXT_paletted_texture;
19126   Read_GL_EXT_pixel_transform;
19127   Read_GL_EXT_point_parameters;
19128   Read_GL_EXT_polygon_offset;
19129   Read_GL_EXT_secondary_color;
19130   Read_GL_EXT_stencil_two_side;
19131   Read_GL_EXT_subtexture;
19132   Read_GL_EXT_texture3D;
19133   Read_GL_EXT_texture_object;
19134   Read_GL_EXT_texture_perturb_normal;
19135   Read_GL_EXT_vertex_array;
19136   Read_GL_EXT_vertex_shader;
19137   Read_GL_EXT_vertex_weighting;
19138   Read_GL_EXT_depth_bounds_test;
19139   Read_GL_EXT_blend_equation_separate;
19140   Read_GL_EXT_stencil_clear_tag;
19141   Read_GL_EXT_framebuffer_blit;
19142   Read_GL_EXT_framebuffer_multisample;
19143   Read_GL_EXT_timer_query;
19144   Read_GL_EXT_gpu_program_parameters;
19145   Read_GL_EXT_bindable_uniform;
19146   Read_GL_EXT_draw_buffers2;
19147   Read_GL_EXT_draw_instanced;
19148   Read_GL_EXT_geometry_shader4;
19149   Read_GL_EXT_gpu_shader4;
19150   Read_GL_EXT_texture_array;
19151   Read_GL_EXT_texture_buffer_object;
19152   Read_GL_EXT_texture_integer;
19153   Read_GL_EXT_transform_feedback;
19154   Read_GL_EXT_direct_state_access;
19155   Read_GL_EXT_separate_shader_objects;
19156   Read_GL_EXT_shader_image_load_store;
19157   Read_GL_EXT_vertex_attrib_64bit;
19158   Read_GL_HP_image_transform;
19159   Read_GL_IBM_multimode_draw_arrays;
19160   Read_GL_IBM_vertex_array_lists;
19161   Read_GL_INGR_blend_func_separate;
19162   Read_GL_INTEL_parallel_arrays;
19163   Read_GL_KHR_blend_equation_advanced;
19164   Read_GL_MESA_resize_buffers;
19165   Read_GL_MESA_window_pos;
19166   Read_GL_NV_evaluators;
19167   Read_GL_NV_fence;
19168   Read_GL_NV_fragment_program;
19169   Read_GL_NV_half_float;
19170   Read_GL_NV_occlusion_query;
19171   Read_GL_NV_pixel_data_range;
19172   Read_GL_NV_point_sprite;
19173   Read_GL_NV_primitive_restart;
19174   Read_GL_NV_register_combiners;
19175   Read_GL_NV_register_combiners2;
19176   Read_GL_NV_vertex_array_range;
19177   Read_GL_NV_vertex_program;
19178   Read_GL_NV_depth_buffer_float;
19179   Read_GL_NV_framebuffer_multisample_coverage;
19180   Read_GL_NV_geometry_program4;
19181   Read_GL_NV_gpu_program4;
19182   Read_GL_NV_parameter_buffer_object;
19183   Read_GL_NV_transform_feedback;
19184   Read_GL_NV_conditional_render;
19185   Read_GL_NV_present_video;
19186   Read_GL_NV_explicit_multisample;
19187   Read_GL_NV_transform_feedback2;
19188   Read_GL_NV_video_capture;
19189   Read_GL_NV_copy_image;
19190   Read_GL_NV_shader_buffer_load;
19191   Read_GL_NV_vertex_buffer_unified_memory;
19192   Read_GL_NV_gpu_program5;
19193   Read_GL_NV_gpu_shader5;
19194   Read_GL_NV_vertex_attrib_integer_64bit;
19195   Read_GL_NV_vdpau_interop;
19196   Read_GL_NV_texture_barrier;
19197   Read_GL_NV_path_rendering;
19198   Read_GL_NV_bindless_texture;
19199   Read_GL_PGI_misc_hints;
19200   Read_GL_SGIS_detail_texture;
19201   Read_GL_SGIS_fog_function;
19202   Read_GL_SGIS_multisample;
19203   Read_GL_SGIS_pixel_texture;
19204   Read_GL_SGIS_point_parameters;
19205   Read_GL_SGIS_sharpen_texture;
19206   Read_GL_SGIS_texture4D;
19207   Read_GL_SGIS_texture_color_mask;
19208   Read_GL_SGIS_texture_filter4;
19209   Read_GL_SGIX_async;
19210   Read_GL_SGIX_flush_raster;
19211   Read_GL_SGIX_fragment_lighting;
19212   Read_GL_SGIX_framezoom;
19213   Read_GL_SGIX_igloo_interface;
19214   Read_GL_SGIX_instruments;
19215   Read_GL_SGIX_list_priority;
19216   Read_GL_SGIX_pixel_texture;
19217   Read_GL_SGIX_polynomial_ffd;
19218   Read_GL_SGIX_reference_plane;
19219   Read_GL_SGIX_sprite;
19220   Read_GL_SGIX_tag_sample_buffer;
19221   Read_GL_SGI_color_table;
19222   Read_GL_SUNX_constant_data;
19223   Read_GL_SUN_global_alpha;
19224   Read_GL_SUN_mesh_array;
19225   Read_GL_SUN_triangle_list;
19226   Read_GL_SUN_vertex;
19227
19228 {$IFDEF DGL_WIN}
19229   Read_WGL_ARB_buffer_region;
19230   Read_WGL_ARB_extensions_string;
19231   Read_WGL_ARB_make_current_read;
19232   Read_WGL_ARB_pbuffer;
19233   Read_WGL_ARB_pixel_format;
19234   Read_WGL_ARB_pixel_format_float;
19235   Read_WGL_ARB_render_texture;
19236   Read_WGL_ARB_create_context;
19237   Read_WGL_AMD_gpu_association;
19238   Read_WGL_EXT_display_color_table;
19239   Read_WGL_EXT_extensions_string;
19240   Read_WGL_EXT_make_current_read;
19241   Read_WGL_EXT_pbuffer;
19242   Read_WGL_EXT_pixel_format;
19243   Read_WGL_EXT_swap_control;
19244   Read_WGL_I3D_digital_video_control;
19245   Read_WGL_I3D_gamma;
19246   Read_WGL_I3D_genlock;
19247   Read_WGL_I3D_image_buffer;
19248   Read_WGL_I3D_swap_frame_lock;
19249   Read_WGL_I3D_swap_frame_usage;
19250   Read_WGL_NV_vertex_array_range;
19251   Read_WGL_NV_present_video;
19252   Read_WGL_NV_video_output;
19253   Read_WGL_NV_swap_group;
19254   Read_WGL_NV_gpu_affinity;
19255   Read_WGL_NV_video_capture;
19256   Read_WGL_NV_copy_image;
19257   Read_WGL_NV_DX_interop;
19258   Read_WGL_OML_sync_control;
19259   Read_WGL_3DL_stereo_control;
19260
19261   Read_WIN_draw_range_elements;
19262   Read_WIN_swap_hint;
19263 {$ENDIF}
19264
19265   ExtensionsRead := True;
19266 end;
19267
19268 // =============================================================================
19269 //  ReadCoreVersion
19270 // =============================================================================
19271
19272 procedure ReadCoreVersion;
19273 var
19274   AnsiBuffer: AnsiString;
19275   Buffer: String;
19276   MajorVersion, MinorVersion: Integer;
19277
19278   procedure TrimAndSplitVersionString(Buffer: String; var Max, Min: Integer);
19279     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19280     // at least however "Major.Minor".
19281   var
19282     Separator: Integer;
19283   begin
19284     try
19285       // There must be at least one dot to separate major and minor version number.
19286       Separator := Pos('.', Buffer);
19287       // At least one number must be before and one after the dot.
19288       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19289       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19290       begin
19291         // OK, it's a valid version string. Now remove unnecessary parts.
19292         Dec(Separator);
19293         // Find last non-numeric character before version number.
19294         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19295           Dec(Separator);
19296         // Delete leading characters which do not belong to the version string.
19297         Delete(Buffer, 1, Separator);
19298         Separator := Pos('.', Buffer) + 1;
19299         // Find first non-numeric character after version number
19300         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19301           Inc(Separator);
19302         // delete trailing characters not belonging to the version string
19303         Delete(Buffer, Separator, 255);
19304         // Now translate the numbers.
19305         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19306         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19307         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19308       end
19309       else
19310         Abort;
19311     except
19312       Min := 0;
19313       Max := 0;
19314     end;
19315   end;
19316
19317
19318 begin
19319   // determine version of implementation
19320   // GL
19321   if not Assigned(@glGetString) then
19322     glGetString := dglGetProcAddress('glGetString');
19323
19324   AnsiBuffer := glGetString(GL_VERSION);
19325   Buffer := String(AnsiBuffer);
19326
19327   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19328
19329   GL_VERSION_1_0 := True;
19330   GL_VERSION_1_1 := False;
19331   GL_VERSION_1_2 := False;
19332   GL_VERSION_1_3 := False;
19333   GL_VERSION_1_4 := False;
19334   GL_VERSION_1_5 := False;
19335   GL_VERSION_2_0 := False;
19336   GL_VERSION_2_1 := False;
19337   GL_VERSION_3_0 := False;
19338   GL_VERSION_3_1 := False;
19339   GL_VERSION_3_2 := False;
19340   GL_VERSION_3_3 := False;
19341   GL_VERSION_4_0 := False;
19342   GL_VERSION_4_1 := False;
19343   GL_VERSION_4_2 := False;
19344   GL_VERSION_4_3 := False;
19345   GL_VERSION_4_4 := False;
19346   GL_VERSION_4_5 := False;
19347
19348   if MajorVersion = 1 then
19349   begin
19350     if MinorVersion >= 1 then
19351       GL_VERSION_1_1 := True;
19352     if MinorVersion >= 2 then
19353       GL_VERSION_1_2 := True;
19354     if MinorVersion >= 3 then
19355       GL_VERSION_1_3 := True;
19356     if MinorVersion >= 4 then
19357       GL_VERSION_1_4 := True;
19358     if MinorVersion >= 5 then
19359       GL_VERSION_1_5 := True;
19360   end;
19361
19362   if MajorVersion >= 2 then
19363   begin
19364     GL_VERSION_1_1 := True;
19365     GL_VERSION_1_2 := True;
19366     GL_VERSION_1_3 := True;
19367     GL_VERSION_1_4 := True;
19368     GL_VERSION_1_5 := True;
19369     GL_VERSION_2_0 := True;
19370
19371     if MinorVersion >= 1 then
19372       GL_VERSION_2_1 := True;
19373   end;
19374
19375   if MajorVersion >= 3 then
19376   begin
19377     GL_VERSION_2_1 := True;
19378     GL_VERSION_3_0 := True;
19379
19380     if MinorVersion >= 1 then
19381       GL_VERSION_3_1 := True;
19382     if MinorVersion >= 2 then
19383       GL_VERSION_3_2 := True;
19384     if MinorVersion >= 3 then
19385       GL_VERSION_3_3 := True;
19386   end;
19387
19388   if MajorVersion >= 4 then
19389   begin
19390     GL_VERSION_3_1 := True;
19391     GL_VERSION_3_2 := True;
19392     GL_VERSION_3_3 := True;
19393     GL_VERSION_4_0 := True;
19394
19395     if MinorVersion >= 1 then
19396       GL_VERSION_4_1 := True;
19397     if MinorVersion >= 2 then
19398       GL_VERSION_4_2 := True;
19399     if MinorVersion >= 3 then
19400       GL_VERSION_4_3 := True;
19401     if MinorVersion >= 4 then
19402       GL_VERSION_4_4 := True;
19403     if MinorVersion >= 4 then
19404       GL_VERSION_4_5:= True;
19405   end;
19406
19407   // GLU
19408   GLU_VERSION_1_1 := False;
19409   GLU_VERSION_1_2 := False;
19410   GLU_VERSION_1_3 := False;
19411
19412   if Assigned(gluGetString) then begin
19413     AnsiBuffer := gluGetString(GLU_VERSION);
19414     Buffer := String(AnsiBuffer);
19415
19416     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19417
19418     GLU_VERSION_1_1 := True;
19419
19420     if MinorVersion >= 2 then
19421       GLU_VERSION_1_2 := True;
19422
19423     if MinorVersion >= 3 then
19424       GLU_VERSION_1_3 := True;
19425   end;
19426 end;
19427
19428
19429 // =============================================================================
19430 //  ReadImplementationProperties
19431 // =============================================================================
19432
19433 procedure ReadImplementationProperties;
19434 var
19435   Buffer: Ansistring;
19436 begin
19437   ReadCoreVersion;
19438
19439   // Check all extensions
19440   Buffer := Int_GetExtensionString;
19441
19442   // 3DFX
19443   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19444   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19445   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19446
19447   // APPLE
19448   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19449   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19450   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19451   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19452   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19453   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19454   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19455   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19456   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19457   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19458   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19459   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19460   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19461   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19462   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19463
19464   // ARB
19465   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19466   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19467   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19468   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19469   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19470   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19471   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19472   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19473   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19474   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19475   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19476   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19477   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19478   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19479   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19480   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19481   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19482   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19483   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19484   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19485   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19486   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19487   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19488   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19489   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19490   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19491   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19492   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19493   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19494   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19495   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19496   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19497   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19498   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19499   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19500   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19501   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19502   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19503   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19504   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19505   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19506   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19507   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19508   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19509   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19510   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19511   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19512   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19513   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19514   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19515   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19516   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19517   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19518   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19519   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19520   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19521   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19522   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19523   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19524   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19525   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19526   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19527   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19528   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19529   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19530   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19531   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19532   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19533   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19534   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19535   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19536   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19537   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19538   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19539   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19540   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19541   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19542   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19543   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19544   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19545   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19546   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19547   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19548   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19549   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19550   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19551   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19552   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19553   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19554   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19555   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19556   GL_ARB_compute_variable_group_size := Int_CheckExtension(Buffer, 'GL_ARB_compute_variable_group_size');
19557
19558   // GL 4.2
19559   GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19560   GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19561   GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19562   GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19563   GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19564   GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19565   GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19566   GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19567   GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19568   GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19569   GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19570
19571   // GL 4.3
19572   GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19573   GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19574   GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19575   GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19576   GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19577   GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19578   GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19579   GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19580   GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19581   GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19582   GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19583   GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19584   GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19585   GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19586   GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19587   GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19588   GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19589   GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19590   GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19591   GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19592   GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19593   GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19594   GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19595   GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19596   GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19597   GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19598
19599   // GL 4.4
19600   GL_ARB_buffer_storage := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19601   GL_ARB_clear_texture := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19602   GL_ARB_enhanced_layouts := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19603   GL_ARB_multi_bind := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19604   GL_ARB_query_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19605   GL_ARB_texture_mirror_clamp_to_edge:= Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19606   GL_ARB_texture_stencil8 := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19607   GL_ARB_vertex_type_10f_11f_11f_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19608   GL_ARB_bindless_texture := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
19609   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19610
19611   // GL 4.5
19612   GL_ARB_clip_control := Int_CheckExtension(Buffer, 'GL_ARB_clip_control');
19613   GL_ARB_cull_distance := Int_CheckExtension(Buffer, 'GL_ARB_cull_distance');
19614   GL_ARB_ES3_1_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_1_compatibility');
19615   GL_ARB_conditional_render_inverted := Int_CheckExtension(Buffer, 'GL_ARB_conditional_render_inverted');
19616   GL_KHR_context_flush_control := Int_CheckExtension(Buffer, 'GL_KHR_context_flush_control');
19617   GL_ARB_derivative_control := Int_CheckExtension(Buffer, 'GL_ARB_derivative_control');
19618   GL_ARB_direct_state_access := Int_CheckExtension(Buffer, 'GL_ARB_direct_state_access');
19619   GL_ARB_get_texture_sub_image := Int_CheckExtension(Buffer, 'GL_ARB_get_texture_sub_image');
19620   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19621   GL_ARB_shader_texture_image_samples := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_image_samples');
19622   GL_ARB_texture_barrier := Int_CheckExtension(Buffer, 'GL_ARB_texture_barrier');
19623
19624   // ATI/AMD
19625   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19626   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19627   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19628   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19629   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19630   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19631   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19632   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19633   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19634   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19635   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19636   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19637   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19638   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19639   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19640   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19641   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19642   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19643   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19644   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19645   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19646   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19647   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19648   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19649   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19650   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19651   // 4.3
19652   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19653   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19654   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19655   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19656   GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19657
19658   // EXT
19659   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19660   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19661   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19662   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19663   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19664   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19665   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19666   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19667   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19668   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19669   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19670   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19671   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19672   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19673   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19674   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19675   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19676   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19677   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19678   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19679   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19680   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19681   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19682   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19683   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19684   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19685   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19686   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19687   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19688   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19689   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19690   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19691   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19692   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19693   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19694   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19695   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19696   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19697   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19698   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19699   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19700   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19701   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19702   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19703   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19704   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19705   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19706   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19707   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19708   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19709   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19710   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19711   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19712   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19713   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19714   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19715   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19716   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19717   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19718   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19719   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19720   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19721   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19722   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19723   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19724   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19725   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19726   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19727   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19728   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19729   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19730   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19731   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19732   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19733   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19734   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19735   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19736   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19737   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19738   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19739   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19740   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19741   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19742   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19743   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19744   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19745   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19746   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19747   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19748   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19749   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19750   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19751   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19752   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19753
19754   // HP
19755   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19756   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19757   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19758   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19759
19760   // IBM
19761   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19762   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19763   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19764   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19765   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19766
19767   // INGR
19768   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19769   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19770   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19771   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19772
19773   // INTEL
19774   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19775   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19776
19777   // MESA
19778   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19779   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19780
19781   // Khronos
19782   // 4.5
19783   GL_KHR_blend_equation_advanced := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced');
19784   GL_KHR_blend_equation_advanced_coherent := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
19785   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19786   GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior');
19787
19788   // NVIDIA
19789   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19790   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19791   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19792   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19793   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19794   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19795   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19796   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19797   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19798   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19799   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19800   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19801   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19802   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19803   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19804   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19805   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19806   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19807   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19808   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19809   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19810   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19811   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19812   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19813   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19814   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19815   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19816   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19817   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19818   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19819   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19820   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19821   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19822   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19823   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19824   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19825   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19826   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19827   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19828   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19829   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19830   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19831   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19832   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19833   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19834   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19835   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19836   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19837   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19838   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19839   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19840   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19841   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19842   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19843   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19844   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19845   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19846   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19847   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19848   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19849   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19850   // 4.3
19851   GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19852   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19853   GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19854
19855   // OML
19856   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19857   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19858   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19859
19860   // PGI
19861   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19862   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19863
19864   // REND
19865   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19866
19867   // S3
19868   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19869
19870   // SGIS
19871   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19872   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19873   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19874   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19875   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19876   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19877   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19878   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19879   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19880   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19881   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19882   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19883   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19884   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19885   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19886
19887   // SGIX
19888   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19889   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19890   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19891   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19892   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19893   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19894   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19895   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19896   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19897   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19898   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19899   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19900   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19901   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19902   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19903   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19904   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19905   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19906   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19907   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19908   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19909   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19910   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19911   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19912   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19913   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19914   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19915   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19916   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19917   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19918   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19919   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19920   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19921   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19922   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19923   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19924   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19925   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19926   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19927   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19928   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19929   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19930
19931   // SGI
19932   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19933   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19934   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19935   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19936
19937   // SUN
19938   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19939   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19940   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19941   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19942   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19943   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19944   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19945
19946   // WIN
19947   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19948   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19949
19950   {$IFDEF DGL_WIN}
19951   // WGL
19952   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19953   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19954   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19955   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19956   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19957   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19958   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19959   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19960   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19961   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19962   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19963   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19964   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19965   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19966   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19967   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19968   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19969   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19970   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19971   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19972   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19973   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19974   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19975   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19976   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19977   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19978   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19979   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19980   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19981   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19982   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19983   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19984   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19985   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19986   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19987   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19988   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19989   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19990   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19991   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19992   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19993   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19994   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
19995   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
19996   WGL_ARB_context_flush_control := Int_CheckExtension(Buffer, 'WGL_ARB_context_flush_control');
19997   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
19998   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
19999   {$ENDIF}
20000
20001   {$IFDEF DGL_LINUX}
20002   // GLX
20003   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
20004   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
20005   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
20006   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
20007   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
20008   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
20009   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
20010   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
20011   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
20012   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
20013   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
20014   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
20015   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
20016   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
20017   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
20018   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
20019   GLX_ARB_context_flush_control := Int_CheckExtension(Buffer, 'GLX_ARB_context_flush_control');
20020   {$ENDIF}
20021
20022   ImplementationRead := True;
20023 end;
20024
20025 {$IFDEF DGL_WIN}
20026 // =============================================================================
20027 // RaiseLastOSError
20028 // =============================================================================
20029 // Needed for compatibility with older Delphiversions
20030 // =============================================================================
20031
20032 procedure RaiseLastOSError;
20033 begin
20034 {$IFDEF FPC}
20035   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
20036 {$ELSE}
20037   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
20038     SysUtils.RaiseLastWin32Error;
20039   {$ELSE}
20040     SysUtils.RaiseLastOSError;
20041   {$ENDIF}
20042 {$ENDIF}
20043 end;
20044
20045 // =============================================================================
20046 // CreateRenderingContext
20047 // =============================================================================
20048
20049 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20050 const
20051   OBJ_MEMDC = 10;
20052   OBJ_ENHMETADC = 12;
20053   OBJ_METADC = 4;
20054   PFD_DOUBLEBUFFER = $00000001;
20055   PFD_STEREO = $00000002;
20056   PFD_DRAW_TO_WINDOW = $00000004;
20057   PFD_DRAW_TO_BITMAP = $00000008;
20058   PFD_SUPPORT_GDI = $00000010;
20059   PFD_SUPPORT_OPENGL = $00000020;
20060   PFD_TYPE_RGBA = 0;
20061   PFD_MAIN_PLANE = 0;
20062   PFD_OVERLAY_PLANE = 1;
20063   PFD_UNDERLAY_PLANE = LongWord(-1);
20064   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20065 var
20066   PFDescriptor: TPixelFormatDescriptor;
20067   PixelFormat: Integer;
20068   AType: DWORD;
20069 begin
20070   if GL_LibHandle = nil then
20071     InitOpenGL;
20072
20073   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20074
20075   with PFDescriptor do
20076   begin
20077     nSize := SizeOf(PFDescriptor);
20078     nVersion := 1;
20079     dwFlags := PFD_SUPPORT_OPENGL;
20080
20081     AType := GetObjectType(DC);
20082
20083     if AType = 0 then
20084       RaiseLastOSError;
20085
20086     if AType in MemoryDCs then
20087       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20088     else
20089       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20090
20091     if opDoubleBuffered in Options then
20092       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20093
20094     if opGDI in Options then
20095       dwFlags := dwFlags or PFD_SUPPORT_GDI;
20096
20097     if opStereo in Options then
20098       dwFlags := dwFlags or PFD_STEREO;
20099
20100     iPixelType := PFD_TYPE_RGBA;
20101     cColorBits := ColorBits;
20102     cDepthBits := zBits;
20103     cStencilBits := StencilBits;
20104     cAccumBits := AccumBits;
20105     cAuxBuffers := AuxBuffers;
20106
20107     if Layer = 0 then
20108       iLayerType := PFD_MAIN_PLANE
20109     else
20110     if Layer > 0 then
20111       iLayerType := PFD_OVERLAY_PLANE
20112     else
20113       iLayerType := Byte(PFD_UNDERLAY_PLANE);
20114   end;
20115
20116   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20117
20118   if PixelFormat = 0 then
20119     RaiseLastOSError;
20120
20121   if GetPixelFormat(DC) <> PixelFormat then
20122     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20123       RaiseLastOSError;
20124
20125   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20126
20127   Result := wglCreateContext(DC);
20128
20129   if Result = 0 then
20130     RaiseLastOSError
20131   else
20132     LastPixelFormat := 0;
20133 end;
20134
20135 // =============================================================================
20136 // CreateRenderingContextVersion
20137 // =============================================================================
20138 //  Creates a context for the more recent OpenGL versions (3.0) and up
20139 //  For that we first need to get a normal GL context for getting the
20140 //  function pointer to wglCreateContextAttribsARB first
20141 // =============================================================================
20142 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20143 const
20144   OBJ_MEMDC          = 10;
20145   OBJ_ENHMETADC      = 12;
20146   OBJ_METADC         = 4;
20147   PFD_DOUBLEBUFFER   = $00000001;
20148   PFD_STEREO         = $00000002;
20149   PFD_DRAW_TO_WINDOW = $00000004;
20150   PFD_DRAW_TO_BITMAP = $00000008;
20151   PFD_SUPPORT_GDI    = $00000010;
20152   PFD_SUPPORT_OPENGL = $00000020;
20153   PFD_TYPE_RGBA      = 0;
20154   PFD_MAIN_PLANE     = 0;
20155   PFD_OVERLAY_PLANE  = 1;
20156   PFD_UNDERLAY_PLANE = LongWord(-1);
20157   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20158 var
20159   PFDescriptor : TPixelFormatDescriptor;
20160   PixelFormat  : Integer;
20161   AType        : DWORD;
20162   LegacyRC     : HGLRC;
20163   Attribs      : array of Integer;
20164 begin
20165   if GL_LibHandle = nil then
20166         InitOpenGL;
20167
20168   if not Assigned(GL_LibHandle) then
20169         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
20170
20171   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20172
20173   with PFDescriptor do
20174     begin
20175       nSize    := SizeOf(PFDescriptor);
20176       nVersion := 1;
20177       dwFlags  := PFD_SUPPORT_OPENGL;
20178       AType    := GetObjectType(DC);
20179
20180       if AType = 0 then
20181         RaiseLastOSError;
20182
20183       if AType in MemoryDCs then
20184         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20185       else
20186         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20187
20188       if opDoubleBuffered in Options then
20189         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20190
20191       if opGDI in Options then
20192         dwFlags := dwFlags or PFD_SUPPORT_GDI;
20193
20194       if opStereo in Options then
20195         dwFlags := dwFlags or PFD_STEREO;
20196
20197       iPixelType   := PFD_TYPE_RGBA;
20198       cColorBits   := ColorBits;
20199       cDepthBits   := zBits;
20200       cStencilBits := StencilBits;
20201       cAccumBits   := AccumBits;
20202       cAuxBuffers  := AuxBuffers;
20203
20204       if Layer = 0 then
20205         iLayerType := PFD_MAIN_PLANE
20206       else
20207         if Layer > 0 then
20208           iLayerType := PFD_OVERLAY_PLANE
20209         else
20210           iLayerType := Byte(PFD_UNDERLAY_PLANE);
20211     end;
20212
20213   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20214
20215   if PixelFormat = 0 then
20216         RaiseLastOSError;
20217
20218   if GetPixelFormat(DC) <> PixelFormat then
20219         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20220                 RaiseLastOSError;
20221
20222   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20223
20224   // Create legacy render context first for we need function pointers to
20225   // create new OpenGL render contexts
20226   LegacyRC := wglCreateContext(DC);
20227   wglMakeCurrent(DC, LegacyRC);
20228
20229   // Set attributes to describe our requested context
20230   SetLength(Attribs, 5);
20231   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
20232   Attribs[1] := MajorVersion;
20233   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
20234   Attribs[3] := MinorVersion;
20235
20236   // Add context flag for forward compatible context
20237   //  Forward compatible means no more support for legacy functions like
20238   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
20239   if ForwardCompatible then
20240     begin
20241       SetLength(Attribs, Length(Attribs)+2);
20242       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
20243       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
20244     end;
20245
20246   // Attribute flags must be finalized with a zero
20247   Attribs[High(Attribs)] := 0;
20248
20249   // Get function pointer for new context creation function
20250   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20251
20252   if not Assigned(wglCreateContextAttribsARB) then
20253     begin
20254       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20255       wglDeleteContext(LegacyRC);
20256       exit;
20257     end;
20258
20259   // Create context
20260   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20261
20262   if Result = 0 then
20263     begin
20264       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20265       wglDeleteContext(LegacyRC);
20266       exit;
20267     end;
20268
20269   wglDeleteContext(LegacyRC);
20270
20271   if Result = 0 then
20272         RaiseLastOSError
20273   else
20274         LastPixelFormat := 0;
20275 end;
20276
20277 // =============================================================================
20278 // DestroyRenderingContext
20279 // =============================================================================
20280
20281 procedure DestroyRenderingContext(RC: HGLRC);
20282 begin
20283   wglDeleteContext(RC);
20284 end;
20285
20286
20287 // =============================================================================
20288 // ActivateRenderingContext
20289 // =============================================================================
20290
20291 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20292 begin
20293   Assert((DC <> 0), 'DC must not be 0');
20294   Assert((RC <> 0), 'RC must not be 0');
20295
20296   wglMakeCurrent(DC, RC);
20297
20298   {$ifdef DGL_TINY_HEADER}
20299   ReadCoreVersion;
20300   {$else}
20301   ReadImplementationProperties;
20302
20303   if (loadext) then
20304     ReadExtensions;
20305   {$endif}
20306 end;
20307
20308 // =============================================================================
20309 // DeactivateRenderingContext
20310 // =============================================================================
20311
20312 procedure DeactivateRenderingContext;
20313 begin
20314   wglMakeCurrent(0, 0);
20315 end;
20316 {$ENDIF}
20317
20318
20319 initialization
20320
20321 {$IFDEF CPU386}
20322   Set8087CW($133F);
20323 {$ENDIF}
20324
20325 finalization
20326
20327 end.
20328