* fixed some compiler warnings in dglOpenGL.pas
[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_CONSTANT_COLOR = $8001;
3015   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3016   GL_CONSTANT_ALPHA = $8003;
3017   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3018   GL_BLEND_COLOR = $8005;
3019   GL_FUNC_ADD = $8006;
3020   GL_MIN = $8007;
3021   GL_MAX = $8008;
3022   GL_BLEND_EQUATION = $8009;
3023   GL_FUNC_SUBTRACT = $800A;
3024   GL_FUNC_REVERSE_SUBTRACT = $800B;
3025 {$ifdef DGL_DEPRECATED}
3026   GL_CONVOLUTION_1D = $8010;
3027   GL_CONVOLUTION_2D = $8011;
3028   GL_SEPARABLE_2D = $8012;
3029   GL_CONVOLUTION_BORDER_MODE = $8013;
3030   GL_CONVOLUTION_FILTER_SCALE = $8014;
3031   GL_CONVOLUTION_FILTER_BIAS = $8015;
3032   GL_REDUCE = $8016;
3033   GL_CONVOLUTION_FORMAT = $8017;
3034   GL_CONVOLUTION_WIDTH = $8018;
3035   GL_CONVOLUTION_HEIGHT = $8019;
3036   GL_MAX_CONVOLUTION_WIDTH = $801A;
3037   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3038   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3039   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3040   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3041   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3042   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3043   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3044   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3045   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3046   GL_HISTOGRAM = $8024;
3047   GL_PROXY_HISTOGRAM = $8025;
3048   GL_HISTOGRAM_WIDTH = $8026;
3049   GL_HISTOGRAM_FORMAT = $8027;
3050   GL_HISTOGRAM_RED_SIZE = $8028;
3051   GL_HISTOGRAM_GREEN_SIZE = $8029;
3052   GL_HISTOGRAM_BLUE_SIZE = $802A;
3053   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3054   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3055   GL_HISTOGRAM_SINK = $802D;
3056   GL_MINMAX = $802E;
3057   GL_MINMAX_FORMAT = $802F;
3058   GL_MINMAX_SINK = $8030;
3059   GL_TABLE_TOO_LARGE = $8031;
3060   GL_COLOR_MATRIX = $80B1;
3061   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3062   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3063   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3064   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3065   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3066   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3067   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3068   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3069   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3070   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3071   GL_COLOR_TABLE = $80D0;
3072   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3073   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3074   GL_PROXY_COLOR_TABLE = $80D3;
3075   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3076   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3077   GL_COLOR_TABLE_SCALE = $80D6;
3078   GL_COLOR_TABLE_BIAS = $80D7;
3079   GL_COLOR_TABLE_FORMAT = $80D8;
3080   GL_COLOR_TABLE_WIDTH = $80D9;
3081   GL_COLOR_TABLE_RED_SIZE = $80DA;
3082   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3083   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3084   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3085   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3086   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3087   GL_CONSTANT_BORDER = $8151;
3088   GL_REPLICATE_BORDER = $8153;
3089   GL_CONVOLUTION_BORDER_COLOR = $8154;
3090 {$endif}
3091
3092   // GL_ARB_matrix_palette
3093   GL_MATRIX_PALETTE_ARB = $8840;
3094   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3095   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3096   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3097   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3098   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3099   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3100   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3101   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3102   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3103
3104   // GL_ARB_multisample
3105   GL_MULTISAMPLE_ARB = $809D;
3106   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3107   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3108   GL_SAMPLE_COVERAGE_ARB = $80A0;
3109   GL_SAMPLE_BUFFERS_ARB = $80A8;
3110   GL_SAMPLES_ARB = $80A9;
3111   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3112   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3113   GL_MULTISAMPLE_BIT_ARB = $20000000;
3114
3115   // GL_ARB_multitexture
3116   GL_TEXTURE0_ARB = $84C0;
3117   GL_TEXTURE1_ARB = $84C1;
3118   GL_TEXTURE2_ARB = $84C2;
3119   GL_TEXTURE3_ARB = $84C3;
3120   GL_TEXTURE4_ARB = $84C4;
3121   GL_TEXTURE5_ARB = $84C5;
3122   GL_TEXTURE6_ARB = $84C6;
3123   GL_TEXTURE7_ARB = $84C7;
3124   GL_TEXTURE8_ARB = $84C8;
3125   GL_TEXTURE9_ARB = $84C9;
3126   GL_TEXTURE10_ARB = $84CA;
3127   GL_TEXTURE11_ARB = $84CB;
3128   GL_TEXTURE12_ARB = $84CC;
3129   GL_TEXTURE13_ARB = $84CD;
3130   GL_TEXTURE14_ARB = $84CE;
3131   GL_TEXTURE15_ARB = $84CF;
3132   GL_TEXTURE16_ARB = $84D0;
3133   GL_TEXTURE17_ARB = $84D1;
3134   GL_TEXTURE18_ARB = $84D2;
3135   GL_TEXTURE19_ARB = $84D3;
3136   GL_TEXTURE20_ARB = $84D4;
3137   GL_TEXTURE21_ARB = $84D5;
3138   GL_TEXTURE22_ARB = $84D6;
3139   GL_TEXTURE23_ARB = $84D7;
3140   GL_TEXTURE24_ARB = $84D8;
3141   GL_TEXTURE25_ARB = $84D9;
3142   GL_TEXTURE26_ARB = $84DA;
3143   GL_TEXTURE27_ARB = $84DB;
3144   GL_TEXTURE28_ARB = $84DC;
3145   GL_TEXTURE29_ARB = $84DD;
3146   GL_TEXTURE30_ARB = $84DE;
3147   GL_TEXTURE31_ARB = $84DF;
3148   GL_ACTIVE_TEXTURE_ARB = $84E0;
3149   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3150   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3151
3152   // GL_ARB_point_parameters
3153   GL_POINT_SIZE_MIN_ARB = $8126;
3154   GL_POINT_SIZE_MAX_ARB = $8127;
3155   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3156   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3157
3158   // GL_ARB_shadow
3159   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3160   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3161   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3162
3163   // GL_ARB_shadow_ambient
3164   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3165
3166   // GL_ARB_sparse_buffer
3167   GL_SPARSE_STORAGE_BIT_ARB = $0400;
3168   GL_SPARSE_BUFFER_PAGE_SIZE_ARB = $82F8;
3169
3170   // GL_ARB_texture_border_clamp
3171   GL_CLAMP_TO_BORDER_ARB = $812D;
3172
3173   // GL_ARB_texture_compression
3174   GL_COMPRESSED_ALPHA_ARB = $84E9;
3175   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3176   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3177   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3178   GL_COMPRESSED_RGB_ARB = $84ED;
3179   GL_COMPRESSED_RGBA_ARB = $84EE;
3180   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3181   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3182   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3183   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3184   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3185
3186   // GL_ARB_texture_cube_map
3187   GL_NORMAL_MAP_ARB = $8511;
3188   GL_REFLECTION_MAP_ARB = $8512;
3189   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3190   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3191   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3192   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3193   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3194   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3195   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3196   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3197   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3198   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3199
3200   // GL_ARB_texture_env_combine
3201   GL_COMBINE_ARB = $8570;
3202   GL_COMBINE_RGB_ARB = $8571;
3203   GL_COMBINE_ALPHA_ARB = $8572;
3204   GL_SOURCE0_RGB_ARB = $8580;
3205   GL_SOURCE1_RGB_ARB = $8581;
3206   GL_SOURCE2_RGB_ARB = $8582;
3207   GL_SOURCE0_ALPHA_ARB = $8588;
3208   GL_SOURCE1_ALPHA_ARB = $8589;
3209   GL_SOURCE2_ALPHA_ARB = $858A;
3210   GL_OPERAND0_RGB_ARB = $8590;
3211   GL_OPERAND1_RGB_ARB = $8591;
3212   GL_OPERAND2_RGB_ARB = $8592;
3213   GL_OPERAND0_ALPHA_ARB = $8598;
3214   GL_OPERAND1_ALPHA_ARB = $8599;
3215   GL_OPERAND2_ALPHA_ARB = $859A;
3216   GL_RGB_SCALE_ARB = $8573;
3217   GL_ADD_SIGNED_ARB = $8574;
3218   GL_INTERPOLATE_ARB = $8575;
3219   GL_SUBTRACT_ARB = $84E7;
3220   GL_CONSTANT_ARB = $8576;
3221   GL_PRIMARY_COLOR_ARB = $8577;
3222   GL_PREVIOUS_ARB = $8578;
3223
3224   // GL_ARB_texture_env_dot3
3225   GL_DOT3_RGB_ARB = $86AE;
3226   GL_DOT3_RGBA_ARB = $86AF;
3227
3228   // GL_ARB_texture_mirrored_repeat
3229   GL_MIRRORED_REPEAT_ARB = $8370;
3230
3231   // GL_ARB_transpose_matrix
3232   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3233   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3234   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3235   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3236
3237   // GL_ARB_vertex_blend
3238   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3239   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3240   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3241   GL_VERTEX_BLEND_ARB = $86A7;
3242   GL_CURRENT_WEIGHT_ARB = $86A8;
3243   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3244   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3245   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3246   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3247   GL_WEIGHT_ARRAY_ARB = $86AD;
3248   GL_MODELVIEW0_ARB = $1700;
3249   GL_MODELVIEW1_ARB = $850A;
3250   GL_MODELVIEW2_ARB = $8722;
3251   GL_MODELVIEW3_ARB = $8723;
3252   GL_MODELVIEW4_ARB = $8724;
3253   GL_MODELVIEW5_ARB = $8725;
3254   GL_MODELVIEW6_ARB = $8726;
3255   GL_MODELVIEW7_ARB = $8727;
3256   GL_MODELVIEW8_ARB = $8728;
3257   GL_MODELVIEW9_ARB = $8729;
3258   GL_MODELVIEW10_ARB = $872A;
3259   GL_MODELVIEW11_ARB = $872B;
3260   GL_MODELVIEW12_ARB = $872C;
3261   GL_MODELVIEW13_ARB = $872D;
3262   GL_MODELVIEW14_ARB = $872E;
3263   GL_MODELVIEW15_ARB = $872F;
3264   GL_MODELVIEW16_ARB = $8730;
3265   GL_MODELVIEW17_ARB = $8731;
3266   GL_MODELVIEW18_ARB = $8732;
3267   GL_MODELVIEW19_ARB = $8733;
3268   GL_MODELVIEW20_ARB = $8734;
3269   GL_MODELVIEW21_ARB = $8735;
3270   GL_MODELVIEW22_ARB = $8736;
3271   GL_MODELVIEW23_ARB = $8737;
3272   GL_MODELVIEW24_ARB = $8738;
3273   GL_MODELVIEW25_ARB = $8739;
3274   GL_MODELVIEW26_ARB = $873A;
3275   GL_MODELVIEW27_ARB = $873B;
3276   GL_MODELVIEW28_ARB = $873C;
3277   GL_MODELVIEW29_ARB = $873D;
3278   GL_MODELVIEW30_ARB = $873E;
3279   GL_MODELVIEW31_ARB = $873F;
3280
3281   // GL_ARB_vertex_buffer_object
3282   GL_BUFFER_SIZE_ARB = $8764;
3283   GL_BUFFER_USAGE_ARB = $8765;
3284   GL_ARRAY_BUFFER_ARB = $8892;
3285   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3286   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3287   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3288   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3289   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3290   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3291   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3292   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3293   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3294   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3295   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3296   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3297   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3298   GL_READ_ONLY_ARB = $88B8;
3299   GL_WRITE_ONLY_ARB = $88B9;
3300   GL_READ_WRITE_ARB = $88BA;
3301   GL_BUFFER_ACCESS_ARB = $88BB;
3302   GL_BUFFER_MAPPED_ARB = $88BC;
3303   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3304   GL_STREAM_DRAW_ARB = $88E0;
3305   GL_STREAM_READ_ARB = $88E1;
3306   GL_STREAM_COPY_ARB = $88E2;
3307   GL_STATIC_DRAW_ARB = $88E4;
3308   GL_STATIC_READ_ARB = $88E5;
3309   GL_STATIC_COPY_ARB = $88E6;
3310   GL_DYNAMIC_DRAW_ARB = $88E8;
3311   GL_DYNAMIC_READ_ARB = $88E9;
3312   GL_DYNAMIC_COPY_ARB = $88EA;
3313
3314   // GL_ARB_vertex_program
3315   GL_COLOR_SUM_ARB = $8458;
3316   GL_VERTEX_PROGRAM_ARB = $8620;
3317   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3318   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3319   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3320   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3321   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3322   GL_PROGRAM_LENGTH_ARB = $8627;
3323   GL_PROGRAM_STRING_ARB = $8628;
3324   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3325   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3326   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3327   GL_CURRENT_MATRIX_ARB = $8641;
3328   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3329   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3330   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3331   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3332   GL_PROGRAM_BINDING_ARB = $8677;
3333   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3334   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3335   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3336   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3337   GL_PROGRAM_FORMAT_ARB = $8876;
3338   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3339   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3340   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3341   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3342   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3343   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3344   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3345   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3346   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3347   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3348   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3349   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3350   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3351   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3352   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3353   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3354   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3355   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3356   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3357   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3358   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3359   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3360   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3361   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3362   GL_MATRIX0_ARB = $88C0;
3363   GL_MATRIX1_ARB = $88C1;
3364   GL_MATRIX2_ARB = $88C2;
3365   GL_MATRIX3_ARB = $88C3;
3366   GL_MATRIX4_ARB = $88C4;
3367   GL_MATRIX5_ARB = $88C5;
3368   GL_MATRIX6_ARB = $88C6;
3369   GL_MATRIX7_ARB = $88C7;
3370   GL_MATRIX8_ARB = $88C8;
3371   GL_MATRIX9_ARB = $88C9;
3372   GL_MATRIX10_ARB = $88CA;
3373   GL_MATRIX11_ARB = $88CB;
3374   GL_MATRIX12_ARB = $88CC;
3375   GL_MATRIX13_ARB = $88CD;
3376   GL_MATRIX14_ARB = $88CE;
3377   GL_MATRIX15_ARB = $88CF;
3378   GL_MATRIX16_ARB = $88D0;
3379   GL_MATRIX17_ARB = $88D1;
3380   GL_MATRIX18_ARB = $88D2;
3381   GL_MATRIX19_ARB = $88D3;
3382   GL_MATRIX20_ARB = $88D4;
3383   GL_MATRIX21_ARB = $88D5;
3384   GL_MATRIX22_ARB = $88D6;
3385   GL_MATRIX23_ARB = $88D7;
3386   GL_MATRIX24_ARB = $88D8;
3387   GL_MATRIX25_ARB = $88D9;
3388   GL_MATRIX26_ARB = $88DA;
3389   GL_MATRIX27_ARB = $88DB;
3390   GL_MATRIX28_ARB = $88DC;
3391   GL_MATRIX29_ARB = $88DD;
3392   GL_MATRIX30_ARB = $88DE;
3393   GL_MATRIX31_ARB = $88DF;
3394
3395   // GL_ARB_draw_buffers
3396   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3397   GL_DRAW_BUFFER0_ARB = $8825;
3398   GL_DRAW_BUFFER1_ARB = $8826;
3399   GL_DRAW_BUFFER2_ARB = $8827;
3400   GL_DRAW_BUFFER3_ARB = $8828;
3401   GL_DRAW_BUFFER4_ARB = $8829;
3402   GL_DRAW_BUFFER5_ARB = $882A;
3403   GL_DRAW_BUFFER6_ARB = $882B;
3404   GL_DRAW_BUFFER7_ARB = $882C;
3405   GL_DRAW_BUFFER8_ARB = $882D;
3406   GL_DRAW_BUFFER9_ARB = $882E;
3407   GL_DRAW_BUFFER10_ARB = $882F;
3408   GL_DRAW_BUFFER11_ARB = $8830;
3409   GL_DRAW_BUFFER12_ARB = $8831;
3410   GL_DRAW_BUFFER13_ARB = $8832;
3411   GL_DRAW_BUFFER14_ARB = $8833;
3412   GL_DRAW_BUFFER15_ARB = $8834;
3413
3414   // GL_ARB_texture_rectangle
3415   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3416   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3417   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3418   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3419
3420   // GL_ARB_color_buffer_float
3421   GL_RGBA_FLOAT_MODE_ARB = $8820;
3422   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3423   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3424   GL_CLAMP_READ_COLOR_ARB = $891C;
3425   GL_FIXED_ONLY_ARB = $891D;
3426   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3427   GLX_RGBA_FLOAT_TYPE = $20B9;
3428   GLX_RGBA_FLOAT_BIT = $00000004;
3429
3430   // GL_ARB_compute_variable_group_size
3431   GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = $9344;
3432   GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = $90EB;
3433   GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = $9345;
3434   GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = $91BF;
3435
3436   // GL_ARB_half_float_pixel
3437   GL_HALF_FLOAT_ARB = $140B;
3438
3439   // GL_ARB_texture_float
3440   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3441   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3442   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3443   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3444   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3445   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3446   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3447   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3448   GL_RGBA32F_ARB = $8814;
3449   GL_RGB32F_ARB = $8815;
3450   GL_ALPHA32F_ARB = $8816;
3451   GL_INTENSITY32F_ARB = $8817;
3452   GL_LUMINANCE32F_ARB = $8818;
3453   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3454   GL_RGBA16F_ARB = $881A;
3455   GL_RGB16F_ARB = $881B;
3456   GL_ALPHA16F_ARB = $881C;
3457   GL_INTENSITY16F_ARB = $881D;
3458   GL_LUMINANCE16F_ARB = $881E;
3459   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3460
3461   // GL_ARB_pixel_buffer_object
3462   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3463   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3464   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3465   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3466
3467   // GL_ARB_depth_buffer_float
3468   GL_DEPTH_COMPONENT32F = $8CAC;
3469   GL_DEPTH32F_STENCIL8 = $8CAD;
3470   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3471
3472   // GL_ARB_framebuffer_object
3473   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3474   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3475   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3476   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3477   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3478   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3479   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3480   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3481   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3482   GL_FRAMEBUFFER_DEFAULT = $8218;
3483   GL_FRAMEBUFFER_UNDEFINED = $8219;
3484   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3485   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3486   GL_DEPTH_STENCIL = $84F9;
3487   GL_UNSIGNED_INT_24_8 = $84FA;
3488   GL_DEPTH24_STENCIL8 = $88F0;
3489   GL_TEXTURE_STENCIL_SIZE = $88F1;
3490   GL_TEXTURE_RED_TYPE = $8C10;
3491   GL_TEXTURE_GREEN_TYPE = $8C11;
3492   GL_TEXTURE_BLUE_TYPE = $8C12;
3493   GL_TEXTURE_ALPHA_TYPE = $8C13;
3494   GL_TEXTURE_DEPTH_TYPE = $8C16;
3495   GL_UNSIGNED_NORMALIZED = $8C17;
3496   GL_FRAMEBUFFER_BINDING = $8CA6;
3497   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3498   GL_RENDERBUFFER_BINDING = $8CA7;
3499   GL_READ_FRAMEBUFFER = $8CA8;
3500   GL_DRAW_FRAMEBUFFER = $8CA9;
3501   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3502   GL_RENDERBUFFER_SAMPLES = $8CAB;
3503   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3504   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3505   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3506   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3507   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3508   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3509   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3510   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3511   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3512   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3513   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3514   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3515   GL_COLOR_ATTACHMENT0 = $8CE0;
3516   GL_COLOR_ATTACHMENT1 = $8CE1;
3517   GL_COLOR_ATTACHMENT2 = $8CE2;
3518   GL_COLOR_ATTACHMENT3 = $8CE3;
3519   GL_COLOR_ATTACHMENT4 = $8CE4;
3520   GL_COLOR_ATTACHMENT5 = $8CE5;
3521   GL_COLOR_ATTACHMENT6 = $8CE6;
3522   GL_COLOR_ATTACHMENT7 = $8CE7;
3523   GL_COLOR_ATTACHMENT8 = $8CE8;
3524   GL_COLOR_ATTACHMENT9 = $8CE9;
3525   GL_COLOR_ATTACHMENT10 = $8CEA;
3526   GL_COLOR_ATTACHMENT11 = $8CEB;
3527   GL_COLOR_ATTACHMENT12 = $8CEC;
3528   GL_COLOR_ATTACHMENT13 = $8CED;
3529   GL_COLOR_ATTACHMENT14 = $8CEE;
3530   GL_COLOR_ATTACHMENT15 = $8CEF;
3531   GL_DEPTH_ATTACHMENT = $8D00;
3532   GL_STENCIL_ATTACHMENT = $8D20;
3533   GL_FRAMEBUFFER = $8D40;
3534   GL_RENDERBUFFER = $8D41;
3535   GL_RENDERBUFFER_WIDTH = $8D42;
3536   GL_RENDERBUFFER_HEIGHT = $8D43;
3537   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3538   GL_STENCIL_INDEX1 = $8D46;
3539   GL_STENCIL_INDEX4 = $8D47;
3540   GL_STENCIL_INDEX8 = $8D48;
3541   GL_STENCIL_INDEX16 = $8D49;
3542   GL_RENDERBUFFER_RED_SIZE = $8D50;
3543   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3544   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3545   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3546   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3547   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3548   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3549   GL_MAX_SAMPLES = $8D57;
3550 {$ifdef DGL_DEPRECATED}
3551   GL_INDEX = $8222;
3552   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3553   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3554 {$endif}
3555
3556   // GL_ARB_framebuffer_sRGB
3557   GL_FRAMEBUFFER_SRGB = $8DB9;
3558
3559   // GL_ARB_geometry_shader4
3560   GL_LINES_ADJACENCY_ARB = $000A;
3561   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3562   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3563   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3564   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3565   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3566   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3567   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3568   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3569   GL_GEOMETRY_SHADER_ARB = $8DD9;
3570   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3571   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3572   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3573   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3574   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3575   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3576   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3577   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3578   { reuse GL_MAX_VARYING_COMPONENTS }
3579   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3580
3581   // GL_ARB_half_float_vertex
3582   GL_HALF_FLOAT = $140B;
3583
3584   // GL_ARB_instanced_arrays
3585   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3586
3587   // GL_ARB_map_buffer_range
3588   GL_MAP_READ_BIT = $0001;
3589   GL_MAP_WRITE_BIT = $0002;
3590   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3591   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3592   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3593   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3594
3595   // GL_ARB_texture_buffer_object
3596   GL_TEXTURE_BUFFER_ARB = $8C2A;
3597   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3598   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3599   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3600   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3601
3602   // GL_ARB_texture_compression_rgtc
3603   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3604   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3605   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3606   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3607
3608   // GL_ARB_texture_rg
3609   GL_RG = $8227;
3610   GL_RG_INTEGER = $8228;
3611   GL_R8 = $8229;
3612   GL_R16 = $822A;
3613   GL_RG8 = $822B;
3614   GL_RG16 = $822C;
3615   GL_R16F = $822D;
3616   GL_R32F = $822E;
3617   GL_RG16F = $822F;
3618   GL_RG32F = $8230;
3619   GL_R8I = $8231;
3620   GL_R8UI = $8232;
3621   GL_R16I = $8233;
3622   GL_R16UI = $8234;
3623   GL_R32I = $8235;
3624   GL_R32UI = $8236;
3625   GL_RG8I = $8237;
3626   GL_RG8UI = $8238;
3627   GL_RG16I = $8239;
3628   GL_RG16UI = $823A;
3629   GL_RG32I = $823B;
3630   GL_RG32UI = $823C;
3631
3632   // GL_ARB_vertex_array_object
3633   GL_VERTEX_ARRAY_BINDING = $85B5;
3634
3635   // GL_ARB_uniform_buffer_object
3636   GL_UNIFORM_BUFFER = $8A11;
3637   GL_UNIFORM_BUFFER_BINDING = $8A28;
3638   GL_UNIFORM_BUFFER_START = $8A29;
3639   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3640   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3641   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3642   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3643   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3644   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3645   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3646   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3647   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3648   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3649   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3650   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3651   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3652   GL_UNIFORM_TYPE = $8A37;
3653   GL_UNIFORM_SIZE = $8A38;
3654   GL_UNIFORM_NAME_LENGTH = $8A39;
3655   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3656   GL_UNIFORM_OFFSET = $8A3B;
3657   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3658   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3659   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3660   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3661   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3662   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3663   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
3664   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
3665   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
3666   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
3667   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
3668   GL_INVALID_INDEX = $FFFFFFFF;
3669
3670   // GL_ARB_compatibility
3671   { ARB_compatibility just defines tokens from core 3.0 }
3672
3673   // GL_ARB_copy_buffer
3674   GL_COPY_READ_BUFFER_BINDING = $8F36;
3675   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
3676   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
3677   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
3678
3679   // GL_ARB_depth_clamp
3680   GL_DEPTH_CLAMP = $864F;
3681
3682   // GL_ARB_provoking_vertex
3683   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
3684   GL_FIRST_VERTEX_CONVENTION = $8E4D;
3685   GL_LAST_VERTEX_CONVENTION = $8E4E;
3686   GL_PROVOKING_VERTEX = $8E4F;
3687
3688   // GL_ARB_seamless_cube_map
3689   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
3690
3691   // GL_ARB_sync
3692   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
3693   GL_OBJECT_TYPE = $9112;
3694   GL_SYNC_CONDITION = $9113;
3695   GL_SYNC_STATUS = $9114;
3696   GL_SYNC_FLAGS = $9115;
3697   GL_SYNC_FENCE = $9116;
3698   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
3699   GL_UNSIGNALED = $9118;
3700   GL_SIGNALED = $9119;
3701   GL_ALREADY_SIGNALED = $911A;
3702   GL_TIMEOUT_EXPIRED = $911B;
3703   GL_CONDITION_SATISFIED = $911C;
3704   GL_WAIT_FAILED = $911D;
3705   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
3706   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
3707
3708   // GL_ARB_texture_multisample
3709   GL_SAMPLE_POSITION = $8E50;
3710   GL_SAMPLE_MASK = $8E51;
3711   GL_SAMPLE_MASK_VALUE = $8E52;
3712   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
3713   GL_TEXTURE_2D_MULTISAMPLE = $9100;
3714   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
3715   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
3716   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
3717   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
3718   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
3719   GL_TEXTURE_SAMPLES = $9106;
3720   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
3721   GL_SAMPLER_2D_MULTISAMPLE = $9108;
3722   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
3723   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
3724   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
3725   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
3726   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
3727   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
3728   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
3729   GL_MAX_INTEGER_SAMPLES = $9110;
3730
3731   // GL_ARB_vertex_array_bgra
3732   { reuse GL_BGRA }
3733
3734   // GL_ARB_sample_shading
3735   GL_SAMPLE_SHADING_ARB = $8C36;
3736   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
3737
3738   // GL_ARB_texture_cube_map_array
3739   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
3740   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
3741   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
3742   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
3743   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
3744   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
3745   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
3746
3747   // GL_ARB_texture_gather
3748   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
3749   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
3750
3751   // GL_ARB_shading_language_include
3752   GL_SHADER_INCLUDE_ARB = $8DAE;
3753   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
3754   GL_NAMED_STRING_TYPE_ARB = $8DEA;
3755
3756   // GL_ARB_texture_compression_bptc
3757   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
3758   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
3759   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
3760   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
3761
3762   // GL_ARB_blend_func_extended
3763   GL_SRC1_COLOR = $88F9;
3764   { reuse GL_SRC1_ALPHA }
3765   GL_ONE_MINUS_SRC1_COLOR = $88FA;
3766   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
3767   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
3768
3769   // GL_ARB_occlusion_query2
3770   GL_ANY_SAMPLES_PASSED = $8C2F;
3771
3772   // GL_ARB_sampler_objects
3773   GL_SAMPLER_BINDING = $8919;
3774
3775   // GL_ARB_texture_rgb10_a2ui
3776   GL_RGB10_A2UI = $906F;
3777
3778   // GL_ARB_texture_swizzle
3779   GL_TEXTURE_SWIZZLE_R = $8E42;
3780   GL_TEXTURE_SWIZZLE_G = $8E43;
3781   GL_TEXTURE_SWIZZLE_B = $8E44;
3782   GL_TEXTURE_SWIZZLE_A = $8E45;
3783   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
3784
3785   // GL_ARB_SPARSE_TEXTURE
3786   GL_TEXTURE_SPARSE_ARB = $91A6;
3787   GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = $91A7;
3788   GL_NUM_VIRTUAL_PAGE_SIZES_ARB = $91A8;
3789   GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = $91A9;
3790   GL_NUM_SPARSE_LEVELS_ARB = $91AA;
3791   GL_VIRTUAL_PAGE_SIZE_X_ARB = $9195;
3792   GL_VIRTUAL_PAGE_SIZE_Y_ARB = $9196;
3793   GL_VIRTUAL_PAGE_SIZE_Z_ARB = $9197;
3794   GL_MAX_SPARSE_TEXTURE_SIZE_ARB = $9198;
3795   GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = $9199;
3796   GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = $919A;
3797   GL_MIN_SPARSE_LEVEL_ARB = $919B;
3798
3799   // GL_ARB_timer_query
3800   GL_TIME_ELAPSED = $88BF;
3801   GL_TIMESTAMP = $8E28;
3802
3803   // GL_ARB_vertex_type_2_10_10_10_rev
3804   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
3805   GL_INT_2_10_10_10_REV = $8D9F;
3806
3807   // GL_ARB_draw_indirect
3808   GL_DRAW_INDIRECT_BUFFER = $8F3F;
3809   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
3810
3811   // GL_ARB_gpu_shader5
3812   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
3813   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
3814   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
3815   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
3816   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
3817   { reuse GL_MAX_VERTEX_STREAMS }
3818
3819   // GL_ARB_gpu_shader_fp64
3820   { reuse GL_DOUBLE }
3821   GL_DOUBLE_VEC2 = $8FFC;
3822   GL_DOUBLE_VEC3 = $8FFD;
3823   GL_DOUBLE_VEC4 = $8FFE;
3824   GL_DOUBLE_MAT2 = $8F46;
3825   GL_DOUBLE_MAT3 = $8F47;
3826   GL_DOUBLE_MAT4 = $8F48;
3827   GL_DOUBLE_MAT2x3 = $8F49;
3828   GL_DOUBLE_MAT2x4 = $8F4A;
3829   GL_DOUBLE_MAT3x2 = $8F4B;
3830   GL_DOUBLE_MAT3x4 = $8F4C;
3831   GL_DOUBLE_MAT4x2 = $8F4D;
3832   GL_DOUBLE_MAT4x3 = $8F4E;
3833
3834   // GL_ARB_shader_subroutine
3835   GL_ACTIVE_SUBROUTINES = $8DE5;
3836   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
3837   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
3838   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
3839   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
3840   GL_MAX_SUBROUTINES = $8DE7;
3841   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
3842   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
3843   GL_COMPATIBLE_SUBROUTINES = $8E4B;
3844   { reuse GL_UNIFORM_SIZE }
3845   { reuse GL_UNIFORM_NAME_LENGTH }
3846
3847   // GL_ARB_tessellation_shader
3848   GL_PATCHES = $000E;
3849   GL_PATCH_VERTICES = $8E72;
3850   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
3851   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
3852   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
3853   GL_TESS_GEN_MODE = $8E76;
3854   GL_TESS_GEN_SPACING = $8E77;
3855   GL_TESS_GEN_VERTEX_ORDER = $8E78;
3856   GL_TESS_GEN_POINT_MODE = $8E79;
3857   { reuse GL_TRIANGLES }
3858   { reuse GL_QUADS }
3859   GL_ISOLINES = $8E7A;
3860   { reuse GL_EQUAL }
3861   GL_FRACTIONAL_ODD = $8E7B;
3862   GL_FRACTIONAL_EVEN = $8E7C;
3863   { reuse GL_CCW }
3864   { reuse GL_CW }
3865   GL_MAX_PATCH_VERTICES = $8E7D;
3866   GL_MAX_TESS_GEN_LEVEL = $8E7E;
3867   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
3868   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
3869   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
3870   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
3871   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
3872   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
3873   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
3874   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
3875   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
3876   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
3877   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
3878   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
3879   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
3880   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
3881   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
3882   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
3883   GL_TESS_EVALUATION_SHADER = $8E87;
3884   GL_TESS_CONTROL_SHADER = $8E88;
3885
3886   // GL_ARB_texture_buffer_object_rgb32
3887   { reuse GL_RGB32F }
3888   { reuse GL_RGB32UI }
3889   { reuse GL_RGB32I }
3890
3891   // GL_ARB_transform_feedback2
3892   GL_TRANSFORM_FEEDBACK = $8E22;
3893   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
3894   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
3895   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
3896   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
3897   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
3898
3899   // GL_ARB_transform_feedback_overflow_query
3900   GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = $82EC;
3901   GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = $82ED;
3902
3903   // GL_ARB_transform_feedback3
3904   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
3905   GL_MAX_VERTEX_STREAMS = $8E71;
3906
3907   // GL_ARB_ES2_compatibility
3908   GL_FIXED = $140C;
3909   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
3910   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
3911   GL_LOW_FLOAT = $8DF0;
3912   GL_MEDIUM_FLOAT = $8DF1;
3913   GL_HIGH_FLOAT = $8DF2;
3914   GL_LOW_INT = $8DF3;
3915   GL_MEDIUM_INT = $8DF4;
3916   GL_HIGH_INT = $8DF5;
3917   GL_SHADER_COMPILER = $8DFA;
3918   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
3919   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
3920   GL_MAX_VARYING_VECTORS = $8DFC;
3921   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
3922   GL_RGB565 = $8D62;
3923
3924   // GL_ARB_get_program_binary
3925   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
3926   GL_PROGRAM_BINARY_LENGTH = $8741;
3927   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
3928   GL_PROGRAM_BINARY_FORMATS = $87FF;
3929
3930   // GL_ARB_separate_shader_objects
3931   GL_VERTEX_SHADER_BIT = $00000001;
3932   GL_FRAGMENT_SHADER_BIT = $00000002;
3933   GL_GEOMETRY_SHADER_BIT = $00000004;
3934   GL_TESS_CONTROL_SHADER_BIT = $00000008;
3935   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
3936   GL_ALL_SHADER_BITS = $FFFFFFFF;
3937   GL_PROGRAM_SEPARABLE = $8258;
3938   GL_ACTIVE_PROGRAM = $8259;
3939   GL_PROGRAM_PIPELINE_BINDING = $825A;
3940
3941   // GL_ARB_vertex_attrib_64bit
3942   { reuse GL_RGB32I }
3943   { reuse GL_DOUBLE_VEC2 }
3944   { reuse GL_DOUBLE_VEC3 }
3945   { reuse GL_DOUBLE_VEC4 }
3946   { reuse GL_DOUBLE_MAT2 }
3947   { reuse GL_DOUBLE_MAT3 }
3948   { reuse GL_DOUBLE_MAT4 }
3949   { reuse GL_DOUBLE_MAT2x3 }
3950   { reuse GL_DOUBLE_MAT2x4 }
3951   { reuse GL_DOUBLE_MAT3x2 }
3952   { reuse GL_DOUBLE_MAT3x4 }
3953   { reuse GL_DOUBLE_MAT4x2 }
3954   { reuse GL_DOUBLE_MAT4x3 }
3955
3956   // GL_ARB_viewport_array
3957   { reuse GL_SCISSOR_BOX }
3958   { reuse GL_VIEWPORT }
3959   { reuse GL_DEPTH_RANGE }
3960   { reuse GL_SCISSOR_TEST }
3961   GL_MAX_VIEWPORTS = $825B;
3962   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
3963   GL_VIEWPORT_BOUNDS_RANGE = $825D;
3964   GL_LAYER_PROVOKING_VERTEX = $825E;
3965   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
3966   GL_UNDEFINED_VERTEX = $8260;
3967   { reuse GL_FIRST_VERTEX_CONVENTION }
3968   { reuse GL_LAST_VERTEX_CONVENTION }
3969   { reuse GL_PROVOKING_VERTEX }
3970
3971   // GL_ARB_cl_event
3972   GL_SYNC_CL_EVENT_ARB = $8240;
3973   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
3974
3975   // GL_ARB_debug_output
3976   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
3977   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
3978   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
3979   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
3980   GL_DEBUG_SOURCE_API_ARB = $8246;
3981   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
3982   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
3983   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
3984   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
3985   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
3986   GL_DEBUG_TYPE_ERROR_ARB = $824C;
3987   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
3988   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
3989   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
3990   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
3991   GL_DEBUG_TYPE_OTHER_ARB = $8251;
3992   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
3993   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
3994   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
3995   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
3996   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
3997   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
3998
3999   // GL_ARB_robustness
4000   { reuse GL_NO_ERROR }
4001   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
4002   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
4003   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
4004   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
4005   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
4006   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
4007   GL_NO_RESET_NOTIFICATION_ARB = $8261;
4008
4009   //  GL_ARB_compressed_texture_pixel_storage
4010   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4011   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4012   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4013   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4014   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4015   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4016   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4017   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4018
4019   // GL_ARB_internalformat_query
4020   GL_NUM_SAMPLE_COUNTS              = $09380;
4021
4022   // GL_ARB_map_buffer_alignment
4023   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4024
4025   // GL_ARB_shader_atomic_counters
4026   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4027   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4028   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4029   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4030   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4031   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4032   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4033   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4034   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4035   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4036   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4037   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4038   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4039   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4040   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4041   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4042   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4043   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4044   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4045   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4046   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4047   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4048   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4049   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4050   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4051   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4052   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4053   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4054   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4055
4056   // GL_ARB_shader_image_load_store
4057   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4058   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4059   GL_UNIFORM_BARRIER_BIT            = $00000004;
4060   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4061   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4062   GL_COMMAND_BARRIER_BIT            = $00000040;
4063   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4064   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4065   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4066   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4067   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4068   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4069   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4070   GL_MAX_IMAGE_UNITS                = $8F38;
4071   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4072   GL_IMAGE_BINDING_NAME             = $8F3A;
4073   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4074   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4075   GL_IMAGE_BINDING_LAYER            = $8F3D;
4076   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4077   GL_IMAGE_1D                       = $904C;
4078   GL_IMAGE_2D                       = $904D;
4079   GL_IMAGE_3D                       = $904E;
4080   GL_IMAGE_2D_RECT                  = $904F;
4081   GL_IMAGE_CUBE                     = $9050;
4082   GL_IMAGE_BUFFER                   = $9051;
4083   GL_IMAGE_1D_ARRAY                 = $9052;
4084   GL_IMAGE_2D_ARRAY                 = $9053;
4085   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4086   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4087   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4088   GL_INT_IMAGE_1D                   = $9057;
4089   GL_INT_IMAGE_2D                   = $9058;
4090   GL_INT_IMAGE_3D                   = $9059;
4091   GL_INT_IMAGE_2D_RECT              = $905A;
4092   GL_INT_IMAGE_CUBE                 = $905B;
4093   GL_INT_IMAGE_BUFFER               = $905C;
4094   GL_INT_IMAGE_1D_ARRAY             = $905D;
4095   GL_INT_IMAGE_2D_ARRAY             = $905E;
4096   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4097   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4098   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4099   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4100   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4101   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4102   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4103   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4104   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4105   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4106   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4107   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4108   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4109   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4110   GL_MAX_IMAGE_SAMPLES              = $906D;
4111   GL_IMAGE_BINDING_FORMAT           = $906E;
4112   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4113   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4114   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4115   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4116   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4117   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4118   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4119   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4120   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4121
4122   // GL_ARB_texture_storage
4123   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4124
4125   // 4.3
4126   // GL_KHR_texture_compression_astc_hdr
4127   GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4128   GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4129   GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4130   GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4131   GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4132   GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4133   GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4134   GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4135   GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4136   GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4137   GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4138   GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4139   GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4140   GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4141   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4142   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4143   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4144   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4145   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4146   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4147   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4148   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4149   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4150   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4151   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4152   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4153   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4154   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4155   // (4.3) GL_KHR_debug
4156   GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4157   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4158   GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4159   GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4160   GL_DEBUG_SOURCE_API               = $8246;
4161   GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4162   GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4163   GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4164   GL_DEBUG_SOURCE_APPLICATION       = $824A;
4165   GL_DEBUG_SOURCE_OTHER             = $824B;
4166   GL_DEBUG_TYPE_ERROR               = $824C;
4167   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4168   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4169   GL_DEBUG_TYPE_PORTABILITY         = $824F;
4170   GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4171   GL_DEBUG_TYPE_OTHER               = $8251;
4172   GL_DEBUG_TYPE_MARKER              = $8268;
4173   GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4174   GL_DEBUG_TYPE_POP_GROUP           = $826A;
4175   GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4176   GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4177   GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4178   GL_BUFFER                         = $82E0;
4179   GL_SHADER                         = $82E1;
4180   GL_PROGRAM                        = $82E2;
4181   GL_QUERY                          = $82E3;
4182   GL_PROGRAM_PIPELINE               = $82E4;
4183   GL_SAMPLER                        = $82E6;
4184   GL_DISPLAY_LIST                   = $82E7;
4185   GL_MAX_LABEL_LENGTH               = $82E8;
4186   GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4187   GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4188   GL_DEBUG_LOGGED_MESSAGES          = $9145;
4189   GL_DEBUG_SEVERITY_HIGH            = $9146;
4190   GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4191   GL_DEBUG_SEVERITY_LOW             = $9148;
4192   GL_DEBUG_OUTPUT                   = $92E0;
4193   GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4194   GL_COMPUTE_SHADER                 = $91B9;
4195   GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4196   GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4197   GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4198   GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4199   GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4200   GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4201   GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4202   GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4203   GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4204   GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4205   GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4206   GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4207   GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4208   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4209   GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4210   GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4211   GL_COMPUTE_SHADER_BIT             = $00000020;
4212   GL_COMPRESSED_RGB8_ETC2           = $9274;
4213   GL_COMPRESSED_SRGB8_ETC2          = $9275;
4214   GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4215   GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4216   GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4217   GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4218   GL_COMPRESSED_R11_EAC             = $9270;
4219   GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4220   GL_COMPRESSED_RG11_EAC            = $9272;
4221   GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4222   GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4223   GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4224   GL_MAX_ELEMENT_INDEX              = $8D6B;
4225       GL_MAX_UNIFORM_LOCATIONS          = $826E;
4226   GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4227   GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4228   GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4229   GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4230   GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4231   GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4232   GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4233   GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4234   GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4235         GL_INTERNALFORMAT_SUPPORTED       = $826F;
4236   GL_INTERNALFORMAT_PREFERRED       = $8270;
4237   GL_INTERNALFORMAT_RED_SIZE        = $8271;
4238   GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4239   GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4240   GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4241   GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4242   GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4243   GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4244   GL_INTERNALFORMAT_RED_TYPE        = $8278;
4245   GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4246   GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4247   GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4248   GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4249   GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4250   GL_MAX_WIDTH                      = $827E;
4251   GL_MAX_HEIGHT                     = $827F;
4252   GL_MAX_DEPTH                      = $8280;
4253   GL_MAX_LAYERS                     = $8281;
4254   GL_MAX_COMBINED_DIMENSIONS        = $8282;
4255   GL_COLOR_COMPONENTS               = $8283;
4256   GL_DEPTH_COMPONENTS               = $8284;
4257   GL_STENCIL_COMPONENTS             = $8285;
4258   GL_COLOR_RENDERABLE               = $8286;
4259   GL_DEPTH_RENDERABLE               = $8287;
4260   GL_STENCIL_RENDERABLE             = $8288;
4261   GL_FRAMEBUFFER_RENDERABLE         = $8289;
4262   GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4263   GL_FRAMEBUFFER_BLEND              = $828B;
4264   GL_READ_PIXELS                    = $828C;
4265   GL_READ_PIXELS_FORMAT             = $828D;
4266   GL_READ_PIXELS_TYPE               = $828E;
4267   GL_TEXTURE_IMAGE_FORMAT           = $828F;
4268   GL_TEXTURE_IMAGE_TYPE             = $8290;
4269   GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4270   GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4271   GL_MIPMAP                         = $8293;
4272   GL_MANUAL_GENERATE_MIPMAP         = $8294;
4273   GL_AUTO_GENERATE_MIPMAP           = $8295;
4274   GL_COLOR_ENCODING                 = $8296;
4275   GL_SRGB_READ                      = $8297;
4276   GL_SRGB_WRITE                     = $8298;
4277   GL_SRGB_DECODE_ARB                = $8299;
4278   GL_FILTER                         = $829A;
4279   GL_VERTEX_TEXTURE                 = $829B;
4280   GL_TESS_CONTROL_TEXTURE           = $829C;
4281   GL_TESS_EVALUATION_TEXTURE        = $829D;
4282   GL_GEOMETRY_TEXTURE               = $829E;
4283   GL_FRAGMENT_TEXTURE               = $829F;
4284   GL_COMPUTE_TEXTURE                = $82A0;
4285   GL_TEXTURE_SHADOW                 = $82A1;
4286   GL_TEXTURE_GATHER                 = $82A2;
4287   GL_TEXTURE_GATHER_SHADOW          = $82A3;
4288   GL_SHADER_IMAGE_LOAD              = $82A4;
4289   GL_SHADER_IMAGE_STORE             = $82A5;
4290   GL_SHADER_IMAGE_ATOMIC            = $82A6;
4291   GL_IMAGE_TEXEL_SIZE               = $82A7;
4292   GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4293   GL_IMAGE_PIXEL_FORMAT             = $82A9;
4294   GL_IMAGE_PIXEL_TYPE               = $82AA;
4295   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4296   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4297   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4298   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4299   GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4300   GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4301   GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4302   GL_CLEAR_BUFFER                   = $82B4;
4303   GL_TEXTURE_VIEW                   = $82B5;
4304   GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4305   GL_FULL_SUPPORT                   = $82B7;
4306   GL_CAVEAT_SUPPORT                 = $82B8;
4307   GL_IMAGE_CLASS_4_X_32             = $82B9;
4308   GL_IMAGE_CLASS_2_X_32             = $82BA;
4309   GL_IMAGE_CLASS_1_X_32             = $82BB;
4310   GL_IMAGE_CLASS_4_X_16             = $82BC;
4311   GL_IMAGE_CLASS_2_X_16             = $82BD;
4312   GL_IMAGE_CLASS_1_X_16             = $82BE;
4313   GL_IMAGE_CLASS_4_X_8              = $82BF;
4314   GL_IMAGE_CLASS_2_X_8              = $82C0;
4315   GL_IMAGE_CLASS_1_X_8              = $82C1;
4316   GL_IMAGE_CLASS_11_11_10           = $82C2;
4317   GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4318   GL_VIEW_CLASS_128_BITS            = $82C4;
4319   GL_VIEW_CLASS_96_BITS             = $82C5;
4320   GL_VIEW_CLASS_64_BITS             = $82C6;
4321   GL_VIEW_CLASS_48_BITS             = $82C7;
4322   GL_VIEW_CLASS_32_BITS             = $82C8;
4323   GL_VIEW_CLASS_24_BITS             = $82C9;
4324   GL_VIEW_CLASS_16_BITS             = $82CA;
4325   GL_VIEW_CLASS_8_BITS              = $82CB;
4326   GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4327   GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4328   GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4329   GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4330   GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4331   GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4332   GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4333   GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4334   GL_UNIFORM                        = $92E1;
4335   GL_UNIFORM_BLOCK                  = $92E2;
4336   GL_PROGRAM_INPUT                  = $92E3;
4337   GL_PROGRAM_OUTPUT                 = $92E4;
4338   GL_BUFFER_VARIABLE                = $92E5;
4339   GL_SHADER_STORAGE_BLOCK           = $92E6;
4340   GL_VERTEX_SUBROUTINE              = $92E8;
4341   GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4342   GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4343   GL_GEOMETRY_SUBROUTINE            = $92EB;
4344   GL_FRAGMENT_SUBROUTINE            = $92EC;
4345   GL_COMPUTE_SUBROUTINE             = $92ED;
4346   GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4347   GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4348   GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4349   GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4350   GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4351   GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4352   GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4353   GL_ACTIVE_RESOURCES               = $92F5;
4354   GL_MAX_NAME_LENGTH                = $92F6;
4355   GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4356   GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4357   GL_NAME_LENGTH                    = $92F9;
4358   GL_TYPE                           = $92FA;
4359   GL_ARRAY_SIZE                     = $92FB;
4360   GL_OFFSET                         = $92FC;
4361   GL_BLOCK_INDEX                    = $92FD;
4362   GL_ARRAY_STRIDE                   = $92FE;
4363   GL_MATRIX_STRIDE                  = $92FF;
4364   GL_IS_ROW_MAJOR                   = $9300;
4365   GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4366   GL_BUFFER_BINDING                 = $9302;
4367   GL_BUFFER_DATA_SIZE               = $9303;
4368   GL_NUM_ACTIVE_VARIABLES           = $9304;
4369   GL_ACTIVE_VARIABLES               = $9305;
4370   GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4371   GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4372   GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4373   GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4374   GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4375   GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4376   GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4377   GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4378   GL_LOCATION                       = $930E;
4379   GL_LOCATION_INDEX                 = $930F;
4380   GL_IS_PER_PATCH                   = $92E7;
4381   GL_SHADER_STORAGE_BUFFER          = $90D2;
4382   GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4383   GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4384   GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4385   GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4386   GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4387   GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4388   GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4389   GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4390   GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4391   GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4392   GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4393   GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4394   GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4395   GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4396   GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4397   GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4398
4399   GL_TEXTURE_BUFFER_OFFSET          = $919D;
4400   GL_TEXTURE_BUFFER_SIZE            = $919E;
4401   GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4402   GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4403   GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4404   GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4405   GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4406   GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4407   GL_VERTEX_ATTRIB_BINDING          = $82D4;
4408   GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4409   GL_VERTEX_BINDING_DIVISOR         = $82D6;
4410   GL_VERTEX_BINDING_OFFSET          = $82D7;
4411   GL_VERTEX_BINDING_STRIDE          = $82D8;
4412   GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4413   GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4414
4415   // GL 4.4
4416   GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4417   GL_MAP_PERSISTENT_BIT               = $0040;
4418   GL_MAP_COHERENT_BIT                 = $0080;
4419   GL_DYNAMIC_STORAGE_BIT              = $0100;
4420   GL_CLIENT_STORAGE_BIT               = $0200;
4421   GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4422   GL_BUFFER_IMMUTABLE_STORAGE           = $821F;
4423   GL_BUFFER_STORAGE_FLAGS               = $8220;
4424   GL_CLEAR_TEXTURE                      = $9365;
4425   GL_LOCATION_COMPONENT                 = $934A;
4426   GL_TRANSFORM_FEEDBACK_BUFFER_INDEX    = $934B;
4427   GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4428   GL_QUERY_BUFFER                       = $9192;
4429   GL_QUERY_BUFFER_BARRIER_BIT           = $00008000;
4430   GL_QUERY_BUFFER_BINDING               = $9193;
4431   GL_QUERY_RESULT_NO_WAIT               = $9194;
4432   GL_MIRROR_CLAMP_TO_EDGE               = $8743;
4433
4434   // GL 4.5
4435   GL_CONTEXT_LOST                   = $0507;
4436   GL_NEGATIVE_ONE_TO_ONE            = $935E;
4437   GL_ZERO_TO_ONE                    = $935F;
4438   GL_CLIP_ORIGIN                    = $935C;
4439   GL_CLIP_DEPTH_MODE                = $935D;
4440   GL_QUERY_WAIT_INVERTED            = $8E17;
4441   GL_QUERY_NO_WAIT_INVERTED         = $8E18;
4442   GL_QUERY_BY_REGION_WAIT_INVERTED  = $8E19;
4443   GL_QUERY_BY_REGION_NO_WAIT_INVERTED = $8E1A;
4444   GL_MAX_CULL_DISTANCES             = $82F9;
4445   GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = $82FA;
4446   GL_TEXTURE_TARGET                 = $1006;
4447   GL_QUERY_TARGET                   = $82EA;
4448   GL_TEXTURE_BINDING                = $82EB;
4449   GL_GUILTY_CONTEXT_RESET           = $8253;
4450   GL_INNOCENT_CONTEXT_RESET         = $8254;
4451   GL_UNKNOWN_CONTEXT_RESET          = $8255;
4452   GL_RESET_NOTIFICATION_STRATEGY    = $8256;
4453   GL_LOSE_CONTEXT_ON_RESET          = $8252;
4454   GL_NO_RESET_NOTIFICATION          = $8261;
4455   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = $00000004;
4456   GL_CONTEXT_RELEASE_BEHAVIOR       = $82FB;
4457   GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = $82FC;
4458
4459   // GL_ATI_draw_buffers
4460   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4461   GL_DRAW_BUFFER0_ATI = $8825;
4462   GL_DRAW_BUFFER1_ATI = $8826;
4463   GL_DRAW_BUFFER2_ATI = $8827;
4464   GL_DRAW_BUFFER3_ATI = $8828;
4465   GL_DRAW_BUFFER4_ATI = $8829;
4466   GL_DRAW_BUFFER5_ATI = $882A;
4467   GL_DRAW_BUFFER6_ATI = $882B;
4468   GL_DRAW_BUFFER7_ATI = $882C;
4469   GL_DRAW_BUFFER8_ATI = $882D;
4470   GL_DRAW_BUFFER9_ATI = $882E;
4471   GL_DRAW_BUFFER10_ATI = $882F;
4472   GL_DRAW_BUFFER11_ATI = $8830;
4473   GL_DRAW_BUFFER12_ATI = $8831;
4474   GL_DRAW_BUFFER13_ATI = $8832;
4475   GL_DRAW_BUFFER14_ATI = $8833;
4476   GL_DRAW_BUFFER15_ATI = $8834;
4477
4478   // GL_ATI_element_array
4479   GL_ELEMENT_ARRAY_ATI = $8768;
4480   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4481   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4482
4483   // GL_ATI_envmap_bumpmap
4484   GL_BUMP_ROT_MATRIX_ATI = $8775;
4485   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4486   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4487   GL_BUMP_TEX_UNITS_ATI = $8778;
4488   GL_DUDV_ATI = $8779;
4489   GL_DU8DV8_ATI = $877A;
4490   GL_BUMP_ENVMAP_ATI = $877B;
4491   GL_BUMP_TARGET_ATI = $877C;
4492
4493   // GL_ATI_fragment_shader
4494   GL_FRAGMENT_SHADER_ATI = $8920;
4495   GL_REG_0_ATI = $8921;
4496   GL_REG_1_ATI = $8922;
4497   GL_REG_2_ATI = $8923;
4498   GL_REG_3_ATI = $8924;
4499   GL_REG_4_ATI = $8925;
4500   GL_REG_5_ATI = $8926;
4501   GL_REG_6_ATI = $8927;
4502   GL_REG_7_ATI = $8928;
4503   GL_REG_8_ATI = $8929;
4504   GL_REG_9_ATI = $892A;
4505   GL_REG_10_ATI = $892B;
4506   GL_REG_11_ATI = $892C;
4507   GL_REG_12_ATI = $892D;
4508   GL_REG_13_ATI = $892E;
4509   GL_REG_14_ATI = $892F;
4510   GL_REG_15_ATI = $8930;
4511   GL_REG_16_ATI = $8931;
4512   GL_REG_17_ATI = $8932;
4513   GL_REG_18_ATI = $8933;
4514   GL_REG_19_ATI = $8934;
4515   GL_REG_20_ATI = $8935;
4516   GL_REG_21_ATI = $8936;
4517   GL_REG_22_ATI = $8937;
4518   GL_REG_23_ATI = $8938;
4519   GL_REG_24_ATI = $8939;
4520   GL_REG_25_ATI = $893A;
4521   GL_REG_26_ATI = $893B;
4522   GL_REG_27_ATI = $893C;
4523   GL_REG_28_ATI = $893D;
4524   GL_REG_29_ATI = $893E;
4525   GL_REG_30_ATI = $893F;
4526   GL_REG_31_ATI = $8940;
4527   GL_CON_0_ATI = $8941;
4528   GL_CON_1_ATI = $8942;
4529   GL_CON_2_ATI = $8943;
4530   GL_CON_3_ATI = $8944;
4531   GL_CON_4_ATI = $8945;
4532   GL_CON_5_ATI = $8946;
4533   GL_CON_6_ATI = $8947;
4534   GL_CON_7_ATI = $8948;
4535   GL_CON_8_ATI = $8949;
4536   GL_CON_9_ATI = $894A;
4537   GL_CON_10_ATI = $894B;
4538   GL_CON_11_ATI = $894C;
4539   GL_CON_12_ATI = $894D;
4540   GL_CON_13_ATI = $894E;
4541   GL_CON_14_ATI = $894F;
4542   GL_CON_15_ATI = $8950;
4543   GL_CON_16_ATI = $8951;
4544   GL_CON_17_ATI = $8952;
4545   GL_CON_18_ATI = $8953;
4546   GL_CON_19_ATI = $8954;
4547   GL_CON_20_ATI = $8955;
4548   GL_CON_21_ATI = $8956;
4549   GL_CON_22_ATI = $8957;
4550   GL_CON_23_ATI = $8958;
4551   GL_CON_24_ATI = $8959;
4552   GL_CON_25_ATI = $895A;
4553   GL_CON_26_ATI = $895B;
4554   GL_CON_27_ATI = $895C;
4555   GL_CON_28_ATI = $895D;
4556   GL_CON_29_ATI = $895E;
4557   GL_CON_30_ATI = $895F;
4558   GL_CON_31_ATI = $8960;
4559   GL_MOV_ATI = $8961;
4560   GL_ADD_ATI = $8963;
4561   GL_MUL_ATI = $8964;
4562   GL_SUB_ATI = $8965;
4563   GL_DOT3_ATI = $8966;
4564   GL_DOT4_ATI = $8967;
4565   GL_MAD_ATI = $8968;
4566   GL_LERP_ATI = $8969;
4567   GL_CND_ATI = $896A;
4568   GL_CND0_ATI = $896B;
4569   GL_DOT2_ADD_ATI = $896C;
4570   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4571   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4572   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4573   GL_NUM_PASSES_ATI = $8970;
4574   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4575   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4576   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4577   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4578   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4579   GL_SWIZZLE_STR_ATI = $8976;
4580   GL_SWIZZLE_STQ_ATI = $8977;
4581   GL_SWIZZLE_STR_DR_ATI = $8978;
4582   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4583   GL_SWIZZLE_STRQ_ATI = $897A;
4584   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4585   GL_RED_BIT_ATI = $00000001;
4586   GL_GREEN_BIT_ATI = $00000002;
4587   GL_BLUE_BIT_ATI = $00000004;
4588   GL_2X_BIT_ATI = $00000001;
4589   GL_4X_BIT_ATI = $00000002;
4590   GL_8X_BIT_ATI = $00000004;
4591   GL_HALF_BIT_ATI = $00000008;
4592   GL_QUARTER_BIT_ATI = $00000010;
4593   GL_EIGHTH_BIT_ATI = $00000020;
4594   GL_SATURATE_BIT_ATI = $00000040;
4595   GL_COMP_BIT_ATI = $00000002;
4596   GL_NEGATE_BIT_ATI = $00000004;
4597   GL_BIAS_BIT_ATI = $00000008;
4598
4599   // GL_ATI_pn_triangles
4600   GL_PN_TRIANGLES_ATI = $87F0;
4601   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4602   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4603   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4604   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4605   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4606   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4607   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4608   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4609
4610   // GL_ATI_separate_stencil
4611   GL_STENCIL_BACK_FUNC_ATI = $8800;
4612   GL_STENCIL_BACK_FAIL_ATI = $8801;
4613   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4614   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4615
4616   // GL_ATI_text_fragment_shader
4617   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4618
4619   // GL_ATI_texture_env_combine3
4620   GL_MODULATE_ADD_ATI = $8744;
4621   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4622   GL_MODULATE_SUBTRACT_ATI = $8746;
4623
4624   // GL_ATI_texture_float
4625   GL_RGBA_FLOAT32_ATI = $8814;
4626   GL_RGB_FLOAT32_ATI = $8815;
4627   GL_ALPHA_FLOAT32_ATI = $8816;
4628   GL_INTENSITY_FLOAT32_ATI = $8817;
4629   GL_LUMINANCE_FLOAT32_ATI = $8818;
4630   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4631   GL_RGBA_FLOAT16_ATI = $881A;
4632   GL_RGB_FLOAT16_ATI = $881B;
4633   GL_ALPHA_FLOAT16_ATI = $881C;
4634   GL_INTENSITY_FLOAT16_ATI = $881D;
4635   GL_LUMINANCE_FLOAT16_ATI = $881E;
4636   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4637
4638   // GL_ATI_texture_mirror_once
4639   GL_MIRROR_CLAMP_ATI = $8742;
4640   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4641
4642   // GL_ATI_vertex_array_object
4643   GL_STATIC_ATI = $8760;
4644   GL_DYNAMIC_ATI = $8761;
4645   GL_PRESERVE_ATI = $8762;
4646   GL_DISCARD_ATI = $8763;
4647   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4648   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4649   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4650   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4651
4652   // GL_ATI_vertex_streams
4653   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4654   GL_VERTEX_STREAM0_ATI = $876C;
4655   GL_VERTEX_STREAM1_ATI = $876D;
4656   GL_VERTEX_STREAM2_ATI = $876E;
4657   GL_VERTEX_STREAM3_ATI = $876F;
4658   GL_VERTEX_STREAM4_ATI = $8770;
4659   GL_VERTEX_STREAM5_ATI = $8771;
4660   GL_VERTEX_STREAM6_ATI = $8772;
4661   GL_VERTEX_STREAM7_ATI = $8773;
4662   GL_VERTEX_SOURCE_ATI = $8774;
4663
4664   // GL_ATI_meminfo
4665   GL_VBO_FREE_MEMORY_ATI = $87FB;
4666   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4667   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4668
4669   // GL_AMD_performance_monitor
4670   GL_COUNTER_TYPE_AMD = $8BC0;
4671   GL_COUNTER_RANGE_AMD = $8BC1;
4672   GL_UNSIGNED_INT64_AMD = $8BC2;
4673   GL_PERCENTAGE_AMD = $8BC3;
4674   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4675   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4676   GL_PERFMON_RESULT_AMD = $8BC6;
4677
4678   // GL_AMD_vertex_shader_tesselator
4679   GL_SAMPLER_BUFFER_AMD = $9001;
4680   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4681   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4682   GL_TESSELLATION_MODE_AMD = $9004;
4683   GL_TESSELLATION_FACTOR_AMD = $9005;
4684   GL_DISCRETE_AMD = $9006;
4685   GL_CONTINUOUS_AMD = $9007;
4686
4687   // GL_AMD_seamless_cubemap_per_texture
4688   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4689
4690   // GL_AMD_name_gen_delete
4691   GL_DATA_BUFFER_AMD = $9151;
4692   GL_PERFORMANCE_MONITOR_AMD = $9152;
4693   GL_QUERY_OBJECT_AMD = $9153;
4694   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
4695   GL_SAMPLER_OBJECT_AMD = $9155;
4696
4697   // GL_AMD_debug_output
4698   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
4699   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
4700   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
4701   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
4702   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
4703   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
4704   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
4705   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
4706   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
4707   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
4708   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
4709   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
4710   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
4711
4712   // GL_AMD_depth_clamp_separate
4713   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
4714   GL_DEPTH_CLAMP_FAR_AMD = $901F;
4715
4716   // GL_EXT_422_pixels
4717   GL_422_EXT = $80CC;
4718   GL_422_REV_EXT = $80CD;
4719   GL_422_AVERAGE_EXT = $80CE;
4720   GL_422_REV_AVERAGE_EXT = $80CF;
4721
4722   // GL_EXT_abgr
4723   GL_ABGR_EXT = $8000;
4724
4725   // GL_EXT_bgra
4726   GL_BGR_EXT = $80E0;
4727   GL_BGRA_EXT = $80E1;
4728
4729   // GL_EXT_blend_color
4730   GL_CONSTANT_COLOR_EXT = $8001;
4731   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
4732   GL_CONSTANT_ALPHA_EXT = $8003;
4733   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
4734   GL_BLEND_COLOR_EXT = $8005;
4735
4736   // GL_EXT_blend_func_separate
4737   GL_BLEND_DST_RGB_EXT = $80C8;
4738   GL_BLEND_SRC_RGB_EXT = $80C9;
4739   GL_BLEND_DST_ALPHA_EXT = $80CA;
4740   GL_BLEND_SRC_ALPHA_EXT = $80CB;
4741
4742   // GL_EXT_blend_minmax
4743   GL_FUNC_ADD_EXT = $8006;
4744   GL_MIN_EXT = $8007;
4745   GL_MAX_EXT = $8008;
4746   GL_BLEND_EQUATION_EXT = $8009;
4747
4748   // GL_EXT_blend_subtract
4749   GL_FUNC_SUBTRACT_EXT = $800A;
4750   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
4751
4752   // GL_EXT_clip_volume_hint
4753   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
4754
4755   // GL_EXT_cmyka
4756   GL_CMYK_EXT = $800C;
4757   GL_CMYKA_EXT = $800D;
4758   GL_PACK_CMYK_HINT_EXT = $800E;
4759   GL_UNPACK_CMYK_HINT_EXT = $800F;
4760
4761   // GL_EXT_compiled_vertex_array
4762   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
4763   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
4764
4765   // GL_EXT_convolution
4766   GL_CONVOLUTION_1D_EXT = $8010;
4767   GL_CONVOLUTION_2D_EXT = $8011;
4768   GL_SEPARABLE_2D_EXT = $8012;
4769   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
4770   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
4771   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
4772   GL_REDUCE_EXT = $8016;
4773   GL_CONVOLUTION_FORMAT_EXT = $8017;
4774   GL_CONVOLUTION_WIDTH_EXT = $8018;
4775   GL_CONVOLUTION_HEIGHT_EXT = $8019;
4776   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
4777   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
4778   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
4779   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
4780   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
4781   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
4782   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
4783   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
4784   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
4785   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
4786
4787   // GL_EXT_coordinate_frame
4788   GL_TANGENT_ARRAY_EXT = $8439;
4789   GL_BINORMAL_ARRAY_EXT = $843A;
4790   GL_CURRENT_TANGENT_EXT = $843B;
4791   GL_CURRENT_BINORMAL_EXT = $843C;
4792   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
4793   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
4794   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
4795   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
4796   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
4797   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
4798   GL_MAP1_TANGENT_EXT = $8444;
4799   GL_MAP2_TANGENT_EXT = $8445;
4800   GL_MAP1_BINORMAL_EXT = $8446;
4801   GL_MAP2_BINORMAL_EXT = $8447;
4802
4803   // GL_EXT_cull_vertex
4804   GL_CULL_VERTEX_EXT = $81AA;
4805   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
4806   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
4807
4808   // GL_EXT_draw_range_elements
4809   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
4810   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
4811
4812   // GL_EXT_fog_coord
4813   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
4814   GL_FOG_COORDINATE_EXT = $8451;
4815   GL_FRAGMENT_DEPTH_EXT = $8452;
4816   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
4817   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
4818   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
4819   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
4820   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
4821
4822   // GL_EXT_framebuffer_object
4823   GL_FRAMEBUFFER_EXT = $8D40;
4824   GL_RENDERBUFFER_EXT = $8D41;
4825   GL_STENCIL_INDEX_EXT = $8D45;
4826   GL_STENCIL_INDEX1_EXT = $8D46;
4827   GL_STENCIL_INDEX4_EXT = $8D47;
4828   GL_STENCIL_INDEX8_EXT = $8D48;
4829   GL_STENCIL_INDEX16_EXT = $8D49;
4830   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
4831   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
4832   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
4833   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
4834   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
4835   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
4836   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
4837   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
4838   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
4839   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
4840   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
4841   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
4842   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
4843   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
4844   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
4845   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
4846   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
4847   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
4848   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
4849   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
4850   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
4851   GL_COLOR_ATTACHMENT13_EXT = $8CED;
4852   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
4853   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
4854   GL_DEPTH_ATTACHMENT_EXT = $8D00;
4855   GL_STENCIL_ATTACHMENT_EXT = $8D20;
4856   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
4857   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
4858   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
4859   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
4860   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
4861   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
4862   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
4863   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
4864   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
4865   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
4866   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
4867   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
4868   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
4869   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
4870   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
4871
4872   // GL_EXT_histogram
4873   GL_HISTOGRAM_EXT = $8024;
4874   GL_PROXY_HISTOGRAM_EXT = $8025;
4875   GL_HISTOGRAM_WIDTH_EXT = $8026;
4876   GL_HISTOGRAM_FORMAT_EXT = $8027;
4877   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
4878   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
4879   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
4880   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
4881   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
4882   GL_HISTOGRAM_SINK_EXT = $802D;
4883   GL_MINMAX_EXT = $802E;
4884   GL_MINMAX_FORMAT_EXT = $802F;
4885   GL_MINMAX_SINK_EXT = $8030;
4886   GL_TABLE_TOO_LARGE_EXT = $8031;
4887
4888   // GL_EXT_index_array_formats
4889   GL_IUI_V2F_EXT = $81AD;
4890   GL_IUI_V3F_EXT = $81AE;
4891   GL_IUI_N3F_V2F_EXT = $81AF;
4892   GL_IUI_N3F_V3F_EXT = $81B0;
4893   GL_T2F_IUI_V2F_EXT = $81B1;
4894   GL_T2F_IUI_V3F_EXT = $81B2;
4895   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
4896   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
4897
4898   // GL_EXT_index_func
4899   GL_INDEX_TEST_EXT = $81B5;
4900   GL_INDEX_TEST_FUNC_EXT = $81B6;
4901   GL_INDEX_TEST_REF_EXT = $81B7;
4902
4903   // GL_EXT_index_material
4904   GL_INDEX_MATERIAL_EXT = $81B8;
4905   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
4906   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
4907
4908   // GL_EXT_light_texture
4909   GL_FRAGMENT_MATERIAL_EXT = $8349;
4910   GL_FRAGMENT_NORMAL_EXT = $834A;
4911   GL_FRAGMENT_COLOR_EXT = $834C;
4912   GL_ATTENUATION_EXT = $834D;
4913   GL_SHADOW_ATTENUATION_EXT = $834E;
4914   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
4915   GL_TEXTURE_LIGHT_EXT = $8350;
4916   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
4917   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
4918
4919   // GL_EXT_multisample
4920   GL_MULTISAMPLE_EXT = $809D;
4921   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
4922   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
4923   GL_SAMPLE_MASK_EXT = $80A0;
4924   GL_1PASS_EXT = $80A1;
4925   GL_2PASS_0_EXT = $80A2;
4926   GL_2PASS_1_EXT = $80A3;
4927   GL_4PASS_0_EXT = $80A4;
4928   GL_4PASS_1_EXT = $80A5;
4929   GL_4PASS_2_EXT = $80A6;
4930   GL_4PASS_3_EXT = $80A7;
4931   GL_SAMPLE_BUFFERS_EXT = $80A8;
4932   GL_SAMPLES_EXT = $80A9;
4933   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
4934   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
4935   GL_SAMPLE_PATTERN_EXT = $80AC;
4936   GL_MULTISAMPLE_BIT_EXT = $20000000;
4937
4938   // GL_EXT_packed_pixels
4939   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
4940   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
4941   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
4942   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
4943   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
4944
4945   // GL_EXT_paletted_texture
4946   GL_COLOR_INDEX1_EXT = $80E2;
4947   GL_COLOR_INDEX2_EXT = $80E3;
4948   GL_COLOR_INDEX4_EXT = $80E4;
4949   GL_COLOR_INDEX8_EXT = $80E5;
4950   GL_COLOR_INDEX12_EXT = $80E6;
4951   GL_COLOR_INDEX16_EXT = $80E7;
4952   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
4953
4954   // GL_EXT_pixel_transform
4955   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
4956   GL_PIXEL_MAG_FILTER_EXT = $8331;
4957   GL_PIXEL_MIN_FILTER_EXT = $8332;
4958   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
4959   GL_CUBIC_EXT = $8334;
4960   GL_AVERAGE_EXT = $8335;
4961   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
4962   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
4963   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
4964
4965   // GL_EXT_point_parameters
4966   GL_POINT_SIZE_MIN_EXT = $8126;
4967   GL_POINT_SIZE_MAX_EXT = $8127;
4968   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
4969   GL_DISTANCE_ATTENUATION_EXT = $8129;
4970
4971   // GL_EXT_polygon_offset
4972   GL_POLYGON_OFFSET_EXT = $8037;
4973   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
4974   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
4975
4976   // GL_EXT_rescale_normal
4977   GL_RESCALE_NORMAL_EXT = $803A;
4978
4979   // GL_EXT_secondary_color
4980   GL_COLOR_SUM_EXT = $8458;
4981   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
4982   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
4983   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
4984   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
4985   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
4986   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
4987
4988   // GL_EXT_separate_specular_color
4989   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
4990   GL_SINGLE_COLOR_EXT = $81F9;
4991   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
4992
4993   // GL_EXT_shared_texture_palette
4994   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
4995
4996   // GL_EXT_stencil_two_side
4997   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
4998   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
4999
5000   // GL_EXT_stencil_wrap
5001   GL_INCR_WRAP_EXT = $8507;
5002   GL_DECR_WRAP_EXT = $8508;
5003
5004   // GL_EXT_texture
5005   GL_ALPHA4_EXT = $803B;
5006   GL_ALPHA8_EXT = $803C;
5007   GL_ALPHA12_EXT = $803D;
5008   GL_ALPHA16_EXT = $803E;
5009   GL_LUMINANCE4_EXT = $803F;
5010   GL_LUMINANCE8_EXT = $8040;
5011   GL_LUMINANCE12_EXT = $8041;
5012   GL_LUMINANCE16_EXT = $8042;
5013   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5014   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5015   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5016   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5017   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5018   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5019   GL_INTENSITY_EXT = $8049;
5020   GL_INTENSITY4_EXT = $804A;
5021   GL_INTENSITY8_EXT = $804B;
5022   GL_INTENSITY12_EXT = $804C;
5023   GL_INTENSITY16_EXT = $804D;
5024   GL_RGB2_EXT = $804E;
5025   GL_RGB4_EXT = $804F;
5026   GL_RGB5_EXT = $8050;
5027   GL_RGB8_EXT = $8051;
5028   GL_RGB10_EXT = $8052;
5029   GL_RGB12_EXT = $8053;
5030   GL_RGB16_EXT = $8054;
5031   GL_RGBA2_EXT = $8055;
5032   GL_RGBA4_EXT = $8056;
5033   GL_RGB5_A1_EXT = $8057;
5034   GL_RGBA8_EXT = $8058;
5035   GL_RGB10_A2_EXT = $8059;
5036   GL_RGBA12_EXT = $805A;
5037   GL_RGBA16_EXT = $805B;
5038   GL_TEXTURE_RED_SIZE_EXT = $805C;
5039   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5040   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5041   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5042   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5043   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5044   GL_REPLACE_EXT = $8062;
5045   GL_PROXY_TEXTURE_1D_EXT = $8063;
5046   GL_PROXY_TEXTURE_2D_EXT = $8064;
5047   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5048
5049   // GL_EXT_texture3D
5050   GL_PACK_SKIP_IMAGES_EXT = $806B;
5051   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5052   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5053   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5054   GL_TEXTURE_3D_EXT = $806F;
5055   GL_PROXY_TEXTURE_3D_EXT = $8070;
5056   GL_TEXTURE_DEPTH_EXT = $8071;
5057   GL_TEXTURE_WRAP_R_EXT = $8072;
5058   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5059
5060   // GL_EXT_texture_compression_s3tc
5061   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5062   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5063   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5064   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5065
5066   // GL_EXT_texture_cube_map
5067   GL_NORMAL_MAP_EXT = $8511;
5068   GL_REFLECTION_MAP_EXT = $8512;
5069   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5070   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5071   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5072   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5073   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5074   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5075   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5076   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5077   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5078   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5079
5080   // GL_EXT_texture_edge_clamp
5081   GL_CLAMP_TO_EDGE_EXT = $812F;
5082
5083   // GL_EXT_texture_env_combine
5084   GL_COMBINE_EXT = $8570;
5085   GL_COMBINE_RGB_EXT = $8571;
5086   GL_COMBINE_ALPHA_EXT = $8572;
5087   GL_RGB_SCALE_EXT = $8573;
5088   GL_ADD_SIGNED_EXT = $8574;
5089   GL_INTERPOLATE_EXT = $8575;
5090   GL_CONSTANT_EXT = $8576;
5091   GL_PRIMARY_COLOR_EXT = $8577;
5092   GL_PREVIOUS_EXT = $8578;
5093   GL_SOURCE0_RGB_EXT = $8580;
5094   GL_SOURCE1_RGB_EXT = $8581;
5095   GL_SOURCE2_RGB_EXT = $8582;
5096   GL_SOURCE0_ALPHA_EXT = $8588;
5097   GL_SOURCE1_ALPHA_EXT = $8589;
5098   GL_SOURCE2_ALPHA_EXT = $858A;
5099   GL_OPERAND0_RGB_EXT = $8590;
5100   GL_OPERAND1_RGB_EXT = $8591;
5101   GL_OPERAND2_RGB_EXT = $8592;
5102   GL_OPERAND0_ALPHA_EXT = $8598;
5103   GL_OPERAND1_ALPHA_EXT = $8599;
5104   GL_OPERAND2_ALPHA_EXT = $859A;
5105
5106   // GL_EXT_texture_env_dot3
5107   GL_DOT3_RGB_EXT = $8740;
5108   GL_DOT3_RGBA_EXT = $8741;
5109
5110   // GL_EXT_texture_filter_anisotropic
5111   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5112   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5113
5114   // GL_EXT_texture_lod_bias
5115   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5116   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5117   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5118
5119   // GL_EXT_texture_object
5120   GL_TEXTURE_PRIORITY_EXT = $8066;
5121   GL_TEXTURE_RESIDENT_EXT = $8067;
5122   GL_TEXTURE_1D_BINDING_EXT = $8068;
5123   GL_TEXTURE_2D_BINDING_EXT = $8069;
5124   GL_TEXTURE_3D_BINDING_EXT = $806A;
5125
5126   // GL_EXT_texture_perturb_normal
5127   GL_PERTURB_EXT = $85AE;
5128   GL_TEXTURE_NORMAL_EXT = $85AF;
5129
5130   // GL_EXT_texture_rectangle
5131   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5132   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5133   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5134   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5135
5136   // GL_EXT_vertex_array
5137   GL_VERTEX_ARRAY_EXT = $8074;
5138   GL_NORMAL_ARRAY_EXT = $8075;
5139   GL_COLOR_ARRAY_EXT = $8076;
5140   GL_INDEX_ARRAY_EXT = $8077;
5141   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5142   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5143   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5144   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5145   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5146   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5147   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5148   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5149   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5150   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5151   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5152   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5153   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5154   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5155   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5156   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5157   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5158   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5159   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5160   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5161   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5162   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5163   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5164   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5165   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5166   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5167   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5168   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5169
5170   // GL_EXT_vertex_shader
5171   GL_VERTEX_SHADER_EXT = $8780;
5172   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5173   GL_OP_INDEX_EXT = $8782;
5174   GL_OP_NEGATE_EXT = $8783;
5175   GL_OP_DOT3_EXT = $8784;
5176   GL_OP_DOT4_EXT = $8785;
5177   GL_OP_MUL_EXT = $8786;
5178   GL_OP_ADD_EXT = $8787;
5179   GL_OP_MADD_EXT = $8788;
5180   GL_OP_FRAC_EXT = $8789;
5181   GL_OP_MAX_EXT = $878A;
5182   GL_OP_MIN_EXT = $878B;
5183   GL_OP_SET_GE_EXT = $878C;
5184   GL_OP_SET_LT_EXT = $878D;
5185   GL_OP_CLAMP_EXT = $878E;
5186   GL_OP_FLOOR_EXT = $878F;
5187   GL_OP_ROUND_EXT = $8790;
5188   GL_OP_EXP_BASE_2_EXT = $8791;
5189   GL_OP_LOG_BASE_2_EXT = $8792;
5190   GL_OP_POWER_EXT = $8793;
5191   GL_OP_RECIP_EXT = $8794;
5192   GL_OP_RECIP_SQRT_EXT = $8795;
5193   GL_OP_SUB_EXT = $8796;
5194   GL_OP_CROSS_PRODUCT_EXT = $8797;
5195   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5196   GL_OP_MOV_EXT = $8799;
5197   GL_OUTPUT_VERTEX_EXT = $879A;
5198   GL_OUTPUT_COLOR0_EXT = $879B;
5199   GL_OUTPUT_COLOR1_EXT = $879C;
5200   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5201   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5202   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5203   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5204   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5205   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5206   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5207   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5208   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5209   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5210   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5211   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5212   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5213   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5214   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5215   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5216   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5217   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5218   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5219   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5220   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5221   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5222   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5223   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5224   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5225   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5226   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5227   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5228   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5229   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5230   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5231   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5232   GL_OUTPUT_FOG_EXT = $87BD;
5233   GL_SCALAR_EXT = $87BE;
5234   GL_VECTOR_EXT = $87BF;
5235   GL_MATRIX_EXT = $87C0;
5236   GL_VARIANT_EXT = $87C1;
5237   GL_INVARIANT_EXT = $87C2;
5238   GL_LOCAL_CONSTANT_EXT = $87C3;
5239   GL_LOCAL_EXT = $87C4;
5240   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5241   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5242   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5243   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5244   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5245   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5246   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5247   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5248   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5249   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5250   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5251   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5252   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5253   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5254   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5255   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5256   GL_X_EXT = $87D5;
5257   GL_Y_EXT = $87D6;
5258   GL_Z_EXT = $87D7;
5259   GL_W_EXT = $87D8;
5260   GL_NEGATIVE_X_EXT = $87D9;
5261   GL_NEGATIVE_Y_EXT = $87DA;
5262   GL_NEGATIVE_Z_EXT = $87DB;
5263   GL_NEGATIVE_W_EXT = $87DC;
5264   GL_ZERO_EXT = $87DD;
5265   GL_ONE_EXT = $87DE;
5266   GL_NEGATIVE_ONE_EXT = $87DF;
5267   GL_NORMALIZED_RANGE_EXT = $87E0;
5268   GL_FULL_RANGE_EXT = $87E1;
5269   GL_CURRENT_VERTEX_EXT = $87E2;
5270   GL_MVP_MATRIX_EXT = $87E3;
5271   GL_VARIANT_VALUE_EXT = $87E4;
5272   GL_VARIANT_DATATYPE_EXT = $87E5;
5273   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5274   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5275   GL_VARIANT_ARRAY_EXT = $87E8;
5276   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5277   GL_INVARIANT_VALUE_EXT = $87EA;
5278   GL_INVARIANT_DATATYPE_EXT = $87EB;
5279   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5280   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5281
5282   // GL_EXT_vertex_weighting
5283   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5284   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5285   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5286   GL_MODELVIEW1_MATRIX_EXT = $8506;
5287   GL_VERTEX_WEIGHTING_EXT = $8509;
5288   GL_MODELVIEW0_EXT = $1700;
5289   GL_MODELVIEW1_EXT = $850A;
5290   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5291   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5292   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5293   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5294   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5295   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5296
5297   // GL_EXT_depth_bounds_test
5298   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5299   GL_DEPTH_BOUNDS_EXT = $8891;
5300
5301   // GL_EXT_texture_mirror_clamp
5302   GL_MIRROR_CLAMP_EXT = $8742;
5303   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5304   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5305
5306   // GL_EXT_blend_equation_separate
5307   GL_BLEND_EQUATION_RGB_EXT = $8009;
5308   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5309
5310   // GL_EXT_pixel_buffer_object
5311   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5312   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5313   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5314   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5315
5316   // GL_EXT_stencil_clear_tag
5317   GL_STENCIL_TAG_BITS_EXT = $88F2;
5318   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5319
5320   // GL_EXT_packed_depth_stencil
5321   GL_DEPTH_STENCIL_EXT = $84F9;
5322   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5323   GL_DEPTH24_STENCIL8_EXT = $88F0;
5324   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5325
5326   // GL_EXT_texture_sRGB
5327   GL_SRGB_EXT = $8C40;
5328   GL_SRGB8_EXT = $8C41;
5329   GL_SRGB_ALPHA_EXT = $8C42;
5330   GL_SRGB8_ALPHA8_EXT = $8C43;
5331   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5332   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5333   GL_SLUMINANCE_EXT = $8C46;
5334   GL_SLUMINANCE8_EXT = $8C47;
5335   GL_COMPRESSED_SRGB_EXT = $8C48;
5336   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5337   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5338   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5339   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5340   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5341   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5342   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5343
5344   // GL_EXT_framebuffer_blit
5345   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5346   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5347   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5348   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5349
5350   // GL_EXT_framebuffer_multisample
5351   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5352   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5353   GL_MAX_SAMPLES_EXT = $8D57;
5354
5355   // GL_EXT_timer_query
5356   GL_TIME_ELAPSED_EXT = $88BF;
5357
5358   // GL_EXT_bindable_uniform
5359   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5360   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5361   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5362   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5363   GL_UNIFORM_BUFFER_EXT = $8DEE;
5364   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5365
5366   // GL_EXT_framebuffer_sRGB
5367   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5368   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5369   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5370   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5371
5372   // GL_EXT_geometry_shader4
5373   GL_GEOMETRY_SHADER_EXT = $8DD9;
5374   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5375   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5376   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5377   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5378   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5379   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5380   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5381   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5382   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5383   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5384   GL_LINES_ADJACENCY_EXT = $A;
5385   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5386   GL_TRIANGLES_ADJACENCY_EXT = $C;
5387   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5388   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5389   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5390   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5391   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5392   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5393
5394   // GL_EXT_gpu_shader4
5395   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5396   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5397   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5398   GL_SAMPLER_BUFFER_EXT = $8DC2;
5399   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5400   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5401   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5402   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5403   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5404   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5405   GL_INT_SAMPLER_1D_EXT = $8DC9;
5406   GL_INT_SAMPLER_2D_EXT = $8DCA;
5407   GL_INT_SAMPLER_3D_EXT = $8DCB;
5408   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5409   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5410   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5411   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5412   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5413   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5414   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5415   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5416   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5417   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5418   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5419   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5420   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5421   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5422   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5423
5424   // GL_EXT_packed_float
5425   GL_R11F_G11F_B10F_EXT = $8C3A;
5426   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5427   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5428   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5429   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5430   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5431
5432   // GL_EXT_texture_array
5433   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5434   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5435   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5436   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5437   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5438   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5439   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5440   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5441
5442   // GL_EXT_texture_buffer_object
5443   GL_TEXTURE_BUFFER_EXT = $8C2A;
5444   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5445   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5446   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5447   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5448
5449   // GL_EXT_texture_compression_latc
5450   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5451   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5452   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5453   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5454
5455   // GL_EXT_texture_compression_rgtc
5456   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5457   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5458   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5459   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5460
5461   // GL_EXT_texture_integer
5462   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5463   GL_RGBA32UI_EXT = $8D70;
5464   GL_RGB32UI_EXT = $8D71;
5465   GL_ALPHA32UI_EXT = $8D72;
5466   GL_INTENSITY32UI_EXT = $8D73;
5467   GL_LUMINANCE32UI_EXT = $8D74;
5468   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5469   GL_RGBA16UI_EXT = $8D76;
5470   GL_RGB16UI_EXT = $8D77;
5471   GL_ALPHA16UI_EXT = $8D78;
5472   GL_INTENSITY16UI_EXT = $8D79;
5473   GL_LUMINANCE16UI_EXT = $8D7A;
5474   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5475   GL_RGBA8UI_EXT = $8D7C;
5476   GL_RGB8UI_EXT = $8D7D;
5477   GL_ALPHA8UI_EXT = $8D7E;
5478   GL_INTENSITY8UI_EXT = $8D7F;
5479   GL_LUMINANCE8UI_EXT = $8D80;
5480   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5481   GL_RGBA32I_EXT = $8D82;
5482   GL_RGB32I_EXT = $8D83;
5483   GL_ALPHA32I_EXT = $8D84;
5484   GL_INTENSITY32I_EXT = $8D85;
5485   GL_LUMINANCE32I_EXT = $8D86;
5486   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5487   GL_RGBA16I_EXT = $8D88;
5488   GL_RGB16I_EXT = $8D89;
5489   GL_ALPHA16I_EXT = $8D8A;
5490   GL_INTENSITY16I_EXT = $8D8B;
5491   GL_LUMINANCE16I_EXT = $8D8C;
5492   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5493   GL_RGBA8I_EXT = $8D8E;
5494   GL_RGB8I_EXT = $8D8F;
5495   GL_ALPHA8I_EXT = $8D90;
5496   GL_INTENSITY8I_EXT = $8D91;
5497   GL_LUMINANCE8I_EXT = $8D92;
5498   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5499   GL_RED_INTEGER_EXT = $8D94;
5500   GL_GREEN_INTEGER_EXT = $8D95;
5501   GL_BLUE_INTEGER_EXT = $8D96;
5502   GL_ALPHA_INTEGER_EXT = $8D97;
5503   GL_RGB_INTEGER_EXT = $8D98;
5504   GL_RGBA_INTEGER_EXT = $8D99;
5505   GL_BGR_INTEGER_EXT = $8D9A;
5506   GL_BGRA_INTEGER_EXT = $8D9B;
5507   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5508   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5509
5510   // GL_EXT_texture_shared_exponent
5511   GL_RGB9_E5_EXT = $8C3D;
5512   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5513   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5514
5515   // GL_EXT_transform_feedback
5516   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5517   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5518   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5519   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5520   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5521   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5522   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5523   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5524   GL_RASTERIZER_DISCARD_EXT = $8C89;
5525   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5526   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5527   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5528   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5529   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5530   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5531
5532   // GL_EXT_direct_state_access
5533   GL_PROGRAM_MATRIX_EXT = $8E2D;
5534   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5535   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5536
5537   // GL_EXT_texture_swizzle
5538   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5539   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5540   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5541   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5542   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5543
5544   // GL_EXT_provoking_vertex
5545   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5546   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5547   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5548   GL_PROVOKING_VERTEX_EXT = $8E4F;
5549
5550   // GL_EXT_texture_snorm
5551   GL_ALPHA_SNORM = $9010;
5552   GL_LUMINANCE_SNORM = $9011;
5553   GL_LUMINANCE_ALPHA_SNORM = $9012;
5554   GL_INTENSITY_SNORM = $9013;
5555   GL_ALPHA8_SNORM = $9014;
5556   GL_LUMINANCE8_SNORM = $9015;
5557   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5558   GL_INTENSITY8_SNORM = $9017;
5559   GL_ALPHA16_SNORM = $9018;
5560   GL_LUMINANCE16_SNORM = $9019;
5561   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5562   GL_INTENSITY16_SNORM = $901B;
5563   { reuse GL_RED_SNORM }
5564   { reuse GL_RG_SNORM }
5565   { reuse GL_RGB_SNORM }
5566   { reuse GL_RGBA_SNORM }
5567   { reuse GL_R8_SNORM }
5568   { reuse GL_RG8_SNORM }
5569   { reuse GL_RGB8_SNORM }
5570   { reuse GL_RGBA8_SNORM }
5571   { reuse GL_R16_SNORM }
5572   { reuse GL_RG16_SNORM }
5573   { reuse GL_RGB16_SNORM }
5574   { reuse GL_RGBA16_SNORM }
5575   { reuse GL_SIGNED_NORMALIZED }
5576
5577   // GL_EXT_separate_shader_objects
5578   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5579
5580   // GL_EXT_shader_image_load_store
5581   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5582   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5583   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5584   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5585   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5586   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5587   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5588   GL_IMAGE_1D_EXT = $904C;
5589   GL_IMAGE_2D_EXT = $904D;
5590   GL_IMAGE_3D_EXT = $904E;
5591   GL_IMAGE_2D_RECT_EXT = $904F;
5592   GL_IMAGE_CUBE_EXT = $9050;
5593   GL_IMAGE_BUFFER_EXT = $9051;
5594   GL_IMAGE_1D_ARRAY_EXT = $9052;
5595   GL_IMAGE_2D_ARRAY_EXT = $9053;
5596   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5597   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5598   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5599   GL_INT_IMAGE_1D_EXT = $9057;
5600   GL_INT_IMAGE_2D_EXT = $9058;
5601   GL_INT_IMAGE_3D_EXT = $9059;
5602   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5603   GL_INT_IMAGE_CUBE_EXT = $905B;
5604   GL_INT_IMAGE_BUFFER_EXT = $905C;
5605   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5606   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5607   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5608   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5609   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5610   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5611   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5612   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5613   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5614   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5615   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5616   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5617   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5618   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5619   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5620   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5621   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5622   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5623   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5624   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5625   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5626   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5627   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5628   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5629   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5630   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5631   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5632   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5633   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5634   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5635   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5636
5637   // GL_EXT_vertex_attrib_64bit
5638   { reuse GL_DOUBLE }
5639   GL_DOUBLE_VEC2_EXT = $8FFC;
5640   GL_DOUBLE_VEC3_EXT = $8FFD;
5641   GL_DOUBLE_VEC4_EXT = $8FFE;
5642   GL_DOUBLE_MAT2_EXT = $8F46;
5643   GL_DOUBLE_MAT3_EXT = $8F47;
5644   GL_DOUBLE_MAT4_EXT = $8F48;
5645   GL_DOUBLE_MAT2x3_EXT = $8F49;
5646   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5647   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5648   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5649   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5650   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5651
5652   // GL_EXT_texture_sRGB_decode
5653   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5654   GL_DECODE_EXT = $8A49;
5655   GL_SKIP_DECODE_EXT = $8A4A;
5656
5657   // GL_NV_texture_multisample
5658   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5659   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5660
5661   // GL_AMD_blend_minmax_factor
5662   GL_FACTOR_MIN_AMD                 = $901C;
5663   GL_FACTOR_MAX_AMD                 = $901D;
5664
5665   // GL_AMD_sample_positions
5666   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5667
5668   // GL_EXT_x11_sync_object
5669   GL_SYNC_X11_FENCE_EXT             = $90E1;
5670
5671   // GL_EXT_framebuffer_multisample_blit_scaled
5672   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5673   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5674
5675   // (4.3) GL_NV_path_rendering
5676         GL_PATH_FORMAT_SVG_NV            = $9070;
5677         GL_PATH_FORMAT_PS_NV             = $9071;
5678         GL_STANDARD_FONT_NAME_NV         = $9072;
5679         GL_SYSTEM_FONT_NAME_NV           = $9073;
5680         GL_FILE_NAME_NV                  = $9074;
5681         GL_PATH_STROKE_WIDTH_NV          = $9075;
5682         GL_PATH_END_CAPS_NV              = $9076;
5683         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5684         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5685         GL_PATH_JOIN_STYLE_NV            = $9079;
5686         GL_PATH_MITER_LIMIT_NV           = $907A;
5687         GL_PATH_DASH_CAPS_NV             = $907B;
5688         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5689         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5690         GL_PATH_DASH_OFFSET_NV           = $907E;
5691         GL_PATH_CLIENT_LENGTH_NV         = $907F;
5692         GL_PATH_FILL_MODE_NV             = $9080;
5693         GL_PATH_FILL_MASK_NV             = $9081;
5694         GL_PATH_FILL_COVER_MODE_NV       = $9082;
5695         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
5696         GL_PATH_STROKE_MASK_NV           = $9084;
5697         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
5698         GL_PATH_STROKE_BOUND_NV          = $9086;
5699         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
5700         GL_COUNT_UP_NV                   = $9088;
5701         GL_COUNT_DOWN_NV                 = $9089;
5702         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
5703         GL_CONVEX_HULL_NV                = $908B;
5704         GL_MULTI_HULLS_NV                = $908C;
5705         GL_BOUNDING_BOX_NV               = $908D;
5706         GL_TRANSLATE_X_NV                = $908E;
5707         GL_TRANSLATE_Y_NV                = $908F;
5708         GL_TRANSLATE_2D_NV               = $9090;
5709         GL_TRANSLATE_3D_NV               = $9091;
5710         GL_AFFINE_2D_NV                  = $9092;
5711         GL_PROJECTIVE_2D_NV              = $9093;
5712         GL_AFFINE_3D_NV                  = $9094;
5713         GL_PROJECTIVE_3D_NV              = $9095;
5714         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
5715         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
5716         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
5717         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
5718         GL_UTF8_NV                       = $909A;
5719         GL_UTF16_NV                      = $909B;
5720         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
5721         GL_PATH_COMMAND_COUNT_NV         = $909D;
5722         GL_PATH_COORD_COUNT_NV           = $909E;
5723   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
5724   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
5725   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
5726   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
5727   GL_SQUARE_NV                     = $90A3;
5728   GL_ROUND_NV                      = $90A4;
5729   GL_TRIANGULAR_NV                 = $90A5;
5730   GL_BEVEL_NV                      = $90A6;
5731   GL_MITER_REVERT_NV               = $90A7;
5732   GL_MITER_TRUNCATE_NV             = $90A8;
5733   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
5734   GL_USE_MISSING_GLYPH_NV          = $90AA;
5735   GL_PATH_ERROR_POSITION_NV        = $90AB;
5736   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
5737   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
5738   GL_ADJACENT_PAIRS_NV             = $90AE;
5739   GL_FIRST_TO_REST_NV              = $90AF;
5740   GL_PATH_GEN_MODE_NV              = $90B0;
5741   GL_PATH_GEN_COEFF_NV             = $90B1;
5742   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
5743   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
5744   GL_PATH_STENCIL_FUNC_NV          = $90B7;
5745   GL_PATH_STENCIL_REF_NV           = $90B8;
5746   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
5747   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
5748   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
5749   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
5750   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
5751   GL_MOVE_TO_RESETS_NV             = $90B5;
5752   GL_MOVE_TO_CONTINUES_NV          = $90B6;
5753   GL_CLOSE_PATH_NV                 = $00;
5754   GL_MOVE_TO_NV                    = $02;
5755   GL_RELATIVE_MOVE_TO_NV           = $03;
5756   GL_LINE_TO_NV                    = $04;
5757   GL_RELATIVE_LINE_TO_NV           = $05;
5758   GL_HORIZONTAL_LINE_TO_NV         = $06;
5759   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
5760   GL_VERTICAL_LINE_TO_NV           = $08;
5761   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
5762   GL_QUADRATIC_CURVE_TO_NV         = $0A;
5763   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
5764   GL_CUBIC_CURVE_TO_NV             = $0C;
5765   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
5766   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
5767   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
5768   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
5769   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
5770   GL_SMALL_CCW_ARC_TO_NV           = $12;
5771   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
5772   GL_SMALL_CW_ARC_TO_NV            = $14;
5773   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
5774   GL_LARGE_CCW_ARC_TO_NV           = $16;
5775   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
5776   GL_LARGE_CW_ARC_TO_NV            = $18;
5777   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
5778   GL_RESTART_PATH_NV               = $F0;
5779   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
5780   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
5781   GL_RECT_NV                       = $F6;
5782   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
5783   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
5784   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
5785   GL_ARC_TO_NV                     = $FE;
5786   GL_RELATIVE_ARC_TO_NV            = $FF;
5787   GL_BOLD_BIT_NV                   = $01;
5788   GL_ITALIC_BIT_NV                 = $02;
5789   GL_GLYPH_WIDTH_BIT_NV            = $01;
5790   GL_GLYPH_HEIGHT_BIT_NV           = $02;
5791   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
5792   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
5793   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
5794   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
5795   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
5796   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
5797   GL_GLYPH_HAS_KERNING_NV          = $100;
5798   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
5799   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
5800   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
5801   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
5802   GL_FONT_UNITS_PER_EM_NV          = $00100000;
5803   GL_FONT_ASCENDER_NV              = $00200000;
5804   GL_FONT_DESCENDER_NV             = $00400000;
5805   GL_FONT_HEIGHT_NV                = $00800000;
5806   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
5807   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
5808   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
5809   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
5810   GL_FONT_HAS_KERNING_NV           = $10000000;
5811
5812   // (4.3) GL_AMD_pinned_memory
5813   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
5814
5815   // (4.3) GL_AMD_stencil_operation_extended
5816   GL_SET_AMD                       = $874A;
5817   GL_REPLACE_VALUE_AMD             = $874B;
5818   GL_STENCIL_OP_VALUE_AMD          = $874C;
5819   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
5820
5821   // (4.3) GL_AMD_vertex_shader_viewport_index
5822
5823   // (4.3) GL_AMD_vertex_shader_layer
5824
5825   // (4.3) GL_NV_bindless_texture
5826
5827   // (4.3) GL_NV_shader_atomic_float
5828
5829   // (4.3) GL_AMD_query_buffer_object
5830   GL_QUERY_BUFFER_AMD              = $9192;
5831   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
5832   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
5833
5834   // GL_FfdMaskSGIX
5835   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
5836   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
5837
5838   // GL_HP_convolution_border_modes
5839   GL_IGNORE_BORDER_HP = $8150;
5840   GL_CONSTANT_BORDER_HP = $8151;
5841   GL_REPLICATE_BORDER_HP = $8153;
5842   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
5843
5844   // GL_HP_image_transform
5845   GL_IMAGE_SCALE_X_HP = $8155;
5846   GL_IMAGE_SCALE_Y_HP = $8156;
5847   GL_IMAGE_TRANSLATE_X_HP = $8157;
5848   GL_IMAGE_TRANSLATE_Y_HP = $8158;
5849   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
5850   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
5851   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
5852   GL_IMAGE_MAG_FILTER_HP = $815C;
5853   GL_IMAGE_MIN_FILTER_HP = $815D;
5854   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
5855   GL_CUBIC_HP = $815F;
5856   GL_AVERAGE_HP = $8160;
5857   GL_IMAGE_TRANSFORM_2D_HP = $8161;
5858   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
5859   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
5860
5861   // GL_HP_occlusion_test
5862   GL_OCCLUSION_TEST_HP = $8165;
5863   GL_OCCLUSION_TEST_RESULT_HP = $8166;
5864
5865   // GL_HP_texture_lighting
5866   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
5867   GL_TEXTURE_POST_SPECULAR_HP = $8168;
5868   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
5869
5870   // GL_IBM_cull_vertex
5871   GL_CULL_VERTEX_IBM = 103050;
5872
5873   // GL_IBM_rasterpos_clip
5874   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
5875
5876   // GL_IBM_texture_mirrored_repeat
5877   GL_MIRRORED_REPEAT_IBM = $8370;
5878
5879   // GL_IBM_vertex_array_lists
5880   GL_VERTEX_ARRAY_LIST_IBM = 103070;
5881   GL_NORMAL_ARRAY_LIST_IBM = 103071;
5882   GL_COLOR_ARRAY_LIST_IBM = 103072;
5883   GL_INDEX_ARRAY_LIST_IBM = 103073;
5884   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
5885   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
5886   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
5887   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
5888   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
5889   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
5890   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
5891   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
5892   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
5893   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
5894   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
5895   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
5896
5897   // GL_INGR_color_clamp
5898   GL_RED_MIN_CLAMP_INGR = $8560;
5899   GL_GREEN_MIN_CLAMP_INGR = $8561;
5900   GL_BLUE_MIN_CLAMP_INGR = $8562;
5901   GL_ALPHA_MIN_CLAMP_INGR = $8563;
5902   GL_RED_MAX_CLAMP_INGR = $8564;
5903   GL_GREEN_MAX_CLAMP_INGR = $8565;
5904   GL_BLUE_MAX_CLAMP_INGR = $8566;
5905   GL_ALPHA_MAX_CLAMP_INGR = $8567;
5906
5907   // GL_INGR_interlace_read
5908   GL_INTERLACE_READ_INGR = $8568;
5909
5910   // GL_INTEL_parallel_arrays
5911   GL_PARALLEL_ARRAYS_INTEL = $83F4;
5912   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
5913   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
5914   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
5915   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
5916
5917   // GL_NV_copy_depth_to_color
5918   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
5919   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
5920
5921   // GL_NV_depth_clamp
5922   GL_DEPTH_CLAMP_NV = $864F;
5923
5924   // GL_NV_evaluators
5925   GL_EVAL_2D_NV = $86C0;
5926   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
5927   GL_MAP_TESSELLATION_NV = $86C2;
5928   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
5929   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
5930   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
5931   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
5932   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
5933   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
5934   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
5935   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
5936   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
5937   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
5938   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
5939   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
5940   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
5941   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
5942   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
5943   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
5944   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
5945   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
5946   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
5947   GL_MAX_MAP_TESSELLATION_NV = $86D6;
5948   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
5949
5950   // GL_NV_fence
5951   GL_ALL_COMPLETED_NV = $84F2;
5952   GL_FENCE_STATUS_NV = $84F3;
5953   GL_FENCE_CONDITION_NV = $84F4;
5954
5955   // GL_NV_float_buffer
5956   GL_FLOAT_R_NV = $8880;
5957   GL_FLOAT_RG_NV = $8881;
5958   GL_FLOAT_RGB_NV = $8882;
5959   GL_FLOAT_RGBA_NV = $8883;
5960   GL_FLOAT_R16_NV = $8884;
5961   GL_FLOAT_R32_NV = $8885;
5962   GL_FLOAT_RG16_NV = $8886;
5963   GL_FLOAT_RG32_NV = $8887;
5964   GL_FLOAT_RGB16_NV = $8888;
5965   GL_FLOAT_RGB32_NV = $8889;
5966   GL_FLOAT_RGBA16_NV = $888A;
5967   GL_FLOAT_RGBA32_NV = $888B;
5968   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
5969   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
5970   GL_FLOAT_RGBA_MODE_NV = $888E;
5971
5972   // GL_NV_fog_distance
5973   GL_FOG_DISTANCE_MODE_NV = $855A;
5974   GL_EYE_RADIAL_NV = $855B;
5975   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
5976
5977   // GL_NV_fragment_program
5978   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
5979   GL_FRAGMENT_PROGRAM_NV = $8870;
5980   GL_MAX_TEXTURE_COORDS_NV = $8871;
5981   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
5982   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
5983   GL_PROGRAM_ERROR_STRING_NV = $8874;
5984
5985   // GL_NV_half_float
5986   GL_HALF_FLOAT_NV = $140B;
5987
5988   // GL_NV_light_max_exponent
5989   GL_MAX_SHININESS_NV = $8504;
5990   GL_MAX_SPOT_EXPONENT_NV = $8505;
5991
5992   // GL_NV_multisample_filter_hint
5993   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
5994
5995   // GL_NV_occlusion_query
5996   GL_PIXEL_COUNTER_BITS_NV = $8864;
5997   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
5998   GL_PIXEL_COUNT_NV = $8866;
5999   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
6000
6001   // GL_NV_packed_depth_stencil
6002   GL_DEPTH_STENCIL_NV = $84F9;
6003   GL_UNSIGNED_INT_24_8_NV = $84FA;
6004
6005   // GL_NV_pixel_data_range
6006   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
6007   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
6008   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
6009   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6010   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6011   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6012
6013   // GL_NV_point_sprite
6014   GL_POINT_SPRITE_NV = $8861;
6015   GL_COORD_REPLACE_NV = $8862;
6016   GL_POINT_SPRITE_R_MODE_NV = $8863;
6017
6018   // GL_NV_primitive_restart
6019   GL_PRIMITIVE_RESTART_NV = $8558;
6020   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6021
6022   // GL_NV_register_combiners
6023   GL_REGISTER_COMBINERS_NV = $8522;
6024   GL_VARIABLE_A_NV = $8523;
6025   GL_VARIABLE_B_NV = $8524;
6026   GL_VARIABLE_C_NV = $8525;
6027   GL_VARIABLE_D_NV = $8526;
6028   GL_VARIABLE_E_NV = $8527;
6029   GL_VARIABLE_F_NV = $8528;
6030   GL_VARIABLE_G_NV = $8529;
6031   GL_CONSTANT_COLOR0_NV = $852A;
6032   GL_CONSTANT_COLOR1_NV = $852B;
6033   GL_PRIMARY_COLOR_NV = $852C;
6034   GL_SECONDARY_COLOR_NV = $852D;
6035   GL_SPARE0_NV = $852E;
6036   GL_SPARE1_NV = $852F;
6037   GL_DISCARD_NV = $8530;
6038   GL_E_TIMES_F_NV = $8531;
6039   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6040   GL_UNSIGNED_IDENTITY_NV = $8536;
6041   GL_UNSIGNED_INVERT_NV = $8537;
6042   GL_EXPAND_NORMAL_NV = $8538;
6043   GL_EXPAND_NEGATE_NV = $8539;
6044   GL_HALF_BIAS_NORMAL_NV = $853A;
6045   GL_HALF_BIAS_NEGATE_NV = $853B;
6046   GL_SIGNED_IDENTITY_NV = $853C;
6047   GL_SIGNED_NEGATE_NV = $853D;
6048   GL_SCALE_BY_TWO_NV = $853E;
6049   GL_SCALE_BY_FOUR_NV = $853F;
6050   GL_SCALE_BY_ONE_HALF_NV = $8540;
6051   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6052   GL_COMBINER_INPUT_NV = $8542;
6053   GL_COMBINER_MAPPING_NV = $8543;
6054   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6055   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6056   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6057   GL_COMBINER_MUX_SUM_NV = $8547;
6058   GL_COMBINER_SCALE_NV = $8548;
6059   GL_COMBINER_BIAS_NV = $8549;
6060   GL_COMBINER_AB_OUTPUT_NV = $854A;
6061   GL_COMBINER_CD_OUTPUT_NV = $854B;
6062   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6063   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6064   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6065   GL_COLOR_SUM_CLAMP_NV = $854F;
6066   GL_COMBINER0_NV = $8550;
6067   GL_COMBINER1_NV = $8551;
6068   GL_COMBINER2_NV = $8552;
6069   GL_COMBINER3_NV = $8553;
6070   GL_COMBINER4_NV = $8554;
6071   GL_COMBINER5_NV = $8555;
6072   GL_COMBINER6_NV = $8556;
6073   GL_COMBINER7_NV = $8557;
6074
6075   // GL_NV_register_combiners2
6076   GL_PER_STAGE_CONSTANTS_NV = $8535;
6077
6078   // GL_NV_texgen_emboss
6079   GL_EMBOSS_LIGHT_NV = $855D;
6080   GL_EMBOSS_CONSTANT_NV = $855E;
6081   GL_EMBOSS_MAP_NV = $855F;
6082
6083   // GL_NV_texgen_reflection
6084   GL_NORMAL_MAP_NV = $8511;
6085   GL_REFLECTION_MAP_NV = $8512;
6086
6087   // GL_NV_texture_env_combine4
6088   GL_COMBINE4_NV = $8503;
6089   GL_SOURCE3_RGB_NV = $8583;
6090   GL_SOURCE3_ALPHA_NV = $858B;
6091   GL_OPERAND3_RGB_NV = $8593;
6092   GL_OPERAND3_ALPHA_NV = $859B;
6093
6094   // GL_NV_texture_expand_normal
6095   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6096
6097   // GL_NV_texture_rectangle
6098   GL_TEXTURE_RECTANGLE_NV = $84F5;
6099   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6100   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6101   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6102
6103   // GL_NV_texture_shader
6104   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6105   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6106   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6107   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6108   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6109   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6110   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6111   GL_SHADER_CONSISTENT_NV = $86DD;
6112   GL_TEXTURE_SHADER_NV = $86DE;
6113   GL_SHADER_OPERATION_NV = $86DF;
6114   GL_CULL_MODES_NV = $86E0;
6115   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6116   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6117   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6118   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6119   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6120   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6121   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6122   GL_CONST_EYE_NV = $86E5;
6123   GL_PASS_THROUGH_NV = $86E6;
6124   GL_CULL_FRAGMENT_NV = $86E7;
6125   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6126   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6127   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6128   GL_DOT_PRODUCT_NV = $86EC;
6129   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6130   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6131   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6132   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6133   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6134   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6135   GL_HILO_NV = $86F4;
6136   GL_DSDT_NV = $86F5;
6137   GL_DSDT_MAG_NV = $86F6;
6138   GL_DSDT_MAG_VIB_NV = $86F7;
6139   GL_HILO16_NV = $86F8;
6140   GL_SIGNED_HILO_NV = $86F9;
6141   GL_SIGNED_HILO16_NV = $86FA;
6142   GL_SIGNED_RGBA_NV = $86FB;
6143   GL_SIGNED_RGBA8_NV = $86FC;
6144   GL_SIGNED_RGB_NV = $86FE;
6145   GL_SIGNED_RGB8_NV = $86FF;
6146   GL_SIGNED_LUMINANCE_NV = $8701;
6147   GL_SIGNED_LUMINANCE8_NV = $8702;
6148   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6149   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6150   GL_SIGNED_ALPHA_NV = $8705;
6151   GL_SIGNED_ALPHA8_NV = $8706;
6152   GL_SIGNED_INTENSITY_NV = $8707;
6153   GL_SIGNED_INTENSITY8_NV = $8708;
6154   GL_DSDT8_NV = $8709;
6155   GL_DSDT8_MAG8_NV = $870A;
6156   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6157   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6158   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6159   GL_HI_SCALE_NV = $870E;
6160   GL_LO_SCALE_NV = $870F;
6161   GL_DS_SCALE_NV = $8710;
6162   GL_DT_SCALE_NV = $8711;
6163   GL_MAGNITUDE_SCALE_NV = $8712;
6164   GL_VIBRANCE_SCALE_NV = $8713;
6165   GL_HI_BIAS_NV = $8714;
6166   GL_LO_BIAS_NV = $8715;
6167   GL_DS_BIAS_NV = $8716;
6168   GL_DT_BIAS_NV = $8717;
6169   GL_MAGNITUDE_BIAS_NV = $8718;
6170   GL_VIBRANCE_BIAS_NV = $8719;
6171   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6172   GL_TEXTURE_HI_SIZE_NV = $871B;
6173   GL_TEXTURE_LO_SIZE_NV = $871C;
6174   GL_TEXTURE_DS_SIZE_NV = $871D;
6175   GL_TEXTURE_DT_SIZE_NV = $871E;
6176   GL_TEXTURE_MAG_SIZE_NV = $871F;
6177
6178   // GL_NV_texture_shader2
6179   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6180
6181   // GL_NV_texture_shader3
6182   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6183   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6184   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6185   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6186   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6187   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6188   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6189   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6190   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6191   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6192   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6193   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6194   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6195   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6196   GL_HILO8_NV = $885E;
6197   GL_SIGNED_HILO8_NV = $885F;
6198   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6199
6200   // GL_NV_vertex_array_range
6201   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6202   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6203   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6204   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6205   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6206
6207   // GL_NV_vertex_array_range2
6208   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6209
6210   // GL_NV_vertex_program
6211   GL_VERTEX_PROGRAM_NV = $8620;
6212   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6213   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6214   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6215   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6216   GL_CURRENT_ATTRIB_NV = $8626;
6217   GL_PROGRAM_LENGTH_NV = $8627;
6218   GL_PROGRAM_STRING_NV = $8628;
6219   GL_MODELVIEW_PROJECTION_NV = $8629;
6220   GL_IDENTITY_NV = $862A;
6221   GL_INVERSE_NV = $862B;
6222   GL_TRANSPOSE_NV = $862C;
6223   GL_INVERSE_TRANSPOSE_NV = $862D;
6224   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6225   GL_MAX_TRACK_MATRICES_NV = $862F;
6226   GL_MATRIX0_NV = $8630;
6227   GL_MATRIX1_NV = $8631;
6228   GL_MATRIX2_NV = $8632;
6229   GL_MATRIX3_NV = $8633;
6230   GL_MATRIX4_NV = $8634;
6231   GL_MATRIX5_NV = $8635;
6232   GL_MATRIX6_NV = $8636;
6233   GL_MATRIX7_NV = $8637;
6234   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6235   GL_CURRENT_MATRIX_NV = $8641;
6236   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6237   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6238   GL_PROGRAM_PARAMETER_NV = $8644;
6239   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6240   GL_PROGRAM_TARGET_NV = $8646;
6241   GL_PROGRAM_RESIDENT_NV = $8647;
6242   GL_TRACK_MATRIX_NV = $8648;
6243   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6244   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6245   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6246   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6247   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6248   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6249   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6250   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6251   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6252   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6253   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6254   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6255   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6256   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6257   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6258   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6259   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6260   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6261   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6262   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6263   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6264   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6265   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6266   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6267   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6268   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6269   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6270   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6271   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6272   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6273   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6274   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6275   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6276   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6277   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6278   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6279   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6280   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6281   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6282   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6283   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6284   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6285   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6286   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6287   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6288   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6289   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6290   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6291   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6292   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6293   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6294
6295   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6296   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6297   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6298
6299   // GL_NV_fragment_program2
6300   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6301   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6302   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6303
6304   // GL_NV_vertex_program3
6305   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6306
6307   // GL_NV_depth_buffer_float
6308   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6309   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6310
6311   // GL_NV_framebuffer_multisample_coverage
6312   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6313   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6314
6315   // GL_NV_geometry_program4
6316   GL_GEOMETRY_PROGRAM_NV = $8C26;
6317   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6318   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6319
6320   // GL_NV_gpu_program4
6321   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6322   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6323   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6324   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6325   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6326   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6327
6328   // GL_NV_parameter_buffer_object
6329   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6330   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6331   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6332   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6333   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6334
6335   // GL_NV_transform_feedback
6336   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6337   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6338   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6339   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6340   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6341   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6342   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6343   GL_PRIMITIVES_GENERATED_NV = $8C87;
6344   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6345   GL_RASTERIZER_DISCARD_NV = $8C89;
6346   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6347   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6348   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6349   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6350   GL_ACTIVE_VARYINGS_NV = $8C81;
6351   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6352   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6353   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6354   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6355   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6356   GL_TEXTURE_COORD_NV = $8C79;
6357   GL_CLIP_DISTANCE_NV = $8C7A;
6358   GL_VERTEX_ID_NV = $8C7B;
6359   GL_PRIMITIVE_ID_NV = $8C7C;
6360   GL_GENERIC_ATTRIB_NV = $8C7D;
6361   GL_LAYER_NV = $8DAA;
6362   GL_NEXT_BUFFER_NV = -2;
6363   GL_SKIP_COMPONENTS4_NV = -3;
6364   GL_SKIP_COMPONENTS3_NV = -4;
6365   GL_SKIP_COMPONENTS2_NV = -5;
6366   GL_SKIP_COMPONENTS1_NV = -6;
6367
6368   // GL_NV_conditional_render
6369   GL_QUERY_WAIT_NV = $8E13;
6370   GL_QUERY_NO_WAIT_NV = $8E14;
6371   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6372   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6373
6374   // GL_NV_present_video
6375   GL_FRAME_NV = $8E26;
6376   GL_FIELDS_NV = $8E27;
6377   GL_CURRENT_TIME_NV = $8E28;
6378   GL_NUM_FILL_STREAMS_NV = $8E29;
6379   GL_PRESENT_TIME_NV = $8E2A;
6380   GL_PRESENT_DURATION_NV = $8E2B;
6381
6382   // GL_NV_explicit_multisample
6383   GL_SAMPLE_POSITION_NV = $8E50;
6384   GL_SAMPLE_MASK_NV = $8E51;
6385   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6386   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6387   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6388   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6389   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6390   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6391   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6392   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6393
6394   // GL_NV_transform_feedback2
6395   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6396   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6397   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6398   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6399
6400   // GL_NV_video_capture
6401   GL_VIDEO_BUFFER_NV = $9020;
6402   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6403   GL_FIELD_UPPER_NV = $9022;
6404   GL_FIELD_LOWER_NV = $9023;
6405   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6406   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6407   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6408   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6409   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6410   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6411   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6412   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6413   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6414   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6415   GL_PARTIAL_SUCCESS_NV = $902E;
6416   GL_SUCCESS_NV = $902F;
6417   GL_FAILURE_NV = $9030;
6418   GL_YCBYCR8_422_NV = $9031;
6419   GL_YCBAYCR8A_4224_NV = $9032;
6420   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6421   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6422   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6423   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6424   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6425   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6426   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6427   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6428   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6429   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6430
6431   // GL_NV_shader_buffer_load
6432   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6433   GL_GPU_ADDRESS_NV = $8F34;
6434   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6435
6436   // GL_NV_vertex_buffer_unified_memory
6437   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6438   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6439   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6440   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6441   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6442   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6443   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6444   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6445   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6446   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6447   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6448   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6449   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6450   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6451   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6452   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6453   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6454   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6455   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6456   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6457   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6458   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6459   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6460   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6461   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6462
6463   // GL_NV_gpu_program5
6464   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6465   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6466   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6467   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6468   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6469   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6470   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6471   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6472
6473   // GL_NV_gpu_shader5
6474   GL_INT64_NV = $140E;
6475   GL_UNSIGNED_INT64_NV = $140F;
6476   GL_INT8_NV = $8FE0;
6477   GL_INT8_VEC2_NV = $8FE1;
6478   GL_INT8_VEC3_NV = $8FE2;
6479   GL_INT8_VEC4_NV = $8FE3;
6480   GL_INT16_NV = $8FE4;
6481   GL_INT16_VEC2_NV = $8FE5;
6482   GL_INT16_VEC3_NV = $8FE6;
6483   GL_INT16_VEC4_NV = $8FE7;
6484   GL_INT64_VEC2_NV = $8FE9;
6485   GL_INT64_VEC3_NV = $8FEA;
6486   GL_INT64_VEC4_NV = $8FEB;
6487   GL_UNSIGNED_INT8_NV = $8FEC;
6488   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6489   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6490   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6491   GL_UNSIGNED_INT16_NV = $8FF0;
6492   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6493   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6494   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6495   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6496   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6497   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6498   GL_FLOAT16_NV = $8FF8;
6499   GL_FLOAT16_VEC2_NV = $8FF9;
6500   GL_FLOAT16_VEC3_NV = $8FFA;
6501   GL_FLOAT16_VEC4_NV = $8FFB;
6502   { reuse GL_PATCHES }
6503
6504   // GL_NV_shader_buffer_store
6505   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6506   { reuse GL_READ_WRITE }
6507   { reuse GL_WRITE_ONLY }
6508
6509   // GL_NV_tessellation_program5
6510   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6511   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6512   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6513   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6514   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6515
6516   // GL_NV_vertex_attrib_integer_64bit
6517   { reuse GL_INT64_NV }
6518   { reuse GL_UNSIGNED_INT64_NV }
6519
6520   // GL_NV_multisample_coverage
6521   GL_COVERAGE_SAMPLES_NV = $80A9;
6522   GL_COLOR_SAMPLES_NV = $8E20;
6523
6524   // GL_NV_vdpau_interop
6525   GL_SURFACE_STATE_NV = $86EB;
6526   GL_SURFACE_REGISTERED_NV = $86FD;
6527   GL_SURFACE_MAPPED_NV = $8700;
6528   GL_WRITE_DISCARD_NV = $88BE;
6529
6530   // GL_OML_interlace
6531   GL_INTERLACE_OML = $8980;
6532   GL_INTERLACE_READ_OML = $8981;
6533
6534   // GL_OML_resample
6535   GL_PACK_RESAMPLE_OML = $8984;
6536   GL_UNPACK_RESAMPLE_OML = $8985;
6537   GL_RESAMPLE_REPLICATE_OML = $8986;
6538   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6539   GL_RESAMPLE_AVERAGE_OML = $8988;
6540   GL_RESAMPLE_DECIMATE_OML = $8989;
6541
6542   // GL_OML_subsample
6543   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6544   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6545
6546   // GL_PGI_misc_hints
6547   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6548   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6549   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6550   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6551   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6552   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6553   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6554   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6555   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6556   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6557   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6558   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6559   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6560   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6561   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6562   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6563   GL_CLIP_NEAR_HINT_PGI = $1A220;
6564   GL_CLIP_FAR_HINT_PGI = $1A221;
6565   GL_WIDE_LINE_HINT_PGI = $1A222;
6566   GL_BACK_NORMALS_HINT_PGI = $1A223;
6567
6568   // GL_PGI_vertex_hints
6569   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6570   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6571   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6572   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6573   GL_COLOR3_BIT_PGI = $00010000;
6574   GL_COLOR4_BIT_PGI = $00020000;
6575   GL_EDGEFLAG_BIT_PGI = $00040000;
6576   GL_INDEX_BIT_PGI = $00080000;
6577   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6578   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6579   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6580   GL_MAT_EMISSION_BIT_PGI = $00800000;
6581   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6582   GL_MAT_SHININESS_BIT_PGI = $02000000;
6583   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6584   GL_NORMAL_BIT_PGI = $08000000;
6585   GL_TEXCOORD1_BIT_PGI = $10000000;
6586   GL_TEXCOORD2_BIT_PGI = $20000000;
6587   GL_TEXCOORD3_BIT_PGI = $40000000;
6588   GL_TEXCOORD4_BIT_PGI = $80000000;
6589   GL_VERTEX23_BIT_PGI = $00000004;
6590   GL_VERTEX4_BIT_PGI = $00000008;
6591
6592   // GL_REND_screen_coordinates
6593   GL_SCREEN_COORDINATES_REND = $8490;
6594   GL_INVERTED_SCREEN_W_REND = $8491;
6595
6596   // GL_S3_s3tc
6597   GL_RGB_S3TC = $83A0;
6598   GL_RGB4_S3TC = $83A1;
6599   GL_RGBA_S3TC = $83A2;
6600   GL_RGBA4_S3TC = $83A3;
6601
6602   // GL_SGIS_detail_texture
6603   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6604   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6605   GL_LINEAR_DETAIL_SGIS = $8097;
6606   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6607   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6608   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6609   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6610   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6611
6612   // GL_SGIS_fog_function
6613   GL_FOG_FUNC_SGIS = $812A;
6614   GL_FOG_FUNC_POINTS_SGIS = $812B;
6615   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6616
6617   // GL_SGIS_generate_mipmap
6618   GL_GENERATE_MIPMAP_SGIS = $8191;
6619   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6620
6621   // GL_SGIS_multisample
6622   GL_MULTISAMPLE_SGIS = $809D;
6623   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6624   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6625   GL_SAMPLE_MASK_SGIS = $80A0;
6626   GL_1PASS_SGIS = $80A1;
6627   GL_2PASS_0_SGIS = $80A2;
6628   GL_2PASS_1_SGIS = $80A3;
6629   GL_4PASS_0_SGIS = $80A4;
6630   GL_4PASS_1_SGIS = $80A5;
6631   GL_4PASS_2_SGIS = $80A6;
6632   GL_4PASS_3_SGIS = $80A7;
6633   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6634   GL_SAMPLES_SGIS = $80A9;
6635   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6636   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6637   GL_SAMPLE_PATTERN_SGIS = $80AC;
6638
6639   // GL_SGIS_pixel_texture
6640   GL_PIXEL_TEXTURE_SGIS = $8353;
6641   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6642   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6643   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6644
6645   // GL_SGIS_point_line_texgen
6646   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6647   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6648   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6649   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6650   GL_EYE_POINT_SGIS = $81F4;
6651   GL_OBJECT_POINT_SGIS = $81F5;
6652   GL_EYE_LINE_SGIS = $81F6;
6653   GL_OBJECT_LINE_SGIS = $81F7;
6654
6655   // GL_SGIS_point_parameters
6656   GL_POINT_SIZE_MIN_SGIS = $8126;
6657   GL_POINT_SIZE_MAX_SGIS = $8127;
6658   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6659   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6660
6661   // GL_SGIS_sharpen_texture
6662   GL_LINEAR_SHARPEN_SGIS = $80AD;
6663   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6664   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6665   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6666
6667   // GL_SGIS_texture4D
6668   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6669   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6670   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6671   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6672   GL_TEXTURE_4D_SGIS = $8134;
6673   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6674   GL_TEXTURE_4DSIZE_SGIS = $8136;
6675   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6676   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6677   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6678
6679   // GL_SGIS_texture_color_mask
6680   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6681
6682   // GL_SGIS_texture_edge_clamp
6683   GL_CLAMP_TO_EDGE_SGIS = $812F;
6684
6685   // GL_SGIS_texture_filter4
6686   GL_FILTER4_SGIS = $8146;
6687   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6688
6689   // GL_SGIS_texture_lod
6690   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6691   GL_TEXTURE_MAX_LOD_SGIS = $813B;
6692   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
6693   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
6694
6695   // GL_SGIS_texture_select
6696   GL_DUAL_ALPHA4_SGIS = $8110;
6697   GL_DUAL_ALPHA8_SGIS = $8111;
6698   GL_DUAL_ALPHA12_SGIS = $8112;
6699   GL_DUAL_ALPHA16_SGIS = $8113;
6700   GL_DUAL_LUMINANCE4_SGIS = $8114;
6701   GL_DUAL_LUMINANCE8_SGIS = $8115;
6702   GL_DUAL_LUMINANCE12_SGIS = $8116;
6703   GL_DUAL_LUMINANCE16_SGIS = $8117;
6704   GL_DUAL_INTENSITY4_SGIS = $8118;
6705   GL_DUAL_INTENSITY8_SGIS = $8119;
6706   GL_DUAL_INTENSITY12_SGIS = $811A;
6707   GL_DUAL_INTENSITY16_SGIS = $811B;
6708   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
6709   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
6710   GL_QUAD_ALPHA4_SGIS = $811E;
6711   GL_QUAD_ALPHA8_SGIS = $811F;
6712   GL_QUAD_LUMINANCE4_SGIS = $8120;
6713   GL_QUAD_LUMINANCE8_SGIS = $8121;
6714   GL_QUAD_INTENSITY4_SGIS = $8122;
6715   GL_QUAD_INTENSITY8_SGIS = $8123;
6716   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
6717   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
6718
6719   // GL_SGIX_async
6720   GL_ASYNC_MARKER_SGIX = $8329;
6721
6722   // GL_SGIX_async_histogram
6723   GL_ASYNC_HISTOGRAM_SGIX = $832C;
6724   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
6725
6726   // GL_SGIX_async_pixel
6727   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
6728   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
6729   GL_ASYNC_READ_PIXELS_SGIX = $835E;
6730   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
6731   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
6732   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
6733
6734   // GL_SGIX_blend_alpha_minmax
6735   GL_ALPHA_MIN_SGIX = $8320;
6736   GL_ALPHA_MAX_SGIX = $8321;
6737
6738   // GL_SGIX_calligraphic_fragment
6739   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
6740
6741   // GL_SGIX_clipmap
6742   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
6743   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
6744   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
6745   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
6746   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
6747   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
6748   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
6749   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
6750   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
6751   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
6752   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
6753   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
6754
6755   // GL_SGIX_convolution_accuracy
6756   GL_CONVOLUTION_HINT_SGIX = $8316;
6757
6758   // GL_SGIX_depth_texture
6759   GL_DEPTH_COMPONENT16_SGIX = $81A5;
6760   GL_DEPTH_COMPONENT24_SGIX = $81A6;
6761   GL_DEPTH_COMPONENT32_SGIX = $81A7;
6762
6763   // GL_SGIX_fog_offset
6764   GL_FOG_OFFSET_SGIX = $8198;
6765   GL_FOG_OFFSET_VALUE_SGIX = $8199;
6766
6767   // GL_SGIX_fog_scale
6768   GL_FOG_SCALE_SGIX = $81FC;
6769   GL_FOG_SCALE_VALUE_SGIX = $81FD;
6770
6771   // GL_SGIX_fragment_lighting
6772   GL_FRAGMENT_LIGHTING_SGIX = $8400;
6773   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
6774   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
6775   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
6776   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
6777   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
6778   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
6779   GL_LIGHT_ENV_MODE_SGIX = $8407;
6780   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
6781   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
6782   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
6783   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
6784   GL_FRAGMENT_LIGHT0_SGIX = $840C;
6785   GL_FRAGMENT_LIGHT1_SGIX = $840D;
6786   GL_FRAGMENT_LIGHT2_SGIX = $840E;
6787   GL_FRAGMENT_LIGHT3_SGIX = $840F;
6788   GL_FRAGMENT_LIGHT4_SGIX = $8410;
6789   GL_FRAGMENT_LIGHT5_SGIX = $8411;
6790   GL_FRAGMENT_LIGHT6_SGIX = $8412;
6791   GL_FRAGMENT_LIGHT7_SGIX = $8413;
6792
6793   // GL_SGIX_framezoom
6794   GL_FRAMEZOOM_SGIX = $818B;
6795   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
6796   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
6797
6798   // GL_SGIX_impact_pixel_texture
6799   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
6800   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
6801   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
6802   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
6803   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
6804   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
6805   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
6806
6807   // GL_SGIX_instruments
6808   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
6809   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
6810
6811   // GL_SGIX_interlace
6812   GL_INTERLACE_SGIX = $8094;
6813
6814   // GL_SGIX_ir_instrument1
6815   GL_IR_INSTRUMENT1_SGIX = $817F;
6816
6817   // GL_SGIX_list_priority
6818   GL_LIST_PRIORITY_SGIX = $8182;
6819
6820   // GL_SGIX_pixel_texture
6821   GL_PIXEL_TEX_GEN_SGIX = $8139;
6822   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
6823
6824   // GL_SGIX_pixel_tiles
6825   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
6826   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
6827   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
6828   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
6829   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
6830   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
6831   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
6832   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
6833
6834   // GL_SGIX_polynomial_ffd
6835   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
6836   GL_TEXTURE_DEFORMATION_SGIX = $8195;
6837   GL_DEFORMATIONS_MASK_SGIX = $8196;
6838   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
6839
6840   // GL_SGIX_reference_plane
6841   GL_REFERENCE_PLANE_SGIX = $817D;
6842   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
6843
6844   // GL_SGIX_resample
6845   GL_PACK_RESAMPLE_SGIX = $842C;
6846   GL_UNPACK_RESAMPLE_SGIX = $842D;
6847   GL_RESAMPLE_REPLICATE_SGIX = $842E;
6848   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
6849   GL_RESAMPLE_DECIMATE_SGIX = $8430;
6850
6851   // GL_SGIX_scalebias_hint
6852   GL_SCALEBIAS_HINT_SGIX = $8322;
6853
6854   // GL_SGIX_shadow
6855   GL_TEXTURE_COMPARE_SGIX = $819A;
6856   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
6857   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
6858   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
6859
6860   // GL_SGIX_shadow_ambient
6861   GL_SHADOW_AMBIENT_SGIX = $80BF;
6862
6863   // GL_SGIX_sprite
6864   GL_SPRITE_SGIX = $8148;
6865   GL_SPRITE_MODE_SGIX = $8149;
6866   GL_SPRITE_AXIS_SGIX = $814A;
6867   GL_SPRITE_TRANSLATION_SGIX = $814B;
6868   GL_SPRITE_AXIAL_SGIX = $814C;
6869   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
6870   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
6871
6872   // GL_SGIX_subsample
6873   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
6874   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
6875   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
6876   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
6877   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
6878
6879   // GL_SGIX_texture_add_env
6880   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
6881
6882   // GL_SGIX_texture_coordinate_clamp
6883   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
6884   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
6885   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
6886
6887   // GL_SGIX_texture_lod_bias
6888   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
6889   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
6890   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
6891
6892   // GL_SGIX_texture_multi_buffer
6893   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
6894
6895   // GL_SGIX_texture_scale_bias
6896   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
6897   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
6898   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
6899   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
6900
6901   // GL_SGIX_vertex_preclip
6902   GL_VERTEX_PRECLIP_SGIX = $83EE;
6903   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
6904
6905   // GL_SGIX_ycrcb
6906   GL_YCRCB_422_SGIX = $81BB;
6907   GL_YCRCB_444_SGIX = $81BC;
6908
6909   // GL_SGIX_ycrcba
6910   GL_YCRCB_SGIX = $8318;
6911   GL_YCRCBA_SGIX = $8319;
6912
6913   // GL_SGI_color_matrix
6914   GL_COLOR_MATRIX_SGI = $80B1;
6915   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
6916   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
6917   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
6918   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
6919   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
6920   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
6921   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
6922   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
6923   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
6924   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
6925
6926   // GL_SGI_color_table
6927   GL_COLOR_TABLE_SGI = $80D0;
6928   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
6929   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
6930   GL_PROXY_COLOR_TABLE_SGI = $80D3;
6931   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
6932   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
6933   GL_COLOR_TABLE_SCALE_SGI = $80D6;
6934   GL_COLOR_TABLE_BIAS_SGI = $80D7;
6935   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
6936   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
6937   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
6938   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
6939   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
6940   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
6941   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
6942   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
6943
6944   // GL_SGI_depth_pass_instrument
6945   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
6946   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
6947   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
6948
6949   // GL_SGI_texture_color_table
6950   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
6951   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
6952
6953   // GL_SUNX_constant_data
6954   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
6955   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
6956
6957   // GL_SUN_convolution_border_modes
6958   GL_WRAP_BORDER_SUN = $81D4;
6959
6960   // GL_SUN_global_alpha
6961   GL_GLOBAL_ALPHA_SUN = $81D9;
6962   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
6963
6964   // GL_SUN_mesh_array
6965   GL_QUAD_MESH_SUN = $8614;
6966   GL_TRIANGLE_MESH_SUN = $8615;
6967
6968   // GL_SUN_slice_accum
6969   GL_SLICE_ACCUM_SUN = $85CC;
6970
6971   // GL_SUN_triangle_list
6972   GL_RESTART_SUN = $0001;
6973   GL_REPLACE_MIDDLE_SUN = $0002;
6974   GL_REPLACE_OLDEST_SUN = $0003;
6975   GL_TRIANGLE_LIST_SUN = $81D7;
6976   GL_REPLACEMENT_CODE_SUN = $81D8;
6977   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
6978   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
6979   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
6980   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
6981   GL_R1UI_V3F_SUN = $85C4;
6982   GL_R1UI_C4UB_V3F_SUN = $85C5;
6983   GL_R1UI_C3F_V3F_SUN = $85C6;
6984   GL_R1UI_N3F_V3F_SUN = $85C7;
6985   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
6986   GL_R1UI_T2F_V3F_SUN = $85C9;
6987   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
6988   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
6989
6990   // GL_WIN_phong_shading
6991   GL_PHONG_WIN = $80EA;
6992   GL_PHONG_HINT_WIN = $80EB;
6993
6994   // GL_WIN_specular_fog
6995   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
6996
6997   // GL_ARB_vertex_shader
6998   GL_VERTEX_SHADER_ARB = $8B31;
6999   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
7000   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
7001   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
7002   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
7003   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
7004   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
7005
7006   // GL_KHR_blend_equation_advanced
7007   GL_MULTIPLY_KHR = $9294;
7008   GL_SCREEN_KHR = $9295;
7009   GL_OVERLAY_KHR = $9296;
7010   GL_DARKEN_KHR = $9297;
7011   GL_LIGHTEN_KHR = $9298;
7012   GL_COLORDODGE_KHR = $9299;
7013   GL_COLORBURN_KHR = $929A;
7014   GL_HARDLIGHT_KHR = $929B;
7015   GL_SOFTLIGHT_KHR = $929C;
7016   GL_DIFFERENCE_KHR = $929E;
7017   GL_EXCLUSION_KHR = $92A0;
7018   GL_HSL_HUE_KHR = $92AD;
7019   GL_HSL_SATURATION_KHR = $92AE;
7020   GL_HSL_COLOR_KHR = $92AF;
7021   GL_HSL_LUMINOSITY_KHR = $92B0;
7022
7023   // GL_KHR_blend_equation_advanced_coherent
7024   GL_BLEND_ADVANCED_COHERENT_KHR = $9285;
7025
7026   // GL_KHR_robustness
7027   GL_CONTEXT_ROBUST_ACCESS = $90F3;
7028
7029   // GL_ARB_fragment_shader
7030   GL_FRAGMENT_SHADER_ARB = $8B30;
7031   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7032   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7033
7034   // GL_ARB_occlusion_query
7035   GL_SAMPLES_PASSED_ARB = $8914;
7036   GL_QUERY_COUNTER_BITS_ARB = $8864;
7037   GL_CURRENT_QUERY_ARB = $8865;
7038   GL_QUERY_RESULT_ARB = $8866;
7039   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7040
7041   // GL_ARB_pipeline_statistics_query
7042   GL_VERTICES_SUBMITTED_ARB         = $82EE;
7043   GL_PRIMITIVES_SUBMITTED_ARB       = $82EF;
7044   GL_VERTEX_SHADER_INVOCATIONS_ARB  = $82F0;
7045   GL_TESS_CONTROL_SHADER_PATCHES_ARB = $82F1;
7046   GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = $82F2;
7047   GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = $82F3;
7048   GL_FRAGMENT_SHADER_INVOCATIONS_ARB = $82F4;
7049   GL_COMPUTE_SHADER_INVOCATIONS_ARB = $82F5;
7050   GL_CLIPPING_INPUT_PRIMITIVES_ARB  = $82F6;
7051   GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = $82F7;
7052
7053   // GL_ARB_point_sprite
7054   GL_POINT_SPRITE_ARB = $8861;
7055   GL_COORD_REPLACE_ARB = $8862;
7056
7057   // GL_ARB_shading_language_100
7058   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7059
7060   // GL_ARB_shader_objects
7061   GL_PROGRAM_OBJECT_ARB = $8B40;
7062
7063   GL_OBJECT_TYPE_ARB = $8B4E;
7064   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7065   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7066   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7067   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7068   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7069   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7070   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7071   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7072   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7073   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7074
7075   GL_SHADER_OBJECT_ARB = $8B48;
7076
7077   GL_FLOAT_VEC2_ARB = $8B50;
7078   GL_FLOAT_VEC3_ARB = $8B51;
7079   GL_FLOAT_VEC4_ARB = $8B52;
7080   GL_INT_VEC2_ARB = $8B53;
7081   GL_INT_VEC3_ARB = $8B54;
7082   GL_INT_VEC4_ARB = $8B55;
7083   GL_BOOL_ARB = $8B56;
7084   GL_BOOL_VEC2_ARB = $8B57;
7085   GL_BOOL_VEC3_ARB = $8B58;
7086   GL_BOOL_VEC4_ARB = $8B59;
7087   GL_FLOAT_MAT2_ARB = $8B5A;
7088   GL_FLOAT_MAT3_ARB = $8B5B;
7089   GL_FLOAT_MAT4_ARB = $8B5C;
7090   GL_SAMPLER_1D_ARB = $8B5D;
7091   GL_SAMPLER_2D_ARB = $8B5E;
7092   GL_SAMPLER_3D_ARB = $8B5F;
7093   GL_SAMPLER_CUBE_ARB = $8B60;
7094   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7095   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7096   GL_SAMPLER_2D_RECT_ARB = $8B63;
7097   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7098
7099   // WGL_3DFX_multisample
7100   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7101   WGL_SAMPLES_3DFX = $2061;
7102
7103   // WGL_ARB_buffer_region
7104   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7105   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7106   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7107   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7108
7109   // WGL_ARB_context_flush_control
7110   WGL_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7111   WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7112   WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7113
7114   // WGL_ARB_make_current_read
7115   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7116   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7117
7118   // WGL_ARB_multisample
7119   WGL_SAMPLE_BUFFERS_ARB = $2041;
7120   WGL_SAMPLES_ARB = $2042;
7121
7122   // WGL_ARB_pbuffer
7123   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7124   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7125   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7126   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7127   WGL_PBUFFER_LARGEST_ARB = $2033;
7128   WGL_PBUFFER_WIDTH_ARB = $2034;
7129   WGL_PBUFFER_HEIGHT_ARB = $2035;
7130   WGL_PBUFFER_LOST_ARB = $2036;
7131
7132   // WGL_ARB_pixel_format
7133   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7134   WGL_DRAW_TO_WINDOW_ARB = $2001;
7135   WGL_DRAW_TO_BITMAP_ARB = $2002;
7136   WGL_ACCELERATION_ARB = $2003;
7137   WGL_NEED_PALETTE_ARB = $2004;
7138   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7139   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7140   WGL_SWAP_METHOD_ARB = $2007;
7141   WGL_NUMBER_OVERLAYS_ARB = $2008;
7142   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7143   WGL_TRANSPARENT_ARB = $200A;
7144   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7145   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7146   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7147   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7148   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7149   WGL_SHARE_DEPTH_ARB = $200C;
7150   WGL_SHARE_STENCIL_ARB = $200D;
7151   WGL_SHARE_ACCUM_ARB = $200E;
7152   WGL_SUPPORT_GDI_ARB = $200F;
7153   WGL_SUPPORT_OPENGL_ARB = $2010;
7154   WGL_DOUBLE_BUFFER_ARB = $2011;
7155   WGL_STEREO_ARB = $2012;
7156   WGL_PIXEL_TYPE_ARB = $2013;
7157   WGL_COLOR_BITS_ARB = $2014;
7158   WGL_RED_BITS_ARB = $2015;
7159   WGL_RED_SHIFT_ARB = $2016;
7160   WGL_GREEN_BITS_ARB = $2017;
7161   WGL_GREEN_SHIFT_ARB = $2018;
7162   WGL_BLUE_BITS_ARB = $2019;
7163   WGL_BLUE_SHIFT_ARB = $201A;
7164   WGL_ALPHA_BITS_ARB = $201B;
7165   WGL_ALPHA_SHIFT_ARB = $201C;
7166   WGL_ACCUM_BITS_ARB = $201D;
7167   WGL_ACCUM_RED_BITS_ARB = $201E;
7168   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7169   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7170   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7171   WGL_DEPTH_BITS_ARB = $2022;
7172   WGL_STENCIL_BITS_ARB = $2023;
7173   WGL_AUX_BUFFERS_ARB = $2024;
7174   WGL_NO_ACCELERATION_ARB = $2025;
7175   WGL_GENERIC_ACCELERATION_ARB = $2026;
7176   WGL_FULL_ACCELERATION_ARB = $2027;
7177   WGL_SWAP_EXCHANGE_ARB = $2028;
7178   WGL_SWAP_COPY_ARB = $2029;
7179   WGL_SWAP_UNDEFINED_ARB = $202A;
7180   WGL_TYPE_RGBA_ARB = $202B;
7181   WGL_TYPE_COLORINDEX_ARB = $202C;
7182
7183   // WGL_ARB_pixel_format_float
7184   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7185   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7186   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7187   WGL_CLAMP_READ_COLOR_ARB = $891C;
7188   WGL_FIXED_ONLY_ARB = $891D;
7189
7190   // WGL_ARB_render_texture
7191   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7192   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7193   WGL_TEXTURE_FORMAT_ARB = $2072;
7194   WGL_TEXTURE_TARGET_ARB = $2073;
7195   WGL_MIPMAP_TEXTURE_ARB = $2074;
7196   WGL_TEXTURE_RGB_ARB = $2075;
7197   WGL_TEXTURE_RGBA_ARB = $2076;
7198   WGL_NO_TEXTURE_ARB = $2077;
7199   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7200   WGL_TEXTURE_1D_ARB = $2079;
7201   WGL_TEXTURE_2D_ARB = $207A;
7202   WGL_MIPMAP_LEVEL_ARB = $207B;
7203   WGL_CUBE_MAP_FACE_ARB = $207C;
7204   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7205   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7206   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7207   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7208   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7209   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7210   WGL_FRONT_LEFT_ARB = $2083;
7211   WGL_FRONT_RIGHT_ARB = $2084;
7212   WGL_BACK_LEFT_ARB = $2085;
7213   WGL_BACK_RIGHT_ARB = $2086;
7214   WGL_AUX0_ARB = $2087;
7215   WGL_AUX1_ARB = $2088;
7216   WGL_AUX2_ARB = $2089;
7217   WGL_AUX3_ARB = $208A;
7218   WGL_AUX4_ARB = $208B;
7219   WGL_AUX5_ARB = $208C;
7220   WGL_AUX6_ARB = $208D;
7221   WGL_AUX7_ARB = $208E;
7222   WGL_AUX8_ARB = $208F;
7223   WGL_AUX9_ARB = $2090;
7224
7225   // WGL_ARB_robustness_application_isolation
7226   WGL_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7227
7228   // WGL_ARB_create_context
7229   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7230   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7231   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7232   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7233   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7234   WGL_CONTEXT_FLAGS_ARB = $2094;
7235   ERROR_INVALID_VERSION_ARB = $2095;
7236
7237   // WGL_ARB_create_context_profile
7238   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7239   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7240   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7241   ERROR_INVALID_PROFILE_ARB = $2096;
7242
7243   // WGL_ARB_framebuffer_sRGB
7244   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7245
7246   // WGL_ARB_create_context_robustness
7247   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7248   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7249   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7250   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7251
7252   // WGL_ATI_pixel_format_float
7253   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7254   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7255   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7256
7257   // WGL_AMD_gpu_association
7258   WGL_GPU_VENDOR_AMD = $1F00;
7259   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7260   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7261   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7262   WGL_GPU_RAM_AMD = $21A3;
7263   WGL_GPU_CLOCK_AMD = $21A4;
7264   WGL_GPU_NUM_PIPES_AMD = $21A5;
7265   WGL_GPU_NUM_SIMD_AMD = $21A6;
7266   WGL_GPU_NUM_RB_AMD = $21A7;
7267   WGL_GPU_NUM_SPI_AMD = $21A8;
7268
7269   // WGL_EXT_depth_float
7270   WGL_DEPTH_FLOAT_EXT = $2040;
7271
7272   // WGL_EXT_make_current_read
7273   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7274
7275   // WGL_EXT_multisample
7276   WGL_SAMPLE_BUFFERS_EXT = $2041;
7277   WGL_SAMPLES_EXT = $2042;
7278
7279   // WGL_EXT_pbuffer
7280   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7281   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7282   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7283   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7284   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7285   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7286   WGL_PBUFFER_LARGEST_EXT = $2033;
7287   WGL_PBUFFER_WIDTH_EXT = $2034;
7288   WGL_PBUFFER_HEIGHT_EXT = $2035;
7289
7290   // WGL_EXT_pixel_format
7291   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7292   WGL_DRAW_TO_WINDOW_EXT = $2001;
7293   WGL_DRAW_TO_BITMAP_EXT = $2002;
7294   WGL_ACCELERATION_EXT = $2003;
7295   WGL_NEED_PALETTE_EXT = $2004;
7296   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7297   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7298   WGL_SWAP_METHOD_EXT = $2007;
7299   WGL_NUMBER_OVERLAYS_EXT = $2008;
7300   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7301   WGL_TRANSPARENT_EXT = $200A;
7302   WGL_TRANSPARENT_VALUE_EXT = $200B;
7303   WGL_SHARE_DEPTH_EXT = $200C;
7304   WGL_SHARE_STENCIL_EXT = $200D;
7305   WGL_SHARE_ACCUM_EXT = $200E;
7306   WGL_SUPPORT_GDI_EXT = $200F;
7307   WGL_SUPPORT_OPENGL_EXT = $2010;
7308   WGL_DOUBLE_BUFFER_EXT = $2011;
7309   WGL_STEREO_EXT = $2012;
7310   WGL_PIXEL_TYPE_EXT = $2013;
7311   WGL_COLOR_BITS_EXT = $2014;
7312   WGL_RED_BITS_EXT = $2015;
7313   WGL_RED_SHIFT_EXT = $2016;
7314   WGL_GREEN_BITS_EXT = $2017;
7315   WGL_GREEN_SHIFT_EXT = $2018;
7316   WGL_BLUE_BITS_EXT = $2019;
7317   WGL_BLUE_SHIFT_EXT = $201A;
7318   WGL_ALPHA_BITS_EXT = $201B;
7319   WGL_ALPHA_SHIFT_EXT = $201C;
7320   WGL_ACCUM_BITS_EXT = $201D;
7321   WGL_ACCUM_RED_BITS_EXT = $201E;
7322   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7323   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7324   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7325   WGL_DEPTH_BITS_EXT = $2022;
7326   WGL_STENCIL_BITS_EXT = $2023;
7327   WGL_AUX_BUFFERS_EXT = $2024;
7328   WGL_NO_ACCELERATION_EXT = $2025;
7329   WGL_GENERIC_ACCELERATION_EXT = $2026;
7330   WGL_FULL_ACCELERATION_EXT = $2027;
7331   WGL_SWAP_EXCHANGE_EXT = $2028;
7332   WGL_SWAP_COPY_EXT = $2029;
7333   WGL_SWAP_UNDEFINED_EXT = $202A;
7334   WGL_TYPE_RGBA_EXT = $202B;
7335   WGL_TYPE_COLORINDEX_EXT = $202C;
7336
7337   // WGL_I3D_digital_video_control
7338   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7339   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7340   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7341   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7342
7343   // WGL_I3D_gamma
7344   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7345   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7346
7347   // WGL_I3D_genlock
7348   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7349   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7350   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7351   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7352   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7353   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7354   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7355   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7356   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7357
7358   // WGL_I3D_image_buffer
7359   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7360   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7361
7362   // WGL_NV_float_buffer
7363   WGL_FLOAT_COMPONENTS_NV = $20B0;
7364   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7365   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7366   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7367   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7368   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7369   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7370   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7371   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7372
7373   // WGL_NV_render_depth_texture
7374   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7375   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7376   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7377   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7378   WGL_DEPTH_COMPONENT_NV = $20A7;
7379
7380   // WGL_NV_render_texture_rectangle
7381   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7382   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7383   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7384
7385   // WGL_NV_present_video
7386   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7387
7388   // WGL_NV_video_output
7389   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7390   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7391   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7392   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7393   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7394   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7395   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7396   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7397   WGL_VIDEO_OUT_FRAME = $20C8;
7398   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7399   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7400   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7401   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7402
7403   // WGL_NV_gpu_affinity
7404   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7405   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7406
7407   // WGL_NV_video_capture
7408   WGL_UNIQUE_ID_NV = $20CE;
7409   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7410
7411   // WGL_NV_multisample_coverage
7412   WGL_COVERAGE_SAMPLES_NV = $2042;
7413   WGL_COLOR_SAMPLES_NV = $20B9;
7414
7415   // WGL_EXT_create_context_es2_profile
7416   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7417
7418   // WGL_NV_DX_interop
7419   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7420   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7421   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7422
7423   // WIN_draw_range_elements
7424   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7425   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7426
7427   // GLX 1.1 and later:
7428   GLX_VENDOR = 1;
7429   GLX_VERSION = 2;
7430   GLX_EXTENSIONS = 3;
7431
7432   GLX_USE_GL = 1;
7433   GLX_BUFFER_SIZE = 2;
7434   GLX_LEVEL = 3;
7435   GLX_RGBA = 4;
7436   GLX_DOUBLEBUFFER = 5;
7437   GLX_STEREO = 6;
7438   GLX_AUX_BUFFERS = 7;
7439   GLX_RED_SIZE = 8;
7440   GLX_GREEN_SIZE = 9;
7441   GLX_BLUE_SIZE = 10;
7442   GLX_ALPHA_SIZE = 11;
7443   GLX_DEPTH_SIZE = 12;
7444   GLX_STENCIL_SIZE = 13;
7445   GLX_ACCUM_RED_SIZE = 14;
7446   GLX_ACCUM_GREEN_SIZE = 15;
7447   GLX_ACCUM_BLUE_SIZE = 16;
7448   GLX_ACCUM_ALPHA_SIZE = 17;
7449
7450   // GLX_VERSION_1_3
7451   GLX_WINDOW_BIT = $00000001;
7452   GLX_PIXMAP_BIT = $00000002;
7453   GLX_PBUFFER_BIT = $00000004;
7454   GLX_RGBA_BIT = $00000001;
7455   GLX_COLOR_INDEX_BIT = $00000002;
7456   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7457   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7458   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7459   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7460   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7461   GLX_AUX_BUFFERS_BIT = $00000010;
7462   GLX_DEPTH_BUFFER_BIT = $00000020;
7463   GLX_STENCIL_BUFFER_BIT = $00000040;
7464   GLX_ACCUM_BUFFER_BIT = $00000080;
7465   GLX_CONFIG_CAVEAT = $20;
7466   GLX_X_VISUAL_TYPE = $22;
7467   GLX_TRANSPARENT_TYPE = $23;
7468   GLX_TRANSPARENT_INDEX_VALUE = $24;
7469   GLX_TRANSPARENT_RED_VALUE = $25;
7470   GLX_TRANSPARENT_GREEN_VALUE = $26;
7471   GLX_TRANSPARENT_BLUE_VALUE = $27;
7472   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7473   GLX_DONT_CARE = $FFFFFFFF;
7474   GLX_NONE = $8000;
7475   GLX_SLOW_CONFIG = $8001;
7476   GLX_TRUE_COLOR = $8002;
7477   GLX_DIRECT_COLOR = $8003;
7478   GLX_PSEUDO_COLOR = $8004;
7479   GLX_STATIC_COLOR = $8005;
7480   GLX_GRAY_SCALE = $8006;
7481   GLX_STATIC_GRAY = $8007;
7482   GLX_TRANSPARENT_RGB = $8008;
7483   GLX_TRANSPARENT_INDEX = $8009;
7484   GLX_VISUAL_ID = $800B;
7485   GLX_SCREEN = $800C;
7486   GLX_NON_CONFORMANT_CONFIG = $800D;
7487   GLX_DRAWABLE_TYPE = $8010;
7488   GLX_RENDER_TYPE = $8011;
7489   GLX_X_RENDERABLE = $8012;
7490   GLX_FBCONFIG_ID = $8013;
7491   GLX_RGBA_TYPE = $8014;
7492   GLX_COLOR_INDEX_TYPE = $8015;
7493   GLX_MAX_PBUFFER_WIDTH = $8016;
7494   GLX_MAX_PBUFFER_HEIGHT = $8017;
7495   GLX_MAX_PBUFFER_PIXELS = $8018;
7496   GLX_PRESERVED_CONTENTS = $801B;
7497   GLX_LARGEST_PBUFFER = $801C;
7498   GLX_WIDTH = $801D;
7499   GLX_HEIGHT = $801E;
7500   GLX_EVENT_MASK = $801F;
7501   GLX_DAMAGED = $8020;
7502   GLX_SAVED = $8021;
7503   GLX_WINDOW = $8022;
7504   GLX_PBUFFER = $8023;
7505   GLX_PBUFFER_HEIGHT = $8040;
7506   GLX_PBUFFER_WIDTH = $8041;
7507
7508   // GLX_VERSION_1_4
7509   GLX_SAMPLE_BUFFERS = 100000;
7510   GLX_SAMPLES = 100001;
7511
7512   // GLX_ARB_multisample
7513   GLX_SAMPLE_BUFFERS_ARB = 100000;
7514   GLX_SAMPLES_ARB = 100001;
7515
7516   // GLX_ARB_robustness_application_isolation
7517   GLX_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7518
7519   // GLX_ARB_fbconfig_float
7520   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7521   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7522
7523   // GLX_ARB_context_flush_control
7524   GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7525   GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7526   GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7527
7528   // GLX_ARB_create_context
7529   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7530   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7531   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7532   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7533   GLX_CONTEXT_FLAGS_ARB = $2094;
7534
7535   // GLX_ARB_create_context_profile
7536   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7537   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7538   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7539
7540   // GLX_ARB_vertex_buffer_object
7541   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7542
7543   // GLX_ARB_framebuffer_sRGB
7544   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7545
7546   // GLX_ARB_create_context_robustness
7547   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7548   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7549   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7550   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7551
7552   // GLX_EXT_visual_info
7553   GLX_X_VISUAL_TYPE_EXT = $22;
7554   GLX_TRANSPARENT_TYPE_EXT = $23;
7555   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7556   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7557   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7558   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7559   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7560   GLX_NONE_EXT = $8000;
7561   GLX_TRUE_COLOR_EXT = $8002;
7562   GLX_DIRECT_COLOR_EXT = $8003;
7563   GLX_PSEUDO_COLOR_EXT = $8004;
7564   GLX_STATIC_COLOR_EXT = $8005;
7565   GLX_GRAY_SCALE_EXT = $8006;
7566   GLX_STATIC_GRAY_EXT = $8007;
7567   GLX_TRANSPARENT_RGB_EXT = $8008;
7568   GLX_TRANSPARENT_INDEX_EXT = $8009;
7569
7570   // GLX_EXT_visual_rating
7571   GLX_VISUAL_CAVEAT_EXT = $20;
7572   GLX_SLOW_VISUAL_EXT = $8001;
7573   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7574   (* reuse GLX_NONE_EXT *)
7575
7576   // GLX_EXT_import_context
7577   GLX_SHARE_CONTEXT_EXT = $800A;
7578   GLX_VISUAL_ID_EXT = $800B;
7579   GLX_SCREEN_EXT = $800C;
7580
7581   // GLX_EXT_fbconfig_packed_float
7582 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7583 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7584
7585   // GLX_EXT_framebuffer_sRGB
7586 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7587
7588   // GLX_EXT_texture_from_pixmap
7589   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7590   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7591   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7592   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7593   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7594   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7595   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7596   GLX_Y_INVERTED_EXT = $20D4;
7597   GLX_TEXTURE_FORMAT_EXT = $20D5;
7598   GLX_TEXTURE_TARGET_EXT = $20D6;
7599   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7600   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7601   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7602   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7603   GLX_TEXTURE_1D_EXT = $20DB;
7604   GLX_TEXTURE_2D_EXT = $20DC;
7605   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7606   GLX_FRONT_LEFT_EXT = $20DE;
7607   GLX_FRONT_RIGHT_EXT = $20DF;
7608   GLX_BACK_LEFT_EXT = $20E0;
7609   GLX_BACK_RIGHT_EXT = $20E1;
7610   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7611   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7612   GLX_AUX0_EXT = $20E2;
7613   GLX_AUX1_EXT = $20E3;
7614   GLX_AUX2_EXT = $20E4;
7615   GLX_AUX3_EXT = $20E5;
7616   GLX_AUX4_EXT = $20E6;
7617   GLX_AUX5_EXT = $20E7;
7618   GLX_AUX6_EXT = $20E8;
7619   GLX_AUX7_EXT = $20E9;
7620   GLX_AUX8_EXT = $20EA;
7621   GLX_AUX9_EXT = $20EB;
7622
7623   // GLX_EXT_swap_control
7624   GLX_SWAP_INTERVAL_EXT = $20F1;
7625   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7626
7627   // GLX_EXT_create_context_es2_profile
7628   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7629
7630   // GL_EXT_Late_Swaps
7631   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7632
7633   // GLU
7634   GLU_INVALID_ENUM = 100900;
7635   GLU_INVALID_VALUE = 100901;
7636   GLU_OUT_OF_MEMORY = 100902;
7637   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7638   GLU_VERSION = 100800;
7639   GLU_EXTENSIONS = 100801;
7640   GLU_TRUE = GL_TRUE;
7641   GLU_FALSE = GL_FALSE;
7642   GLU_SMOOTH = 100000;
7643   GLU_FLAT = 100001;
7644   GLU_NONE = 100002;
7645   GLU_POINT = 100010;
7646   GLU_LINE = 100011;
7647   GLU_FILL = 100012;
7648   GLU_SILHOUETTE = 100013;
7649   GLU_OUTSIDE = 100020;
7650   GLU_INSIDE = 100021;
7651   GLU_TESS_MAX_COORD = 1.0E150;
7652   GLU_TESS_WINDING_RULE = 100140;
7653   GLU_TESS_BOUNDARY_ONLY = 100141;
7654   GLU_TESS_TOLERANCE = 100142;
7655   GLU_TESS_WINDING_ODD = 100130;
7656   GLU_TESS_WINDING_NONZERO = 100131;
7657   GLU_TESS_WINDING_POSITIVE = 100132;
7658   GLU_TESS_WINDING_NEGATIVE = 100133;
7659   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7660   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7661   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7662   GLU_TESS_END = 100102; // TGLUTessEndProc
7663   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7664   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7665   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7666   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7667   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7668   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7669   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7670   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7671   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7672   GLU_TESS_ERROR1 = 100151;
7673   GLU_TESS_ERROR2 = 100152;
7674   GLU_TESS_ERROR3 = 100153;
7675   GLU_TESS_ERROR4 = 100154;
7676   GLU_TESS_ERROR5 = 100155;
7677   GLU_TESS_ERROR6 = 100156;
7678   GLU_TESS_ERROR7 = 100157;
7679   GLU_TESS_ERROR8 = 100158;
7680   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7681   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7682   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7683   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7684   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7685   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7686   GLU_AUTO_LOAD_MATRIX = 100200;
7687   GLU_CULLING = 100201;
7688   GLU_SAMPLING_TOLERANCE = 100203;
7689   GLU_DISPLAY_MODE = 100204;
7690   GLU_PARAMETRIC_TOLERANCE = 100202;
7691   GLU_SAMPLING_METHOD = 100205;
7692   GLU_U_STEP = 100206;
7693   GLU_V_STEP = 100207;
7694   GLU_PATH_LENGTH = 100215;
7695   GLU_PARAMETRIC_ERROR = 100216;
7696   GLU_DOMAIN_DISTANCE = 100217;
7697   GLU_MAP1_TRIM_2 = 100210;
7698   GLU_MAP1_TRIM_3 = 100211;
7699   GLU_OUTLINE_POLYGON = 100240;
7700   GLU_OUTLINE_PATCH = 100241;
7701   GLU_NURBS_ERROR1 = 100251;
7702   GLU_NURBS_ERROR2 = 100252;
7703   GLU_NURBS_ERROR3 = 100253;
7704   GLU_NURBS_ERROR4 = 100254;
7705   GLU_NURBS_ERROR5 = 100255;
7706   GLU_NURBS_ERROR6 = 100256;
7707   GLU_NURBS_ERROR7 = 100257;
7708   GLU_NURBS_ERROR8 = 100258;
7709   GLU_NURBS_ERROR9 = 100259;
7710   GLU_NURBS_ERROR10 = 100260;
7711   GLU_NURBS_ERROR11 = 100261;
7712   GLU_NURBS_ERROR12 = 100262;
7713   GLU_NURBS_ERROR13 = 100263;
7714   GLU_NURBS_ERROR14 = 100264;
7715   GLU_NURBS_ERROR15 = 100265;
7716   GLU_NURBS_ERROR16 = 100266;
7717   GLU_NURBS_ERROR17 = 100267;
7718   GLU_NURBS_ERROR18 = 100268;
7719   GLU_NURBS_ERROR19 = 100269;
7720   GLU_NURBS_ERROR20 = 100270;
7721   GLU_NURBS_ERROR21 = 100271;
7722   GLU_NURBS_ERROR22 = 100272;
7723   GLU_NURBS_ERROR23 = 100273;
7724   GLU_NURBS_ERROR24 = 100274;
7725   GLU_NURBS_ERROR25 = 100275;
7726   GLU_NURBS_ERROR26 = 100276;
7727   GLU_NURBS_ERROR27 = 100277;
7728   GLU_NURBS_ERROR28 = 100278;
7729   GLU_NURBS_ERROR29 = 100279;
7730   GLU_NURBS_ERROR30 = 100280;
7731   GLU_NURBS_ERROR31 = 100281;
7732   GLU_NURBS_ERROR32 = 100282;
7733   GLU_NURBS_ERROR33 = 100283;
7734   GLU_NURBS_ERROR34 = 100284;
7735   GLU_NURBS_ERROR35 = 100285;
7736   GLU_NURBS_ERROR36 = 100286;
7737   GLU_NURBS_ERROR37 = 100287;
7738   GLU_CW = 100120;
7739   GLU_CCW = 100121;
7740   GLU_INTERIOR = 100122;
7741   GLU_EXTERIOR = 100123;
7742   GLU_UNKNOWN = 100124;
7743   GLU_BEGIN = GLU_TESS_BEGIN;
7744   GLU_VERTEX = GLU_TESS_VERTEX;
7745   GLU_END = GLU_TESS_END;
7746   GLU_ERROR = GLU_TESS_ERROR;
7747   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7748
7749 type
7750   // GL_VERSION_1_0
7751   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7752   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7753   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7754   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7755   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7756   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7757   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7758   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7759   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7760   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7761   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7762   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}
7763   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}
7764   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7765   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7766   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7767   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7768   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7769   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7770   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7771   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7772   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7773   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7774   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7775   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7776   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7777   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7778   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7779   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7780   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7781   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7782   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7783   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7784   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7785   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7786   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7787   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7788   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7789   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7790   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7791   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7792   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7793   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7794   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7795   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7796   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7797   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7798   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7799
7800   // GL_VERSION_1_1
7801   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7802   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7803   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7804   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7805   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7806   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}
7807   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7808   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}
7809   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7810   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}
7811   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7812   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7813   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7814
7815 {$ifdef DGL_DEPRECATED}
7816   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7817   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7818   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7819   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7820   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
7821   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7822   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7823   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7824   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7825   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7826   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7827   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7828   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7829   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7830   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7831   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7832   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7833   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7834   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7835   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7836   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7837   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7838   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7839   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7840   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7841   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7842   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7843   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7844   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7845   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7846   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7847   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7848   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7849   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7850   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7851   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7852   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7853   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7854   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7855   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7856   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7857   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7858   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7859   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7860   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7861   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7862   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7863   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7864   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7865   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7866   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7867   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7868   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7869   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7870   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7871   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7872   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7873   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7874   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7875   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7876   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7877   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7878   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7879   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7880   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7881   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7882   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7883   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7884   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7885   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7886   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7887   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7888   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7889   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7890   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7891   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7892   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7893   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7894   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7895   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7896   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7897   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7898   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7899   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7900   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7901   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7902   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7903   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7904   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7905   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7906   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7907   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7908   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7909   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7910   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7911   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7912   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7913   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7914   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7915   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7916   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7917   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7918   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7919   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7920   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7921   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7922   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7923   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7924   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7925   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7926   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7927   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7928   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7929   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7930   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7931   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7932   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7933   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7934   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7935   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7936   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7937   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7938   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7939   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}
7940   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}
7941   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7942   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7943   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7944   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7945   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7946   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7947   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7948   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7949   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7950   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7951   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7952   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7953   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7954   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7955   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7956   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7957   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7958   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7959   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7960   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7961   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7962   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7963   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7964   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7965   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7966   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7967   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7968   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7969   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7970   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7971   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7972   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7973   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7974   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7975   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7976   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7977   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7978   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7979   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7980   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7981   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7982   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7983   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7984   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7985   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7986   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7987   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7988   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7999   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8000   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8001   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8037   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8052   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8057   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8058   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8064
8065
8066   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8072   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8073   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8078   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8084   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8085   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8086   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8093 {$endif}
8094
8095   // GL_VERSION_1_2
8096   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099   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}
8100   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}
8101   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}
8102 {$ifdef DGL_DEPRECATED}
8103   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8106   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8107   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8108   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8109   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   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}
8125   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8126   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8128   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8129   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8131   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8132   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8135 {$endif}
8136
8137   // GL_VERSION_1_3
8138   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   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}
8141   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}
8142   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8143   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}
8144   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}
8145   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8147 {$ifdef DGL_DEPRECATED}
8148   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8149   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8151   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8152   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8176   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8177   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8178   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8185 {$endif}
8186
8187   // GL_VERSION_1_4
8188   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8192   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8193   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8194   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8195 {$ifdef DGL_DEPRECATED}
8196   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8234 {$endif}
8235
8236   // GL_VERSION_1_5
8237   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8241   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8242   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8243   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8256
8257   // GL_VERSION_2_0
8258   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8264   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8265   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   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}
8274   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}
8275   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8281   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8302   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8331   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8332   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8336   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8337   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8338   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8339   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8350
8351   // GL_VERSION_2_1
8352   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8353   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8357   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8358
8359   // GL_VERSION_3_0
8360   { OpenGL 3.0 also reuses entry points from these extensions: }
8361   { ARB_framebuffer_object }
8362   { ARB_map_buffer_range }
8363   { ARB_vertex_array_object }
8364   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8365   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8366   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8367   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8368   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8369   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8370   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8373   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8374   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8378   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8381   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8382   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8413   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8414   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8421   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8422
8423   // GL_VERSION_2_1
8424   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8425   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426   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}
8427
8428   // GL_VERSION_3_1
8429   { OpenGL 3.1 also reuses entry points from these extensions: }
8430   { ARB_copy_buffer }
8431   { ARB_uniform_buffer_object }
8432   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8433   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8434   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8435   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8436
8437   // GL_VERSION_3_2
8438   { OpenGL 3.2 also reuses entry points from these extensions: }
8439   { ARB_draw_elements_base_vertex }
8440   { ARB_provoking_vertex }
8441   { ARB_sync }
8442   { ARB_texture_multisample }
8443   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8444   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8445   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8446 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8447
8448   // GL_VERSION_3_3
8449   { OpenGL 3.3 also reuses entry points from these extensions: }
8450   { ARB_blend_func_extended }
8451   { ARB_sampler_objects }
8452   { ARB_explicit_attrib_location, but it has none }
8453   { ARB_occlusion_query2 (no entry points) }
8454   { ARB_shader_bit_encoding (no entry points) }
8455   { ARB_texture_rgb10_a2ui (no entry points) }
8456   { ARB_texture_swizzle (no entry points) }
8457   { ARB_timer_query }
8458   { ARB_vertex_type_2_10_10_10_rev }
8459   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8460
8461   // GL_VERSION_4_0
8462   { OpenGL 4.0 also reuses entry points from these extensions: }
8463   { ARB_texture_query_lod (no entry points) }
8464   { ARB_draw_indirect }
8465   { ARB_gpu_shader5 (no entry points) }
8466   { ARB_gpu_shader_fp64 }
8467   { ARB_shader_subroutine }
8468   { ARB_tessellation_shader }
8469   { ARB_texture_buffer_object_rgb32 (no entry points) }
8470   { ARB_texture_cube_map_array (no entry points) }
8471   { ARB_texture_gather (no entry points) }
8472   { ARB_transform_feedback2 }
8473   { ARB_transform_feedback3 }
8474   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8475   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8476   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8477   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8478   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8479
8480   // GL_VERSION_4_1
8481   { OpenGL 4.1 also reuses entry points from these extensions: }
8482   { ARB_ES2_compatibility }
8483   { ARB_get_program_binary }
8484   { ARB_separate_shader_objects }
8485   { ARB_shader_precision (no entry points) }
8486   { ARB_vertex_attrib_64bit }
8487   { ARB_viewport_array }
8488
8489   // GL_3DFX_tbuffer
8490   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8491
8492   // GL_APPLE_element_array
8493   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8494   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8495   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8496   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8497   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8498
8499   // GL_APPLE_fence
8500   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8504   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8505   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8506   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8508
8509   // GL_APPLE_vertex_array_object
8510   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8511   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8514
8515   // GL_APPLE_vertex_array_range
8516   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8517   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8519
8520   // GL_APPLE_texture_range
8521   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8522   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8523
8524   // GL_APPLE_vertex_program_evaluators
8525   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8527   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8528   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8529   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8530   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}
8531   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}
8532
8533   // GL_APPLE_object_purgeable
8534   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8535   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8536   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8537
8538   // GL_ARB_matrix_palette
8539   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8540   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8544
8545   // GL_ARB_multisample
8546   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8547
8548   // GL_ARB_multitexture
8549   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8552   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8553   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8555   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8574   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8575   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8578   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8581   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8583
8584   // GL_ARB_point_parameters
8585   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8587
8588   // GL_ARB_texture_compression
8589   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}
8590   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}
8591   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8592   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}
8593   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}
8594   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8595   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8596
8597   // GL_ARB_transpose_matrix
8598   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8599   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8600   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8601   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8602
8603   // GL_ARB_vertex_blend
8604   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8605   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8608   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8609   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8610   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8614
8615   // GL_ARB_vertex_buffer_object
8616   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8618   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8619   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8620   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8621   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8622   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8627
8628   // GL_ARB_vertex_program
8629   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8635   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8660   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8664   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8665   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8666   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8667   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8668   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8674   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8675   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8676   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8677   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8678   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8679   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8680   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8684   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8685   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8686   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8687   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8688   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8689   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8690   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8691
8692   // GL_ARB_window_pos
8693   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8694   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8695   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8696   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8697   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8698   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8699   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8700   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8701   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8702   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8703   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8704   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8705   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8706   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8707   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8708   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8709
8710   // GL_ARB_draw_buffers
8711   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8712
8713   // GL_ARB_color_buffer_float
8714   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8715
8716   // GL_ARB_vertex_shader
8717   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}
8718   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8719   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8720
8721   // GL_ARB_shader_objects
8722   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8723   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8724   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8725   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8726   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8727   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8728   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8729   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8730   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8736   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8737   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8742   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8745   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8746   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8747   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8752   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8753   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8756   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8757   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}
8758   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8760   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8761
8762   // GL_ARB_Occlusion_Query
8763   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8766   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8767   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8768   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8769   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8770   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8771
8772   // GL_ARB_draw_instanced
8773   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8775
8776   // GL_ARB_framebuffer_object
8777   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8778   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8779   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8780   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8781   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8782   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8783   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8784   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8785   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8788   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8789   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8791   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794   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}
8795   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8796   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8797
8798   // GL_ARB_geometry_shader4
8799   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8801   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8802   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8803
8804   // GL_ARB_instanced_arrays
8805   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8806
8807   // GL_ARB_map_buffer_range
8808   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8810
8811   // GL_ARB_texture_buffer_object
8812   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8813
8814   // GL_ARB_vertex_array_object
8815   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8816   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8817   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8818   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8819
8820   // GL_ARB_uniform_buffer_object
8821   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8822   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8823   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8824   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8825   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8826   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8827   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8828
8829   // GL_ARB_copy_buffer
8830   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8831
8832   // GL_ARB_draw_elements_base_vertex
8833   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8834   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8835   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8836   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8837
8838   // GL_ARB_provoking_vertex
8839   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8840
8841   // GL_ARB_sync
8842   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8845   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8846   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8847   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8848   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8849
8850   // GL_ARB_texture_multisample
8851   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8852   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8853   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8854   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8855
8856   // GL_ARB_draw_buffers_blend
8857   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8858   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8860   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8861
8862   // GL_ARB_sample_shading
8863   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8864
8865   // GL_ARB_shading_language_include
8866   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8867   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8868   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8869   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8870   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8872
8873   // GL_ARB_blend_func_extended
8874   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8876
8877   // GL_ARB_sampler_objects
8878   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8880   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8881   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8882   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8883   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8884   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8885   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8892
8893   // GL_ARB_timer_query
8894   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8897
8898   // GL_ARB_vertex_type_2_10_10_10_rev
8899   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8900   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8905   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8928   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8929   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8937
8938   // GL_ARB_draw_indirect
8939   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8941
8942   // GL_ARB_gpu_shader_fp64
8943   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8945   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8946   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8947   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8948   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8949   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8950   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8952   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8953   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8954   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8957   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8958   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8961
8962   // GL_ARB_shader_subroutine
8963   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8966   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8967   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8968   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8969   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8970   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8971
8972   // GL_ARB_tessellation_shader
8973   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8975
8976   // GL_ARB_transform_feedback2
8977   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8978   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8979   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8980   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8981   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8982   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8983   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8984
8985   // GL_ARB_transform_feedback3
8986   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8988   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8989   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8990
8991   // GL_ARB_ES2_compatibility
8992   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8993   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8994   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8995   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8997
8998   // GL_ARB_get_program_binary
8999   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9002
9003   // GL_ARB_separate_shader_objects
9004   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9005   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9008   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9009   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9010   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9013   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9034   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9035   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9041   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9044   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9048   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9049   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9050   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9051   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9052   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9055   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9056   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9057   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9061   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9062   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9064
9065   // GL_ARB_vertex_attrib_64bit
9066   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9067   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9068   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9069   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9070   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9071   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9072   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9073   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9074   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9075   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9076
9077   // GL_ARB_viewport_array
9078   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9079   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9080   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9081   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9082   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9084   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9085   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9086   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9087   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9088
9089   // GL 4.2
9090
9091   // GL_ARB_base_instance
9092   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9093   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9094   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9095
9096   // GL_ARB_transform_feedback_instanced
9097   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9098   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9099
9100   // GL_ARB_internalformat_query
9101   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9102
9103   // GL_ARB_shader_atomic_counters
9104   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9105
9106   /// GL_ARB_shader_image_load_store
9107   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9108   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9109
9110   // GL_ARB_texture_storage
9111   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9112   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9113   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9114   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9115   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9116   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9117
9118
9119   // GL 4.3
9120
9121   // GL_KHR_debug
9122   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9123   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9124   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9125   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}
9126   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9127   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9128   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9129   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9130   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9131   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9132
9133   // GL_ARB_clear_buffer_object
9134   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9135   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9136   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9137   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9138
9139   // GL_ARB_compute_shader
9140   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9141   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9142
9143   // GL_ARB_copy_image
9144   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}
9145
9146   // GL_ARB_debug_group
9147   // ARB_debug_group reuses entry points from KHR_debug
9148
9149   // GL_ARB_debug_label
9150   // ARB_debug_label reuses entry points from KHR_debug
9151
9152   // GL_ARB_debug_output2
9153
9154   // GL_ARB_ES3_compatibility
9155
9156   // GL_ARB_explicit_uniform_location
9157
9158   // GL_ARB_fragment_layer_viewport
9159
9160   // GL_ARB_framebuffer_no_attachments
9161   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9162   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9163   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9164   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9165
9166   // GL_ARB_internalformat_query2
9167   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9168
9169   // GL_ARB_invalidate_subdata
9170   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}
9171   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9172   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9173   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9174   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9175   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9176
9177   // GL_ARB_multi_draw_indirect
9178   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9179   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9180
9181   // GL_ARB_program_interface_query
9182   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9183   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9184   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9185   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}
9186   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9187   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9188
9189   // GL_ARB_robust_buffer_access_behavior
9190
9191   // GL_ARB_shader_image_size
9192
9193   // GL_ARB_shader_storage_buffer_object
9194   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9195
9196   // GL_ARB_stencil_texturing
9197
9198   // GL_ARB_texture_buffer_range
9199   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9200   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9201
9202   // GL_ARB_texture_query_levels
9203
9204   // GL_ARB_texture_storage_multisample
9205   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9206   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9207   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9208   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}
9209
9210   // GL 4.4
9211
9212   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9213   TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9214   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}
9215   TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9216   TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9217   TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9218   TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9219   TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220   TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9221   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}
9222
9223   // GL 4.5
9224   TglClipControl = procedure(origin : GLenum; depth : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglCreateTransformFeedbacks = procedure(n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226   TglTransformFeedbackBufferBase = procedure (xfb : GLuint; index : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9227   TglTransformFeedbackBufferRange = procedure (xfb : GLuint; index : GLuint; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9228   TglGetTransformFeedbackiv = procedure (xfb : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9229   TglGetTransformFeedbacki_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9230   TglGetTransformFeedbacki64_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglCreateBuffers = procedure (n : GLsizei; buffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglNamedBufferStorage = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233   TglNamedBufferData = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; usage : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9234   TglNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9235   TglCopyNamedBufferSubData = procedure (readBuffer : GLuint; writeBuffer : GLuint; readOffset : GLintptr; writeOffset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglClearNamedBufferData = procedure (buffer : GLuint; internalformat : GLenum; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglClearNamedBufferSubData = procedure (buffer : GLuint; internalformat : GLenum; offset : GLintptr; size : GLsizei; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglMapNamedBuffer = function(buffer : GLuint; access : GLenum) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   TglMapNamedBufferRange = function(buffer : GLuint; offset : GLintptr; length : GLsizei; access : GLbitfield) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9240   TglUnmapNamedBuffer = function(buffer : GLuint) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241   TglFlushMappedNamedBufferRange = procedure (buffer : GLuint; offset : GLintptr; length : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglGetNamedBufferParameteriv = procedure (buffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglGetNamedBufferParameteri64v = procedure (buffer : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglGetNamedBufferPointerv = procedure (buffer : GLuint; pname : GLenum; params : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglGetNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglCreateFramebuffers = procedure (n : GLsizei; framebuffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglNamedFramebufferRenderbuffer = procedure (framebuffer : GLuint; attachment : GLenum ; renderbuffertarget : GLEnum; renderbuffer : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglNamedFramebufferParameteri = procedure (framebuffer : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglNamedFramebufferTexture = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglNamedFramebufferTextureLayer = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint; layer : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglNamedFramebufferDrawBuffer = procedure (framebuffer : GLuint; buf : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglNamedFramebufferDrawBuffers = procedure (framebuffer : GLuint; n : GLsizei; bufs : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglNamedFramebufferReadBuffer = procedure (framebuffer : GLuint; src : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglInvalidateNamedFramebufferData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglInvalidateNamedFramebufferSubData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglClearNamedFramebufferiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglClearNamedFramebufferuiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglClearNamedFramebufferfv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglClearNamedFramebufferfi = procedure (framebuffer : GLuint; buffer : GLenum; const depth : GLfloat; stencil : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   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}
9261   TglCheckNamedFramebufferStatus = function(framebuffer : GLuint; target : GLenum) : GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglGetNamedFramebufferParameteriv = procedure (framebuffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglGetNamedFramebufferAttachmentParameteriv = procedure (framebuffer : GLuint; attachment : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   TglCreateRenderbuffers = procedure (n : GLsizei; renderbuffers : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9265   TglNamedRenderbufferStorage = procedure (renderbuffer : GLUInt; internalformat : GLenum ; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   TglNamedRenderbufferStorageMultisample = procedure (renderbuffer : GLUInt; samples : GLSizei; internalformat : GLenum ; width : GLSizei; height : GLSizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   TglGetNamedRenderbufferParameteriv = procedure (renderbuffer : GLUInt; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9268   TglCreateTextures = procedure (target : GLenum ; n : GLsizei; textures : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9269   TglTextureBuffer = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglTextureBufferRange = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglTextureStorage1D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglTextureStorage2D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglTextureStorage3D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglTextureStorage2DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglTextureStorage3DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   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}
9278   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}
9279   TglCompressedTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   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}
9281   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}
9282   TglCopyTextureSubImage1D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; x : GLint; y : GLint; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   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}
9284   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}
9285   TglTextureParameterf = procedure (texture : GLuint; pname : GLenum; param : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9286   TglTextureParameterfv = procedure (texture : GLuint; pname : GLenum; const param : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   TglTextureParameteri = procedure (texture : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9288   TglTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; const params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9289   TglTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; const params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   TglTextureParameteriv = procedure (texture : GLuint; pname : GLenum; const param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9291   TglGenerateTextureMipmap = procedure(texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglBindTextureUnit = procedure (_unit : GLuint; texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglGetTextureImage = procedure (texture : GLuint; level : GLint ; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglGetCompressedTextureImage = procedure (texture : GLuint; level : GLint; bufSize : GLSizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglGetTextureLevelParameterfv = procedure (texture : GLuint; level : GLint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglGetTextureLevelParameteriv = procedure (texture : GLuint; level : GLint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglGetTextureParameterfv = procedure (texture : GLuint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglGetTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglGetTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; params : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglGetTextureParameteriv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301   TglCreateVertexArrays = procedure (n : GLsizei; arrays : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9302   TglDisableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   TglEnableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglVertexArrayElementBuffer = procedure (vaobj : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglVertexArrayVertexBuffer = procedure (vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglVertexArrayVertexBuffers = procedure (vaobj : GLuint; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : PGLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglVertexArrayAttribBinding = procedure (vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglVertexArrayAttribFormat = procedure(vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; normalized : GLboolean; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglVertexArrayAttribIFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglVertexArrayAttribLFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglVertexArrayBindingDivisor = procedure (vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   TglGetVertexArrayiv = procedure (vaobj : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9313   TglGetVertexArrayIndexediv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9314   TglGetVertexArrayIndexed64iv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglCreateSamplers = procedure (n : GLsizei; samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglCreateProgramPipelines = procedure (n : GLsizei; pipelines : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglCreateQueries = procedure (target : GLenum; n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglMemoryBarrierByRegion = procedure (barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   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}
9320   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}
9321   TglGetGraphicsResetStatus = function : GLEnum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   TglGetnCompressedTexImage = procedure (target : GLenum; lod : GLint; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9323   TglGetnTexImage = procedure (target : GLenum; level : GLint; format : GLenum; _type : GLenum; bufSize : GLSizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324   TglGetnUniformdv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9325   TglGetnUniformfv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9326   TglGetnUniformiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9327   TglGetnUniformuiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9328   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}
9329   TglGetnMapdv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglGetnMapfv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331   TglGetnMapiv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9332   TglGetnPixelMapfv = procedure (map : GLenum; bufSize : GLsizei; values : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9333   TglGetnPixelMapuiv = procedure (map : GLenum; bufSize : GLsizei; values : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9334   TglGetnPixelMapusv = procedure (map : GLenum; bufSize : GLsizei; values : PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9335   TglGetnPolygonStipple = procedure (bufSize : GLsizei; pattern : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9336   TglGetnColorTable = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; table : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9337   TglGetnConvolutionFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; image : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9338   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}
9339   TglGetnHistogram = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9340   TglGetnMinmax = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9341   TglTextureBarrier = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9342
9343   // GL_ARB_sparse_buffer
9344   TglBufferPageCommitmentARB = procedure (target : GLenum; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9345   TglNamedBufferPageCommitmentEXT = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9346   TglNamedBufferPageCommitmentARB = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9347
9348   // GL_KHR_blend_equation_advanced
9349   TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9350
9351   // GL_ARB_texture_view
9352   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}
9353
9354   // GL_ARB_vertex_attrib_binding
9355   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9356   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9357   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9358   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9359   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9360   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9361   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9362   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9363   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9364   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9365   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9366   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9367
9368   // GL_ARB_robustness_isolation
9369
9370   //
9371
9372   // GL_ARB_cl_event
9373   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9374
9375   // GL_ARB_debug_output
9376   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9377   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9378   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9379   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}
9380
9381   // GL_ARB_robustness
9382   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9383   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9384   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9385   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9386   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9387   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9388   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9389   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9390   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9391   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9392   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}
9393   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9394   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9395   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9396   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}
9397   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9400   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9401   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9402
9403   // GL_ATI_draw_buffers
9404   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9405
9406   // GL_ATI_element_array
9407   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9408   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9409   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9410
9411   // GL_ATI_envmap_bumpmap
9412   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9413   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9414   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9415   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9416
9417   // GL_ATI_fragment_shader
9418   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9419   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9421   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9422   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9423   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9424   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9425   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9426   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}
9427   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}
9428   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9429   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}
9430   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}
9431   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9432
9433   // GL_ATI_map_object_buffer
9434   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9435   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9436
9437   // GL_ATI_pn_triangles
9438   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9439   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9440
9441   // GL_ATI_separate_stencil
9442   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9443   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9444
9445   // GL_ATI_vertex_array_object
9446   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9447   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9448   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9449   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9450   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9451   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9452   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9453   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9454   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9455   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9458
9459   // GL_ATI_vertex_attrib_array_object
9460   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9461   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9462   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9463
9464   // GL_ATI_vertex_streams
9465   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9466   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9467   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9468   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9469   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9471   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9472   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9479   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9480   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9481   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9482   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9483   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9484   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9485   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9486   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9487   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9491   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9492   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9501   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9502   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9503   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9504   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9508   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9509   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9510
9511   // GL_AMD_performance_monitor
9512   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9513   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9514   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9515   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9516   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9517   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9518   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9519   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9522   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9523
9524   // GL_AMD_vertex_shader_tesselator
9525   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9527
9528   // GL_AMD_draw_buffers_blend
9529   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9530   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9531   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9532   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9533
9534   // GL_AMD_name_gen_delete
9535   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9536   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9537   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9538
9539   // GL_AMD_debug_output
9540   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9541   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9542   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9543   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9544
9545   // GL_EXT_blend_color
9546   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9547
9548   // GL_EXT_blend_func_separate
9549   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9550
9551   // GL_EXT_blend_minmax
9552   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9553
9554   // GL_EXT_color_subtable
9555   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9556   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9557
9558   // GL_EXT_compiled_vertex_array
9559   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9560   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9561
9562   // GL_EXT_convolution
9563   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9564   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9565   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9566   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9567   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9568   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9569   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9570   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9571   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9574   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9575   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}
9576
9577   // GL_EXT_coordinate_frame
9578   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9582   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9583   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9584   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9585   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9591   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9592   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9593   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9596   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9597   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9598   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9599   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9600
9601   // GL_EXT_copy_texture
9602   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   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}
9604   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9605   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}
9606   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}
9607
9608   // GL_EXT_cull_vertex
9609   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9610   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9611
9612   // GL_EXT_draw_range_elements
9613   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9614
9615   // GL_EXT_fog_coord
9616   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9619   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9620   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9621
9622   // GL_EXT_framebuffer_object
9623   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9626   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9629   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9635   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9638   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9639   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9640
9641   // GL_EXT_histogram
9642   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9643   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9644   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9645   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9646   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9647   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9648   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9649   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9650   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9652
9653   // GL_EXT_index_func
9654   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9655
9656   // GL_EXT_index_material
9657   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9658
9659   // GL_EXT_light_texture
9660   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9661   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9662   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9663
9664   // GL_EXT_multi_draw_arrays
9665   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9666   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9667
9668   // GL_EXT_multisample
9669   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9670   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9671
9672   // GL_EXT_paletted_texture
9673   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9674   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9675   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9676   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9677
9678   // GL_EXT_pixel_transform
9679   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9681   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9682   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9683
9684   // GL_EXT_point_parameters
9685   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9686   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9687
9688   // GL_EXT_polygon_offset
9689   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9690
9691   // GL_EXT_secondary_color
9692   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9694   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9695   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9696   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9697   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9698   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9700   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9701   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9703   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9704   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9706   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9709
9710   // GL_EXT_stencil_two_side
9711   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9712
9713   // GL_EXT_subtexture
9714   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9715   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}
9716
9717   // GL_EXT_texture3D
9718   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}
9719   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}
9720
9721   // GL_EXT_texture_object
9722   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9723   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9724   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9725   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9726   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9727   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9728
9729   // GL_EXT_texture_perturb_normal
9730   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9731
9732   // GL_EXT_vertex_array
9733   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9734   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9735   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9736   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9737   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9739   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9740   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9742
9743   // GL_EXT_vertex_shader
9744   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9748   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9749   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9750   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9751   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9752   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9764   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9767   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9770   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9771   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9774   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9775   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9776   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9777   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9778   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9779   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9780   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9782   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9783   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9785   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9786
9787   // GL_EXT_vertex_weighting
9788   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9789   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9790   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9791
9792   // GL_EXT_stencil_clear_tag
9793   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9794
9795   // GL_EXT_framebuffer_blit
9796   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}
9797
9798   // GL_EXT_framebuffer_multisample
9799   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9800
9801   // GL_EXT_timer_query
9802   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9803   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9804
9805   // GL_EXT_gpu_program_parameters
9806   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9807   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9808
9809   // GL_EXT_bindable_uniform
9810   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9811   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9812   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9813
9814   // GL_EXT_draw_buffers2
9815   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9816   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9817   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9818   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9820   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9821
9822   // GL_EXT_draw_instanced
9823   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9824   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9825
9826   // GL_EXT_geometry_shader4
9827   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9828   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9829
9830   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9831
9832   // GL_EXT_gpu_shader4
9833   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9834   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9836   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9837   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9839   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9840   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9843   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9844   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9851   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9852   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9853   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9854   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9855   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9858   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9859   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9862   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9865   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9866   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9867
9868   // GL_EXT_texture_array
9869   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9870
9871   // GL_EXT_texture_buffer_object
9872   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9873
9874   // GL_EXT_texture_integer
9875   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9876   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9877   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9878   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9879   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9880   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9881
9882   // GL_HP_image_transform
9883   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9886   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9887   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9889
9890   // GL_EXT_depth_bounds_test
9891   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9892
9893   // GL_EXT_blend_equation_separate
9894   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9895
9896   // GL_EXT_transform_feedback
9897   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9898   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9899   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9900   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9901   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9902   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9903   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9904
9905   // GL_EXT_direct_state_access
9906   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9907   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9908   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9909   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9910   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9911   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9912   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9913   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9916   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9917   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9919   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9920   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9921   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9923   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9924   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9925   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9926   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9929   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9930   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9931   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}
9932   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}
9933   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}
9934   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}
9935   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}
9936   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}
9937   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9938   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}
9939   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9940   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9941   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9942   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9943   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9944   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}
9945   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}
9946   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}
9947   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9949   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9950   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9951   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}
9952   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}
9953   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}
9954   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}
9955   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}
9956   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}
9957   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9958   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}
9959   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9960   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9961   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9962   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9963   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964   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}
9965   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}
9966   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}
9967   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9971   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9972   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9973   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9974   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9977   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9978   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9979   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9980   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9981   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9982   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9983   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9984   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9985   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9986   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   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}
9990   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}
9991   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}
9992   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}
9993   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}
9994   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}
9995   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9996   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}
9997   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}
9998   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}
9999   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}
10000   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}
10001   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}
10002   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10003   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10004   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10005   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10006   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10007   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10008   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10015   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10016   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10043   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10044   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10045   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10046   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10047   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10056   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10057   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10063   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10064   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10065   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10066   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10067   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10068   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10069   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10070   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10076   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10077   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10078   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10098   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10100   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10101   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10102   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10103   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10104   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10105   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10106   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10107   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10108   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10109   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10110   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10111   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10112
10113   // GL_EXT_separate_shader_objects
10114   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10117
10118   // GL_EXT_shader_image_load_store
10119   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10120   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10121
10122   // GL_EXT_vertex_attrib_64bit
10123   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10124   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10125   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10126   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10127   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10128   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10129   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10130   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10133   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10134
10135   // GL_IBM_multimode_draw_arrays
10136   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10138
10139   // GL_IBM_vertex_array_lists
10140   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10142   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10143   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10145   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10146   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10148
10149   // GL_INGR_blend_func_separate
10150   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10151
10152   // GL_INTEL_parallel_arrays
10153   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10156   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10157
10158   // GL_MESA_resize_buffers
10159   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10160
10161   // GL_MESA_window_pos
10162   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10165   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10166   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10168   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10186
10187   // GL_NV_evaluators
10188   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}
10189   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10191   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10192   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10193   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10194   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10195   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10197
10198   // GL_NV_fence
10199   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10205   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10206
10207   // GL_NV_fragment_program
10208   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10214
10215   // GL_NV_half_float
10216   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10222   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10223   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10224   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10229   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10233   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10246   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10247   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10250   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10251   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10256   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10260   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10261   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10262
10263   // GL_NV_occlusion_query
10264   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10267   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10268   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10269   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10270   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10271
10272   // GL_NV_pixel_data_range
10273   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10275
10276   // GL_NV_point_sprite
10277   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10279
10280   // GL_NV_primitive_restart
10281   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10282   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10283
10284   // GL_NV_register_combiners
10285   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10286   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10287   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10288   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10289   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10290   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}
10291   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10292   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10294   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10295   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10297   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10298
10299   // GL_NV_register_combiners2
10300   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10302
10303   // GL_NV_vertex_array_range
10304   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10306
10307   // GL_NV_vertex_program
10308   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10309   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10310   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10311   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10314   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10318   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10326   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10363   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10368   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10369   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10372
10373   // GL_NV_depth_buffer_float
10374   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10375   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10377
10378   // GL_NV_framebuffer_multisample_coverage
10379   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10380
10381   // GL_NV_geometry_program4
10382   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10383
10384   // GL_NV_gpu_program4
10385   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10386   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10387   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10388   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10389   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10390   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10391   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10392   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10395   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10396   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10397   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10401
10402   // GL_NV_parameter_buffer_object
10403   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10405   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10406
10407   // GL_NV_transform_feedback
10408   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10409   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10410   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10411   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10412   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10413   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10414   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10415   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10417   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10418   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10419   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10420
10421   // GL_NV_conditional_render
10422   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10424
10425   // GL_NV_present_video
10426   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}
10427   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}
10428   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10429   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10430   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10431   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10432 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10433
10434   // GL_NV_explicit_multisample
10435   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10438
10439   // GL_NV_transform_feedback2
10440   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10441   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10446   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10447
10448   // GL_NV_video_capture
10449   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10452   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10453   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10454   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10455   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10456   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10461
10462   // GL_NV_copy_image
10463   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}
10464
10465   // GL_NV_shader_buffer_load
10466   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10468   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10469   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10470   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10471   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10472   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10480
10481   // GL_NV_vertex_buffer_unified_memory
10482   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10483   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10484   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10485   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10486   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10488   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10489   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10490   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10492   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10494
10495   // GL_NV_gpu_program5
10496   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10498
10499   // GL_NV_gpu_shader5
10500   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10502   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10503   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10506   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10507   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10512   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10513   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10514   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10517   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10518   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10519   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10532   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10533
10534   // GL_NV_vertex_attrib_integer_64bit
10535   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10536   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10537   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10538   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10539   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10540   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10541   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10545   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10546   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10550   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10551   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10554
10555   // GL_NV_vdpau_interop
10556   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10558   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10559   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10560   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10561   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10562   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10566
10567   // GL_NV_texture_barrier
10568   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10569
10570   // (4.3)
10571         // GL_NV_path_rendering
10572   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10573   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10574   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10575   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10576   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10577   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}
10578   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580   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}
10581   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}
10582   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10585   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10586   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10587   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10588   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10589   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10592   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10595   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}
10596   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}
10597   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10603   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}
10604   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}
10605   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10606   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10607   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10608   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10609   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10610   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10611   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10612   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}
10613   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10614   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10615   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10617   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10619   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10620   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}
10621
10622   // GL_AMD_pinned_memory
10623
10624   // GL_AMD_stencil_operation_extended
10625   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10626
10627   // GL_AMD_vertex_shader_viewport_index
10628
10629   // GL_AMD_vertex_shader_layer
10630
10631   // GL_NV_bindless_texture
10632   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10633   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10634   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10635   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10636   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10637   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10638   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10645
10646   // GL_ARB_bindless_texture
10647
10648   TglGetTextureHandleARB = function (texture : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649   TglGetTextureSamplerHandleARB = function (texture : GLuint; sampler : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10650   TglMakeTextureHandleResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10651   TglMakeTextureHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10652   TglGetImageHandleARB = function (texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10653   TglMakeImageHandleResidentARB = procedure (handle : GLuint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10654   TglMakeImageHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10655   TglUniformHandleui64ARB = procedure (location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10656   TglUniformHandleui64vARB = procedure (location : GLint; count : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657   TglProgramUniformHandleui64ARB = procedure (program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10658   TglProgramUniformHandleui64vARB = procedure (program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10659   TglIsTextureHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglIsImageHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661   TglVertexAttribL1ui64ARB = procedure (index : GLuint; x : GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10662   TglVertexAttribL1ui64vARB = procedure (index : GLuint; const v : PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663   TglGetVertexAttribLui64vARB = procedure (index : GLuint; pname : GLenum; params : PGLuint64EXT ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10664
10665         // GL_NV_shader_atomic_float
10666
10667         // GL_AMD_query_buffer_object
10668
10669   //
10670
10671   // GL_PGI_misc_hints
10672   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10673
10674   // GL_SGIS_detail_texture
10675   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10676   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10677
10678   // GL_SGIS_fog_function
10679   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10680   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10681
10682   // GL_SGIS_multisample
10683   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10684   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10685
10686   // GL_SGIS_pixel_texture
10687   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10688   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10689   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10690   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10691   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10692   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10693
10694   // GL_SGIS_point_parameters
10695   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10697
10698   // GL_SGIS_sharpen_texture
10699   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10700   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10701
10702   // GL_SGIS_texture4D
10703   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}
10704   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}
10705
10706   // GL_SGIS_texture_color_mask
10707   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10708
10709   // GL_SGIS_texture_filter4
10710   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10711   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10712
10713   // GL_SGIX_async
10714   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10715   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10716   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10717   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10720
10721   // GL_SGIX_flush_raster
10722   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10723
10724   // GL_SGIX_fragment_lighting
10725   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10728   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10729   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10730   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10731   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10732   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10733   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10734   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10735   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10737   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10738   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10739   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10740   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10741   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10742   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10743
10744   // GL_SGIX_framezoom
10745   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10746
10747   // GL_SGIX_igloo_interface
10748   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10749
10750   // GL_SGIX_instruments
10751   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10752   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10753   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10754   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10755   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10756   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10757
10758   // GL_SGIX_list_priority
10759   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10760   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10761   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10762   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10763   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10764   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10765
10766   // GL_SGIX_pixel_texture
10767   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10768
10769   // GL_SGIX_polynomial_ffd
10770   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}
10771   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}
10772   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10773   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10774
10775   // GL_SGIX_reference_plane
10776   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10777
10778   // GL_SGIX_sprite
10779   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10780   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10781   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10782   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10783
10784   // GL_SGIX_tag_sample_buffer
10785   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10786
10787   // GL_SGI_color_table
10788   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10789   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10790   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10791   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10792   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10793   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10794   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10795
10796   // GL_SUNX_constant_data
10797   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10798
10799   // GL_SUN_global_alpha
10800   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10801   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10802   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10803   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10804   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10805   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10806   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10807   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10808
10809   // GL_SUN_mesh_array
10810   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10811
10812   // GL_SUN_triangle_list
10813   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10814   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10815   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10816   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10817   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10819   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10820
10821   // GL_SUN_vertex
10822   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10825   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10827   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10828   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10829   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   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}
10831   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10833   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834   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}
10835   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10836   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}
10837   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10838   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}
10839   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10840   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}
10841   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10842   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}
10843   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   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}
10845   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10846   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10847   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10848   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}
10849   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10850   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10851   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10852   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10853   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10854   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}
10855   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10856   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10857   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10858   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}
10859   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10860   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}
10861   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10862
10863   // window support functions
10864 {$IFDEF DGL_WIN}
10865   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10866   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10867   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10868   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10869   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10870   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10871   TwglGetCurrentContext = function: HGLRC; stdcall;
10872   TwglGetCurrentDC = function: HDC; stdcall;
10873   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10874   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10875   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10876   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10877   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10878   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10879   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10880   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10881   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10882   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10883
10884   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10885   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10886   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10887
10888
10889   // WGL_ARB_buffer_region
10890   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10891   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10892   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10893   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10894
10895   // WGL_ARB_extensions_string
10896   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10897
10898   // WGL_ARB_make_current_read
10899   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10900   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10901
10902   // WGL_ARB_pbuffer
10903   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10904   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10905   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10906   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10907   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10908
10909   // WGL_ARB_pixel_format
10910   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10911   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10912   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
10913
10914   // WGL_ARB_color_buffer_float
10915   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
10916
10917   // WGL_ARB_render_texture
10918   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10919   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10920   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
10921
10922   // WGL_ARB_create_context
10923   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
10924
10925   // WGL_AMD_gpu_association
10926   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
10927   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
10928   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
10929   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
10930   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
10931   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
10932   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
10933   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
10934   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;
10935
10936   // WGL_EXT_display_color_table
10937   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10938   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
10939   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10940   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
10941
10942   // WGL_EXT_extensions_string
10943   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
10944
10945   // WGL_EXT_make_current_read
10946   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10947   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
10948
10949   // WGL_EXT_pbuffer
10950   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
10951   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
10952   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
10953   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
10954   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10955
10956   // WGL_EXT_pixel_format
10957   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10958   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10959   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
10960
10961   // WGL_EXT_swap_control
10962   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
10963   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
10964
10965   // WGL_I3D_digital_video_control
10966   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10967   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10968
10969   // WGL_I3D_gamma
10970   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10971   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10972   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
10973   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
10974
10975   // WGL_I3D_genlock
10976   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10977   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10978   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
10979   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
10980   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
10981   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
10982   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
10983   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
10984   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
10985   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
10986   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
10987   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
10988
10989   // WGL_I3D_image_buffer
10990   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
10991   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
10992   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
10993   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
10994
10995   // WGL_I3D_swap_frame_lock
10996   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
10997   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
10998   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
10999   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
11000
11001   // WGL_I3D_swap_frame_usage
11002   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
11003   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
11004   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
11005   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
11006
11007   // WGL_NV_vertex_array_range
11008   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
11009   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11010
11011   // WGL_NV_present_video
11012   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11013   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11014   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11015
11016   // WGL_NV_video_output
11017   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11018   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11019   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11020   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11021   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11022   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11023
11024   // WGL_NV_swap_group
11025   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11026   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11027   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11028   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11029   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11030   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11031
11032   // WGL_NV_gpu_affinity
11033   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11034   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11035   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11036   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11037   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11038
11039   // WGL_NV_video_capture
11040   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11041   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11042   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11043   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11044   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11045
11046   // WGL_NV_copy_image
11047   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;
11048
11049   // WGL_NV_DX_interop
11050   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11051   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11052   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11053   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11054   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11055   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11056   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11057   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11058
11059   // WGL_OML_sync_control
11060   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11061   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11062   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11063   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11064   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11065   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11066
11067   // WGL_3DL_stereo_control
11068   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11069
11070   // WIN_draw_range_elements
11071   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11072
11073   // WIN_swap_hint
11074   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11075 {$ENDIF}
11076
11077 {$IFDEF DGL_LINUX}
11078   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11079   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11080   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11081   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11082   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11083   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11084   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11085   TglXGetCurrentContext = function: GLXContext cdecl;
11086   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11087   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11088   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11089   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11090   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11091   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11092   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11093   TglXWaitGL = procedure; cdecl;
11094   TglXWaitX = procedure; cdecl;
11095
11096   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11097   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11098   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11099
11100   // GLX_VERSION_1_3
11101   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11102   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11103   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11104   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11105   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11106   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11107   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11108
11109   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11110   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11111   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11112   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11113   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11114   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11115   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11116   TglXGetCurreentDisplay = function: PDisplay;
11117
11118   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11119   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11120   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11121
11122   // GLX_VERSION_1_4
11123   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11124
11125   // GLX_ARB_get_proc_address
11126   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11127
11128   // GLX_ARB_create_context
11129   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11130
11131   // GLX_EXT_import_context
11132   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11133   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11134   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11135   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11136   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11137
11138   // GLX_EXT_texture_from_pixmap
11139   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11140   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11141
11142   TglXSwapIntervalEXT = procedure (dpy : PDisplay; drawable : GLXDrawable; interval : GLint); cdecl;
11143 {$ENDIF}
11144
11145   // GL utility functions and procedures
11146   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11147   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11148   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11149   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11150   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11151   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11152   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}
11153   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}
11154   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}
11155   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11156   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11157   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11158   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11159   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11160   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11161   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11162   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11163   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11164   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11165   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11166   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11167   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11168   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11169   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11170   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11171   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11172   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11173   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11174   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11175   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11176   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11177   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11178   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11179   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11180   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11181   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11182   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11183   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11184   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11185   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11186   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11187   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11188   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11189   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}
11190   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11191   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11192   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11193   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11194   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11195   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11196   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11197
11198 var
11199   // GL_VERSION_1_0
11200   glCullFace: TglCullFace;
11201   glFrontFace: TglFrontFace;
11202   glHint: TglHint;
11203   glLineWidth: TglLineWidth;
11204   glPointSize: TglPointSize;
11205   glPolygonMode: TglPolygonMode;
11206   glScissor: TglScissor;
11207   glTexParameterf: TglTexParameterf;
11208   glTexParameterfv: TglTexParameterfv;
11209   glTexParameteri: TglTexParameteri;
11210   glTexParameteriv: TglTexParameteriv;
11211   glTexImage1D: TglTexImage1D;
11212   glTexImage2D: TglTexImage2D;
11213   glDrawBuffer: TglDrawBuffer;
11214   glClear: TglClear;
11215   glClearColor: TglClearColor;
11216   glClearStencil: TglClearStencil;
11217   glClearDepth: TglClearDepth;
11218   glStencilMask: TglStencilMask;
11219   glColorMask: TglColorMask;
11220   glDepthMask: TglDepthMask;
11221   glDisable: TglDisable;
11222   glEnable: TglEnable;
11223   glFinish: TglFinish;
11224   glFlush: TglFlush;
11225   glBlendFunc: TglBlendFunc;
11226   glLogicOp: TglLogicOp;
11227   glStencilFunc: TglStencilFunc;
11228   glStencilOp: TglStencilOp;
11229   glDepthFunc: TglDepthFunc;
11230   glPixelStoref: TglPixelStoref;
11231   glPixelStorei: TglPixelStorei;
11232   glReadBuffer: TglReadBuffer;
11233   glReadPixels: TglReadPixels;
11234   glGetBooleanv: TglGetBooleanv;
11235   glGetDoublev: TglGetDoublev;
11236   glGetError: TglGetError;
11237   glGetFloatv: TglGetFloatv;
11238   glGetIntegerv: TglGetIntegerv;
11239   glGetString: TglGetString;
11240   glGetTexImage: TglGetTexImage;
11241   glGetTexParameteriv: TglGetTexParameteriv;
11242   glGetTexParameterfv: TglGetTexParameterfv;
11243   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11244   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11245   glIsEnabled: TglIsEnabled;
11246   glDepthRange: TglDepthRange;
11247   glViewport: TglViewport;
11248
11249   // GL_VERSION_1_1
11250   glDrawArrays: TglDrawArrays;
11251   glDrawElements: TglDrawElements;
11252   glGetPointerv: TglGetPointerv;
11253   glPolygonOffset: TglPolygonOffset;
11254   glCopyTexImage1D: TglCopyTexImage1D;
11255   glCopyTexImage2D: TglCopyTexImage2D;
11256   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11257   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11258   glTexSubImage1D: TglTexSubImage1D;
11259   glTexSubImage2D: TglTexSubImage2D;
11260   glBindTexture: TglBindTexture;
11261   glDeleteTextures: TglDeleteTextures;
11262   glGenTextures: TglGenTextures;
11263 {$ifdef DGL_DEPRECATED}
11264   glAccum: TglAccum;
11265   glAlphaFunc: TglAlphaFunc;
11266   glAreTexturesResident: TglAreTexturesResident;
11267   glArrayElement: TglArrayElement;
11268   glBegin: TglBegin;
11269   glBitmap: TglBitmap;
11270   glCallList: TglCallList;
11271   glCallLists: TglCallLists;
11272   glClearAccum: TglClearAccum;
11273   glClearIndex: TglClearIndex;
11274   glClipPlane: TglClipPlane;
11275   glColor3b: TglColor3b;
11276   glColor3bv: TglColor3bv;
11277   glColor3d: TglColor3d;
11278   glColor3dv: TglColor3dv;
11279   glColor3f: TglColor3f;
11280   glColor3fv: TglColor3fv;
11281   glColor3i: TglColor3i;
11282   glColor3iv: TglColor3iv;
11283   glColor3s: TglColor3s;
11284   glColor3sv: TglColor3sv;
11285   glColor3ub: TglColor3ub;
11286   glColor3ubv: TglColor3ubv;
11287   glColor3ui: TglColor3ui;
11288   glColor3uiv: TglColor3uiv;
11289   glColor3us: TglColor3us;
11290   glColor3usv: TglColor3usv;
11291   glColor4b: TglColor4b;
11292   glColor4bv: TglColor4bv;
11293   glColor4d: TglColor4d;
11294   glColor4dv: TglColor4dv;
11295   glColor4f: TglColor4f;
11296   glColor4fv: TglColor4fv;
11297   glColor4i: TglColor4i;
11298   glColor4iv: TglColor4iv;
11299   glColor4s: TglColor4s;
11300   glColor4sv: TglColor4sv;
11301   glColor4ub: TglColor4ub;
11302   glColor4ubv: TglColor4ubv;
11303   glColor4ui: TglColor4ui;
11304   glColor4uiv: TglColor4uiv;
11305   glColor4us: TglColor4us;
11306   glColor4usv: TglColor4usv;
11307   glColorMaterial: TglColorMaterial;
11308   glColorPointer: TglColorPointer;
11309   glCopyPixels: TglCopyPixels;
11310   glDeleteLists: TglDeleteLists;
11311   glDisableClientState: TglDisableClientState;
11312   glDrawPixels: TglDrawPixels;
11313   glEdgeFlag: TglEdgeFlag;
11314   glEdgeFlagPointer: TglEdgeFlagPointer;
11315   glEdgeFlagv: TglEdgeFlagv;
11316   glEnableClientState: TglEnableClientState;
11317   glEnd: TglEnd;
11318   glEndList: TglEndList;
11319   glEvalCoord1d: TglEvalCoord1d;
11320   glEvalCoord1dv: TglEvalCoord1dv;
11321   glEvalCoord1f: TglEvalCoord1f;
11322   glEvalCoord1fv: TglEvalCoord1fv;
11323   glEvalCoord2d: TglEvalCoord2d;
11324   glEvalCoord2dv: TglEvalCoord2dv;
11325   glEvalCoord2f: TglEvalCoord2f;
11326   glEvalCoord2fv: TglEvalCoord2fv;
11327   glEvalMesh1: TglEvalMesh1;
11328   glEvalMesh2: TglEvalMesh2;
11329   glEvalPoint1: TglEvalPoint1;
11330   glEvalPoint2: TglEvalPoint2;
11331   glFeedbackBuffer: TglFeedbackBuffer;
11332   glFogf: TglFogf;
11333   glFogfv: TglFogfv;
11334   glFogi: TglFogi;
11335   glFogiv: TglFogiv;
11336   glFrustum: TglFrustum;
11337   glGenLists: TglGenLists;
11338   glGetClipPlane: TglGetClipPlane;
11339   glGetLightfv: TglGetLightfv;
11340   glGetLightiv: TglGetLightiv;
11341   glGetMapdv: TglGetMapdv;
11342   glGetMapfv: TglGetMapfv;
11343   glGetMapiv: TglGetMapiv;
11344   glGetMaterialfv: TglGetMaterialfv;
11345   glGetMaterialiv: TglGetMaterialiv;
11346   glGetPixelMapfv: TglGetPixelMapfv;
11347   glGetPixelMapuiv: TglGetPixelMapuiv;
11348   glGetPixelMapusv: TglGetPixelMapusv;
11349   glGetPolygonStipple: TglGetPolygonStipple;
11350   glGetTexEnvfv: TglGetTexEnvfv;
11351   glGetTexEnviv: TglGetTexEnviv;
11352   glGetTexGendv: TglGetTexGendv;
11353   glGetTexGenfv: TglGetTexGenfv;
11354   glGetTexGeniv: TglGetTexGeniv;
11355   glIndexMask: TglIndexMask;
11356   glIndexPointer: TglIndexPointer;
11357   glIndexd: TglIndexd;
11358   glIndexdv: TglIndexdv;
11359   glIndexf: TglIndexf;
11360   glIndexfv: TglIndexfv;
11361   glIndexi: TglIndexi;
11362   glIndexiv: TglIndexiv;
11363   glIndexs: TglIndexs;
11364   glIndexsv: TglIndexsv;
11365   glIndexub: TglIndexub;
11366   glIndexubv: TglIndexubv;
11367   glInitNames: TglInitNames;
11368   glInterleavedArrays: TglInterleavedArrays;
11369   glIsList: TglIsList;
11370   glIsTexture: TglIsTexture;
11371   glLightModelf: TglLightModelf;
11372   glLightModelfv: TglLightModelfv;
11373   glLightModeli: TglLightModeli;
11374   glLightModeliv: TglLightModeliv;
11375   glLightf: TglLightf;
11376   glLightfv: TglLightfv;
11377   glLighti: TglLighti;
11378   glLightiv: TglLightiv;
11379   glLineStipple: TglLineStipple;
11380   glListBase: TglListBase;
11381   glLoadIdentity: TglLoadIdentity;
11382   glLoadMatrixd: TglLoadMatrixd;
11383   glLoadMatrixf: TglLoadMatrixf;
11384   glLoadName: TglLoadName;
11385   glMap1d: TglMap1d;
11386   glMap1f: TglMap1f;
11387   glMap2d: TglMap2d;
11388   glMap2f: TglMap2f;
11389   glMapGrid1d: TglMapGrid1d;
11390   glMapGrid1f: TglMapGrid1f;
11391   glMapGrid2d: TglMapGrid2d;
11392   glMapGrid2f: TglMapGrid2f;
11393   glMaterialf: TglMaterialf;
11394   glMaterialfv: TglMaterialfv;
11395   glMateriali: TglMateriali;
11396   glMaterialiv: TglMaterialiv;
11397   glMatrixMode: TglMatrixMode;
11398   glMultMatrixd: TglMultMatrixd;
11399   glMultMatrixf: TglMultMatrixf;
11400   glNewList: TglNewList;
11401   glNormal3b: TglNormal3b;
11402   glNormal3bv: TglNormal3bv;
11403   glNormal3d: TglNormal3d;
11404   glNormal3dv: TglNormal3dv;
11405   glNormal3f: TglNormal3f;
11406   glNormal3fv: TglNormal3fv;
11407   glNormal3i: TglNormal3i;
11408   glNormal3iv: TglNormal3iv;
11409   glNormal3s: TglNormal3s;
11410   glNormal3sv: TglNormal3sv;
11411   glNormalPointer: TglNormalPointer;
11412   glOrtho: TglOrtho;
11413   glPassThrough: TglPassThrough;
11414   glPixelMapfv: TglPixelMapfv;
11415   glPixelMapuiv: TglPixelMapuiv;
11416   glPixelMapusv: TglPixelMapusv;
11417   glPixelTransferf: TglPixelTransferf;
11418   glPixelTransferi: TglPixelTransferi;
11419   glPixelZoom: TglPixelZoom;
11420   glPolygonStipple: TglPolygonStipple;
11421   glPopAttrib: TglPopAttrib;
11422   glPopClientAttrib: TglPopClientAttrib;
11423   glPopMatrix: TglPopMatrix;
11424   glPopName: TglPopName;
11425   glPrioritizeTextures: TglPrioritizeTextures;
11426   glPushAttrib: TglPushAttrib;
11427   glPushClientAttrib: TglPushClientAttrib;
11428   glPushMatrix: TglPushMatrix;
11429   glPushName: TglPushName;
11430   glRasterPos2d: TglRasterPos2d;
11431   glRasterPos2dv: TglRasterPos2dv;
11432   glRasterPos2f: TglRasterPos2f;
11433   glRasterPos2fv: TglRasterPos2fv;
11434   glRasterPos2i: TglRasterPos2i;
11435   glRasterPos2iv: TglRasterPos2iv;
11436   glRasterPos2s: TglRasterPos2s;
11437   glRasterPos2sv: TglRasterPos2sv;
11438   glRasterPos3d: TglRasterPos3d;
11439   glRasterPos3dv: TglRasterPos3dv;
11440   glRasterPos3f: TglRasterPos3f;
11441   glRasterPos3fv: TglRasterPos3fv;
11442   glRasterPos3i: TglRasterPos3i;
11443   glRasterPos3iv: TglRasterPos3iv;
11444   glRasterPos3s: TglRasterPos3s;
11445   glRasterPos3sv: TglRasterPos3sv;
11446   glRasterPos4d: TglRasterPos4d;
11447   glRasterPos4dv: TglRasterPos4dv;
11448   glRasterPos4f: TglRasterPos4f;
11449   glRasterPos4fv: TglRasterPos4fv;
11450   glRasterPos4i: TglRasterPos4i;
11451   glRasterPos4iv: TglRasterPos4iv;
11452   glRasterPos4s: TglRasterPos4s;
11453   glRasterPos4sv: TglRasterPos4sv;
11454   glRectd: TglRectd;
11455   glRectdv: TglRectdv;
11456   glRectf: TglRectf;
11457   glRectfv: TglRectfv;
11458   glRecti: TglRecti;
11459   glRectiv: TglRectiv;
11460   glRects: TglRects;
11461   glRectsv: TglRectsv;
11462   glRenderMode: TglRenderMode;
11463   glRotated: TglRotated;
11464   glRotatef: TglRotatef;
11465   glScaled: TglScaled;
11466   glScalef: TglScalef;
11467   glSelectBuffer: TglSelectBuffer;
11468   glShadeModel: TglShadeModel;
11469   glTexCoord1d: TglTexCoord1d;
11470   glTexCoord1dv: TglTexCoord1dv;
11471   glTexCoord1f: TglTexCoord1f;
11472   glTexCoord1fv: TglTexCoord1fv;
11473   glTexCoord1i: TglTexCoord1i;
11474   glTexCoord1iv: TglTexCoord1iv;
11475   glTexCoord1s: TglTexCoord1s;
11476   glTexCoord1sv: TglTexCoord1sv;
11477   glTexCoord2d: TglTexCoord2d;
11478   glTexCoord2dv: TglTexCoord2dv;
11479   glTexCoord2f: TglTexCoord2f;
11480   glTexCoord2fv: TglTexCoord2fv;
11481   glTexCoord2i: TglTexCoord2i;
11482   glTexCoord2iv: TglTexCoord2iv;
11483   glTexCoord2s: TglTexCoord2s;
11484   glTexCoord2sv: TglTexCoord2sv;
11485   glTexCoord3d: TglTexCoord3d;
11486   glTexCoord3dv: TglTexCoord3dv;
11487   glTexCoord3f: TglTexCoord3f;
11488   glTexCoord3fv: TglTexCoord3fv;
11489   glTexCoord3i: TglTexCoord3i;
11490   glTexCoord3iv: TglTexCoord3iv;
11491   glTexCoord3s: TglTexCoord3s;
11492   glTexCoord3sv: TglTexCoord3sv;
11493   glTexCoord4d: TglTexCoord4d;
11494   glTexCoord4dv: TglTexCoord4dv;
11495   glTexCoord4f: TglTexCoord4f;
11496   glTexCoord4fv: TglTexCoord4fv;
11497   glTexCoord4i: TglTexCoord4i;
11498   glTexCoord4iv: TglTexCoord4iv;
11499   glTexCoord4s: TglTexCoord4s;
11500   glTexCoord4sv: TglTexCoord4sv;
11501   glTexCoordPointer: TglTexCoordPointer;
11502   glTexEnvf: TglTexEnvf;
11503   glTexEnvfv: TglTexEnvfv;
11504   glTexEnvi: TglTexEnvi;
11505   glTexEnviv: TglTexEnviv;
11506   glTexGend: TglTexGend;
11507   glTexGendv: TglTexGendv;
11508   glTexGenf: TglTexGenf;
11509   glTexGenfv: TglTexGenfv;
11510   glTexGeni: TglTexGeni;
11511   glTexGeniv: TglTexGeniv;
11512   glTranslated: TglTranslated;
11513   glTranslatef: TglTranslatef;
11514   glVertex2d: TglVertex2d;
11515   glVertex2dv: TglVertex2dv;
11516   glVertex2f: TglVertex2f;
11517   glVertex2fv: TglVertex2fv;
11518   glVertex2i: TglVertex2i;
11519   glVertex2iv: TglVertex2iv;
11520   glVertex2s: TglVertex2s;
11521   glVertex2sv: TglVertex2sv;
11522   glVertex3d: TglVertex3d;
11523   glVertex3dv: TglVertex3dv;
11524   glVertex3f: TglVertex3f;
11525   glVertex3fv: TglVertex3fv;
11526   glVertex3i: TglVertex3i;
11527   glVertex3iv: TglVertex3iv;
11528   glVertex3s: TglVertex3s;
11529   glVertex3sv: TglVertex3sv;
11530   glVertex4d: TglVertex4d;
11531   glVertex4dv: TglVertex4dv;
11532   glVertex4f: TglVertex4f;
11533   glVertex4fv: TglVertex4fv;
11534   glVertex4i: TglVertex4i;
11535   glVertex4iv: TglVertex4iv;
11536   glVertex4s: TglVertex4s;
11537   glVertex4sv: TglVertex4sv;
11538   glVertexPointer: TglVertexPointer;
11539 {$endif}
11540
11541   // GL_VERSION_1_2
11542   glBlendColor: TglBlendColor;
11543   glBlendEquation: TglBlendEquation;
11544   glDrawRangeElements: TglDrawRangeElements;
11545   glTexImage3D: TglTexImage3D;
11546   glTexSubImage3D: TglTexSubImage3D;
11547   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11548 {$ifdef DGL_DEPRECATED}
11549   glColorTable: TglColorTable;
11550   glColorTableParameterfv: TglColorTableParameterfv;
11551   glColorTableParameteriv: TglColorTableParameteriv;
11552   glCopyColorTable: TglCopyColorTable;
11553   glGetColorTable: TglGetColorTable;
11554   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11555   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11556   glColorSubTable: TglColorSubTable;
11557   glCopyColorSubTable: TglCopyColorSubTable;
11558   glConvolutionFilter1D: TglConvolutionFilter1D;
11559   glConvolutionFilter2D: TglConvolutionFilter2D;
11560   glConvolutionParameterf: TglConvolutionParameterf;
11561   glConvolutionParameterfv: TglConvolutionParameterfv;
11562   glConvolutionParameteri: TglConvolutionParameteri;
11563   glConvolutionParameteriv: TglConvolutionParameteriv;
11564   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11565   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11566   glGetConvolutionFilter: TglGetConvolutionFilter;
11567   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11568   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11569   glGetSeparableFilter: TglGetSeparableFilter;
11570   glSeparableFilter2D: TglSeparableFilter2D;
11571   glGetHistogram: TglGetHistogram;
11572   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11573   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11574   glGetMinmax: TglGetMinmax;
11575   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11576   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11577   glHistogram: TglHistogram;
11578   glMinmax: TglMinmax;
11579   glResetHistogram: TglResetHistogram;
11580   glResetMinmax: TglResetMinmax;
11581 {$endif}
11582
11583   // GL_VERSION_1_3
11584   glActiveTexture: TglActiveTexture;
11585   glSampleCoverage: TglSampleCoverage;
11586   glCompressedTexImage3D: TglCompressedTexImage3D;
11587   glCompressedTexImage2D: TglCompressedTexImage2D;
11588   glCompressedTexImage1D: TglCompressedTexImage1D;
11589   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11590   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11591   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11592   glGetCompressedTexImage: TglGetCompressedTexImage;
11593 {$ifdef DGL_DEPRECATED}
11594   glClientActiveTexture: TglClientActiveTexture;
11595   glMultiTexCoord1d: TglMultiTexCoord1d;
11596   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11597   glMultiTexCoord1f: TglMultiTexCoord1f;
11598   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11599   glMultiTexCoord1i: TglMultiTexCoord1i;
11600   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11601   glMultiTexCoord1s: TglMultiTexCoord1s;
11602   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11603   glMultiTexCoord2d: TglMultiTexCoord2d;
11604   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11605   glMultiTexCoord2f: TglMultiTexCoord2f;
11606   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11607   glMultiTexCoord2i: TglMultiTexCoord2i;
11608   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11609   glMultiTexCoord2s: TglMultiTexCoord2s;
11610   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11611   glMultiTexCoord3d: TglMultiTexCoord3d;
11612   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11613   glMultiTexCoord3f: TglMultiTexCoord3f;
11614   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11615   glMultiTexCoord3i: TglMultiTexCoord3i;
11616   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11617   glMultiTexCoord3s: TglMultiTexCoord3s;
11618   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11619   glMultiTexCoord4d: TglMultiTexCoord4d;
11620   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11621   glMultiTexCoord4f: TglMultiTexCoord4f;
11622   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11623   glMultiTexCoord4i: TglMultiTexCoord4i;
11624   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11625   glMultiTexCoord4s: TglMultiTexCoord4s;
11626   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11627   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11628   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11629   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11630   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11631 {$endif}
11632
11633   // GL_VERSION_1_4
11634   glBlendFuncSeparate: TglBlendFuncSeparate;
11635   glMultiDrawArrays: TglMultiDrawArrays;
11636   glMultiDrawElements: TglMultiDrawElements;
11637   glPointParameterf: TglPointParameterf;
11638   glPointParameterfv: TglPointParameterfv;
11639   glPointParameteri: TglPointParameteri;
11640   glPointParameteriv: TglPointParameteriv;
11641 {$ifdef DGL_DEPRECATED}
11642   glFogCoordf: TglFogCoordf;
11643   glFogCoordfv: TglFogCoordfv;
11644   glFogCoordd: TglFogCoordd;
11645   glFogCoorddv: TglFogCoorddv;
11646   glFogCoordPointer: TglFogCoordPointer;
11647   glSecondaryColor3b: TglSecondaryColor3b;
11648   glSecondaryColor3bv: TglSecondaryColor3bv;
11649   glSecondaryColor3d: TglSecondaryColor3d;
11650   glSecondaryColor3dv: TglSecondaryColor3dv;
11651   glSecondaryColor3f: TglSecondaryColor3f;
11652   glSecondaryColor3fv: TglSecondaryColor3fv;
11653   glSecondaryColor3i: TglSecondaryColor3i;
11654   glSecondaryColor3iv: TglSecondaryColor3iv;
11655   glSecondaryColor3s: TglSecondaryColor3s;
11656   glSecondaryColor3sv: TglSecondaryColor3sv;
11657   glSecondaryColor3ub: TglSecondaryColor3ub;
11658   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11659   glSecondaryColor3ui: TglSecondaryColor3ui;
11660   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11661   glSecondaryColor3us: TglSecondaryColor3us;
11662   glSecondaryColor3usv: TglSecondaryColor3usv;
11663   glSecondaryColorPointer: TglSecondaryColorPointer;
11664   glWindowPos2d: TglWindowPos2d;
11665   glWindowPos2dv: TglWindowPos2dv;
11666   glWindowPos2f: TglWindowPos2f;
11667   glWindowPos2fv: TglWindowPos2fv;
11668   glWindowPos2i: TglWindowPos2i;
11669   glWindowPos2iv: TglWindowPos2iv;
11670   glWindowPos2s: TglWindowPos2s;
11671   glWindowPos2sv: TglWindowPos2sv;
11672   glWindowPos3d: TglWindowPos3d;
11673   glWindowPos3dv: TglWindowPos3dv;
11674   glWindowPos3f: TglWindowPos3f;
11675   glWindowPos3fv: TglWindowPos3fv;
11676   glWindowPos3i: TglWindowPos3i;
11677   glWindowPos3iv: TglWindowPos3iv;
11678   glWindowPos3s: TglWindowPos3s;
11679   glWindowPos3sv: TglWindowPos3sv;
11680 {$endif}
11681
11682   // GL_VERSION_1_5
11683   glGenQueries: TglGenQueries;
11684   glDeleteQueries: TglDeleteQueries;
11685   glIsQuery: TglIsQuery;
11686   glBeginQuery: TglBeginQuery;
11687   glEndQuery: TglEndQuery;
11688   glGetQueryiv: TglGetQueryiv;
11689   glGetQueryObjectiv: TglGetQueryObjectiv;
11690   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11691   glBindBuffer: TglBindBuffer;
11692   glDeleteBuffers: TglDeleteBuffers;
11693   glGenBuffers: TglGenBuffers;
11694   glIsBuffer: TglIsBuffer;
11695   glBufferData: TglBufferData;
11696   glBufferSubData: TglBufferSubData;
11697   glGetBufferSubData: TglGetBufferSubData;
11698   glMapBuffer: TglMapBuffer;
11699   glUnmapBuffer: TglUnmapBuffer;
11700   glGetBufferParameteriv: TglGetBufferParameteriv;
11701   glGetBufferPointerv: TglGetBufferPointerv;
11702
11703   // GL_VERSION_2_0
11704   glBlendEquationSeparate: TglBlendEquationSeparate;
11705   glDrawBuffers: TglDrawBuffers;
11706   glStencilOpSeparate: TglStencilOpSeparate;
11707   glStencilFuncSeparate: TglStencilFuncSeparate;
11708   glStencilMaskSeparate: TglStencilMaskSeparate;
11709   glAttachShader: TglAttachShader;
11710   glBindAttribLocation: TglBindAttribLocation;
11711   glCompileShader: TglCompileShader;
11712   glCreateProgram: TglCreateProgram;
11713   glCreateShader: TglCreateShader;
11714   glDeleteProgram: TglDeleteProgram;
11715   glDeleteShader: TglDeleteShader;
11716   glDetachShader: TglDetachShader;
11717   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11718   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11719   glGetActiveAttrib: TglGetActiveAttrib;
11720   glGetActiveUniform: TglGetActiveUniform;
11721   glGetAttachedShaders: TglGetAttachedShaders;
11722   glGetAttribLocation: TglGetAttribLocation;
11723   glGetProgramiv: TglGetProgramiv;
11724   glGetProgramInfoLog: TglGetProgramInfoLog;
11725   glGetShaderiv: TglGetShaderiv;
11726   glGetShaderInfoLog: TglGetShaderInfoLog;
11727   glGetShaderSource: TglGetShaderSource;
11728   glGetUniformLocation: TglGetUniformLocation;
11729   glGetUniformfv: TglGetUniformfv;
11730   glGetUniformiv: TglGetUniformiv;
11731   glGetVertexAttribfv: TglGetVertexAttribfv;
11732   glGetVertexAttribiv: TglGetVertexAttribiv;
11733   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11734   glIsProgram: TglIsProgram;
11735   glIsShader: TglIsShader;
11736   glLinkProgram: TglLinkProgram;
11737   glShaderSource: TglShaderSource;
11738   glUseProgram: TglUseProgram;
11739   glUniform1f: TglUniform1f;
11740   glUniform2f: TglUniform2f;
11741   glUniform3f: TglUniform3f;
11742   glUniform4f: TglUniform4f;
11743   glUniform1i: TglUniform1i;
11744   glUniform2i: TglUniform2i;
11745   glUniform3i: TglUniform3i;
11746   glUniform4i: TglUniform4i;
11747   glUniform1fv: TglUniform1fv;
11748   glUniform2fv: TglUniform2fv;
11749   glUniform3fv: TglUniform3fv;
11750   glUniform4fv: TglUniform4fv;
11751   glUniform1iv: TglUniform1iv;
11752   glUniform2iv: TglUniform2iv;
11753   glUniform3iv: TglUniform3iv;
11754   glUniform4iv: TglUniform4iv;
11755   glUniformMatrix2fv: TglUniformMatrix2fv;
11756   glUniformMatrix3fv: TglUniformMatrix3fv;
11757   glUniformMatrix4fv: TglUniformMatrix4fv;
11758   glValidateProgram: TglValidateProgram;
11759   glVertexAttrib1d: TglVertexAttrib1d;
11760   glVertexAttrib1dv: TglVertexAttrib1dv;
11761   glVertexAttrib1f: TglVertexAttrib1f;
11762   glVertexAttrib1fv: TglVertexAttrib1fv;
11763   glVertexAttrib1s: TglVertexAttrib1s;
11764   glVertexAttrib1sv: TglVertexAttrib1sv;
11765   glVertexAttrib2d: TglVertexAttrib2d;
11766   glVertexAttrib2dv: TglVertexAttrib2dv;
11767   glVertexAttrib2f: TglVertexAttrib2f;
11768   glVertexAttrib2fv: TglVertexAttrib2fv;
11769   glVertexAttrib2s: TglVertexAttrib2s;
11770   glVertexAttrib2sv: TglVertexAttrib2sv;
11771   glVertexAttrib3d: TglVertexAttrib3d;
11772   glVertexAttrib3dv: TglVertexAttrib3dv;
11773   glVertexAttrib3f: TglVertexAttrib3f;
11774   glVertexAttrib3fv: TglVertexAttrib3fv;
11775   glVertexAttrib3s: TglVertexAttrib3s;
11776   glVertexAttrib3sv: TglVertexAttrib3sv;
11777   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11778   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11779   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11780   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11781   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11782   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11783   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11784   glVertexAttrib4bv: TglVertexAttrib4bv;
11785   glVertexAttrib4d: TglVertexAttrib4d;
11786   glVertexAttrib4dv: TglVertexAttrib4dv;
11787   glVertexAttrib4f: TglVertexAttrib4f;
11788   glVertexAttrib4fv: TglVertexAttrib4fv;
11789   glVertexAttrib4iv: TglVertexAttrib4iv;
11790   glVertexAttrib4s: TglVertexAttrib4s;
11791   glVertexAttrib4sv: TglVertexAttrib4sv;
11792   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11793   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11794   glVertexAttrib4usv: TglVertexAttrib4usv;
11795   glVertexAttribPointer: TglVertexAttribPointer;
11796
11797   // GL_VERSION_2_1
11798   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11799   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11800   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11801   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11802   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11803   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11804
11805   // GL_VERSION_3_0
11806   glColorMaski: TglColorMaski;
11807   glGetBooleani_v: TglGetBooleani_v;
11808   glGetIntegeri_v: TglGetIntegeri_v;
11809   glEnablei: TglEnablei;
11810   glDisablei: TglDisablei;
11811   glIsEnabledi: TglIsEnabledi;
11812   glBeginTransformFeedback: TglBeginTransformFeedback;
11813   glEndTransformFeedback: TglEndTransformFeedback;
11814   glBindBufferRange: TglBindBufferRange;
11815   glBindBufferBase: TglBindBufferBase;
11816   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11817   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11818   glClampColor: TglClampColor;
11819   glBeginConditionalRender: TglBeginConditionalRender;
11820   glEndConditionalRender: TglEndConditionalRender;
11821   glVertexAttribI1i: TglVertexAttribI1i;
11822   glVertexAttribI2i: TglVertexAttribI2i;
11823   glVertexAttribI3i: TglVertexAttribI3i;
11824   glVertexAttribI4i: TglVertexAttribI4i;
11825   glVertexAttribI1ui: TglVertexAttribI1ui;
11826   glVertexAttribI2ui: TglVertexAttribI2ui;
11827   glVertexAttribI3ui: TglVertexAttribI3ui;
11828   glVertexAttribI4ui: TglVertexAttribI4ui;
11829   glVertexAttribI1iv: TglVertexAttribI1iv;
11830   glVertexAttribI2iv: TglVertexAttribI2iv;
11831   glVertexAttribI3iv: TglVertexAttribI3iv;
11832   glVertexAttribI4iv: TglVertexAttribI4iv;
11833   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11834   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11835   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11836   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11837   glVertexAttribI4bv: TglVertexAttribI4bv;
11838   glVertexAttribI4sv: TglVertexAttribI4sv;
11839   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11840   glVertexAttribI4usv: TglVertexAttribI4usv;
11841   glVertexAttribIPointer: TglVertexAttribIPointer;
11842   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11843   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11844   glGetUniformuiv: TglGetUniformuiv;
11845   glBindFragDataLocation: TglBindFragDataLocation;
11846   glGetFragDataLocation: TglGetFragDataLocation;
11847   glUniform1ui: TglUniform1ui;
11848   glUniform2ui: TglUniform2ui;
11849   glUniform3ui: TglUniform3ui;
11850   glUniform4ui: TglUniform4ui;
11851   glUniform1uiv: TglUniform1uiv;
11852   glUniform2uiv: TglUniform2uiv;
11853   glUniform3uiv: TglUniform3uiv;
11854   glUniform4uiv: TglUniform4uiv;
11855   glTexParameterIiv: TglTexParameterIiv;
11856   glTexParameterIuiv: TglTexParameterIuiv;
11857   glGetTexParameterIiv: TglGetTexParameterIiv;
11858   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11859   glClearBufferiv: TglClearBufferiv;
11860   glClearBufferuiv: TglClearBufferuiv;
11861   glClearBufferfv: TglClearBufferfv;
11862   glClearBufferfi: TglClearBufferfi;
11863   glGetStringi: TglGetStringi;
11864
11865   // GL_VERSION_2_1
11866   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11867   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11868   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11869
11870   // GL_VERSION_3_1
11871   glDrawArraysInstanced: TglDrawArraysInstanced;
11872   glDrawElementsInstanced: TglDrawElementsInstanced;
11873   glTexBuffer: TglTexBuffer;
11874   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11875
11876   // GL_VERSION_3_2
11877   glGetInteger64i_v: TglGetInteger64i_v;
11878   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11879   glFramebufferTexture: TglFramebufferTexture;
11880
11881   // GL_VERSION_3_3
11882   glVertexAttribDivisor: TglVertexAttribDivisor;
11883
11884   // GL_VERSION_4_0
11885   { OpenGL 4.0 also reuses entry points from these extensions: }
11886   { ARB_texture_query_lod (no entry points) }
11887   { ARB_draw_indirect }
11888   { ARB_gpu_shader5 (no entry points) }
11889   { ARB_gpu_shader_fp64 }
11890   { ARB_shader_subroutine }
11891   { ARB_tessellation_shader }
11892   { ARB_texture_buffer_object_rgb32 (no entry points) }
11893   { ARB_texture_cube_map_array (no entry points) }
11894   { ARB_texture_gather (no entry points) }
11895   { ARB_transform_feedback2 }
11896   { ARB_transform_feedback3 }
11897   glMinSampleShading: TglMinSampleShading;
11898   glBlendEquationi: TglBlendEquationi;
11899   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11900   glBlendFunci: TglBlendFunci;
11901   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11902
11903   // GL_3DFX_tbuffer
11904   glTbufferMask3DFX: TglTbufferMask3DFX;
11905
11906   // GL_APPLE_element_array
11907   glElementPointerAPPLE: TglElementPointerAPPLE;
11908   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
11909   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
11910   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
11911   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
11912
11913   // GL_APPLE_fence
11914   glGenFencesAPPLE: TglGenFencesAPPLE;
11915   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
11916   glSetFenceAPPLE: TglSetFenceAPPLE;
11917   glIsFenceAPPLE: TglIsFenceAPPLE;
11918   glTestFenceAPPLE: TglTestFenceAPPLE;
11919   glFinishFenceAPPLE: TglFinishFenceAPPLE;
11920   glTestObjectAPPLE: TglTestObjectAPPLE;
11921   glFinishObjectAPPLE: TglFinishObjectAPPLE;
11922
11923   // GL_APPLE_vertex_array_object
11924   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
11925   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
11926   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
11927   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
11928
11929   // GL_APPLE_vertex_array_range
11930   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
11931   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
11932   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
11933
11934   // GL_APPLE_texture_range
11935   glTextureRangeAPPLE: TglTextureRangeAPPLE;
11936   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
11937
11938   // GL_APPLE_vertex_program_evaluators
11939   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
11940   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
11941   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
11942   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
11943   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
11944   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
11945   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
11946
11947   // GL_APPLE_object_purgeable
11948   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
11949   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
11950   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
11951
11952   // GL_ARB_matrix_palette
11953   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
11954   glMatrixIndexubvARB: TglMatrixIndexubvARB;
11955   glMatrixIndexusvARB: TglMatrixIndexusvARB;
11956   glMatrixIndexuivARB: TglMatrixIndexuivARB;
11957   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
11958
11959   // GL_ARB_multisample
11960   glSampleCoverageARB: TglSampleCoverageARB;
11961
11962   // GL_ARB_multitexture
11963   glActiveTextureARB: TglActiveTextureARB;
11964   glClientActiveTextureARB: TglClientActiveTextureARB;
11965   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
11966   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
11967   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
11968   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
11969   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
11970   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
11971   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
11972   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
11973   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
11974   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
11975   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
11976   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
11977   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
11978   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
11979   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
11980   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
11981   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
11982   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
11983   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
11984   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
11985   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
11986   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
11987   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
11988   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
11989   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
11990   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
11991   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
11992   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
11993   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
11994   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
11995   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
11996   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
11997
11998   // GL_ARB_point_parameters
11999   glPointParameterfARB: TglPointParameterfARB;
12000   glPointParameterfvARB: TglPointParameterfvARB;
12001
12002   // GL_ARB_texture_compression
12003   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
12004   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
12005   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
12006   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
12007   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
12008   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
12009   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
12010
12011   // GL_ARB_transpose_matrix
12012   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12013   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12014   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12015   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12016
12017   // GL_ARB_vertex_blend
12018   glWeightbvARB: TglWeightbvARB;
12019   glWeightsvARB: TglWeightsvARB;
12020   glWeightivARB: TglWeightivARB;
12021   glWeightfvARB: TglWeightfvARB;
12022   glWeightdvARB: TglWeightdvARB;
12023   glWeightubvARB: TglWeightubvARB;
12024   glWeightusvARB: TglWeightusvARB;
12025   glWeightuivARB: TglWeightuivARB;
12026   glWeightPointerARB: TglWeightPointerARB;
12027   glVertexBlendARB: TglVertexBlendARB;
12028
12029   // GL_ARB_vertex_buffer_object
12030   glBindBufferARB: TglBindBufferARB;
12031   glDeleteBuffersARB: TglDeleteBuffersARB;
12032   glGenBuffersARB: TglGenBuffersARB;
12033   glIsBufferARB: TglIsBufferARB;
12034   glBufferDataARB: TglBufferDataARB;
12035   glBufferSubDataARB: TglBufferSubData;
12036   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12037   glMapBufferARB: TglMapBufferARB;
12038   glUnmapBufferARB: TglUnmapBufferARB;
12039   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12040   glGetBufferPointervARB: TglGetBufferPointervARB;
12041
12042   // GL_ARB_vertex_program
12043   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12044   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12045   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12046   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12047   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12048   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12049   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12050   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12051   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12052   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12053   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12054   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12055   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12056   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12057   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12058   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12059   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12060   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12061   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12062   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12063   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12064   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12065   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12066   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12067   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12068   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12069   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12070   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12071   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12072   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12073   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12074   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12075   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12076   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12077   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12078   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12079   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12080   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12081   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12082   glProgramStringARB: TglProgramStringARB;
12083   glBindProgramARB: TglBindProgramARB;
12084   glDeleteProgramsARB: TglDeleteProgramsARB;
12085   glGenProgramsARB: TglGenProgramsARB;
12086
12087   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12088   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12089   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12090   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12091   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12092   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12093   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12094   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12095   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12096   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12097   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12098   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12099   glGetProgramivARB: TglGetProgramivARB;
12100   glGetProgramStringARB: TglGetProgramStringARB;
12101   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12102   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12103   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12104   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12105   glIsProgramARB: TglIsProgramARB;
12106
12107   // GL_ARB_window_pos
12108   glWindowPos2dARB: TglWindowPos2dARB;
12109   glWindowPos2dvARB: TglWindowPos2dvARB;
12110   glWindowPos2fARB: TglWindowPos2fARB;
12111   glWindowPos2fvARB: TglWindowPos2fvARB;
12112   glWindowPos2iARB: TglWindowPos2iARB;
12113   glWindowPos2ivARB: TglWindowPos2ivARB;
12114   glWindowPos2sARB: TglWindowPos2sARB;
12115   glWindowPos2svARB: TglWindowPos2svARB;
12116   glWindowPos3dARB: TglWindowPos3dARB;
12117   glWindowPos3dvARB: TglWindowPos3dvARB;
12118   glWindowPos3fARB: TglWindowPos3fARB;
12119   glWindowPos3fvARB: TglWindowPos3fvARB;
12120   glWindowPos3iARB: TglWindowPos3iARB;
12121   glWindowPos3ivARB: TglWindowPos3ivARB;
12122   glWindowPos3sARB: TglWindowPos3sARB;
12123   glWindowPos3svARB: TglWindowPos3svARB;
12124
12125   // GL_ARB_draw_buffers
12126   glDrawBuffersARB: TglDrawBuffersARB;
12127
12128   // GL_ARB_color_buffer_float
12129   glClampColorARB: TglClampColorARB;
12130
12131   // GL_ARB_vertex_shader
12132   glGetActiveAttribARB: TglGetActiveAttribARB;
12133   glGetAttribLocationARB: TglGetAttribLocationARB;
12134   glBindAttribLocationARB: TglBindAttribLocationARB;
12135
12136   // GL_ARB_shader_objects
12137   glDeleteObjectARB: TglDeleteObjectARB;
12138   glGetHandleARB: TglGetHandleARB;
12139   glDetachObjectARB: TglDetachObjectARB;
12140   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12141   glShaderSourceARB: TglShaderSourceARB;
12142   glCompileShaderARB: TglCompileShaderARB;
12143   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12144   glAttachObjectARB: TglAttachObjectARB;
12145   glLinkProgramARB: TglLinkProgramARB;
12146   glUseProgramObjectARB: TglUseProgramObjectARB;
12147   glValidateProgramARB: TglValidateProgramARB;
12148   glUniform1fARB: TglUniform1fARB;
12149   glUniform2fARB: TglUniform2fARB;
12150   glUniform3fARB: TglUniform3fARB;
12151   glUniform4fARB: TglUniform4fARB;
12152   glUniform1iARB: TglUniform1iARB;
12153   glUniform2iARB: TglUniform2iARB;
12154   glUniform3iARB: TglUniform3iARB;
12155   glUniform4iARB: TglUniform4iARB;
12156   glUniform1fvARB: TglUniform1fvARB;
12157   glUniform2fvARB: TglUniform2fvARB;
12158   glUniform3fvARB: TglUniform3fvARB;
12159   glUniform4fvARB: TglUniform4fvARB;
12160   glUniform1ivARB: TglUniform1ivARB;
12161   glUniform2ivARB: TglUniform2ivARB;
12162   glUniform3ivARB: TglUniform3ivARB;
12163   glUniform4ivARB: TglUniform4ivARB;
12164   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12165   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12166   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12167   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12168   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12169   glGetInfoLogARB: TglGetInfoLogARB;
12170   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12171   glGetUniformLocationARB: TglGetUniformLocationARB;
12172   glGetActiveUniformARB: TglGetActiveUniformARB;
12173   glGetUniformfvARB: TglGetUniformfvARB;
12174   glGetUniformivARB: TglGetUniformivARB;
12175   glGetShaderSourceARB: TglGetShaderSourceARB;
12176
12177   // GL_ARB_Occlusion_Query
12178   glGenQueriesARB: TglGenQueriesARB;
12179   glDeleteQueriesARB: TglDeleteQueriesARB;
12180   glIsQueryARB: TglIsQueryARB;
12181   glBeginQueryARB: TglBeginQueryARB;
12182   glEndQueryARB: TglEndQueryARB;
12183   glGetQueryivARB: TglGetQueryivARB;
12184   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12185   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12186
12187   // GL_ARB_draw_instanced
12188   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12189   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12190
12191   // GL_ARB_framebuffer_object
12192   glIsRenderbuffer: TglIsRenderbuffer;
12193   glBindRenderbuffer: TglBindRenderbuffer;
12194   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12195   glGenRenderbuffers: TglGenRenderbuffers;
12196   glRenderbufferStorage: TglRenderbufferStorage;
12197   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12198   glIsFramebuffer: TglIsFramebuffer;
12199   glBindFramebuffer: TglBindFramebuffer;
12200   glDeleteFramebuffers: TglDeleteFramebuffers;
12201   glGenFramebuffers: TglGenFramebuffers;
12202   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12203   glFramebufferTexture1D: TglFramebufferTexture1D;
12204   glFramebufferTexture2D: TglFramebufferTexture2D;
12205   glFramebufferTexture3D: TglFramebufferTexture3D;
12206   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12207   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12208   glGenerateMipmap: TglGenerateMipmap;
12209   glBlitFramebuffer: TglBlitFramebuffer;
12210   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12211   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12212
12213   // GL_ARB_geometry_shader4
12214   glProgramParameteriARB: TglProgramParameteriARB;
12215   glFramebufferTextureARB: TglFramebufferTextureARB;
12216   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12217   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12218
12219   // GL_ARB_instanced_arrays
12220   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12221
12222   // GL_ARB_map_buffer_range
12223   glMapBufferRange: TglMapBufferRange;
12224   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12225
12226   // GL_ARB_texture_buffer_object
12227   glTexBufferARB: TglTexBufferARB;
12228
12229   // GL_ARB_vertex_array_object
12230   glBindVertexArray: TglBindVertexArray;
12231   glDeleteVertexArrays: TglDeleteVertexArrays;
12232   glGenVertexArrays: TglGenVertexArrays;
12233   glIsVertexArray: TglIsVertexArray;
12234
12235   // GL_ARB_uniform_buffer_object
12236   glGetUniformIndices: TglGetUniformIndices;
12237   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12238   glGetActiveUniformName: TglGetActiveUniformName;
12239   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12240   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12241   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12242   glUniformBlockBinding: TglUniformBlockBinding;
12243
12244   // GL_ARB_copy_buffer
12245   glCopyBufferSubData: TglCopyBufferSubData;
12246
12247   // GL_ARB_draw_elements_base_vertex
12248   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12249   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12250   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12251   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12252
12253   // GL_ARB_provoking_vertex
12254   glProvokingVertex: TglProvokingVertex;
12255
12256   // GL_ARB_sync
12257   glFenceSync: TglFenceSync;
12258   glIsSync: TglIsSync;
12259   glDeleteSync: TglDeleteSync;
12260   glClientWaitSync: TglClientWaitSync;
12261   glWaitSync: TglWaitSync;
12262   glGetInteger64v: TglGetInteger64v;
12263   glGetSynciv: TglGetSynciv;
12264
12265   // GL_ARB_texture_multisample
12266   glTexImage2DMultisample: TglTexImage2DMultisample;
12267   glTexImage3DMultisample: TglTexImage3DMultisample;
12268   glGetMultisamplefv: TglGetMultisamplefv;
12269   glSampleMaski: TglSampleMaski;
12270
12271   // GL_ARB_draw_buffers_blend
12272   glBlendEquationiARB: TglBlendEquationiARB;
12273   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12274   glBlendFunciARB: TglBlendFunciARB;
12275   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12276
12277   // GL_ARB_sample_shading
12278   glMinSampleShadingARB: TglMinSampleShadingARB;
12279
12280   // GL_ARB_shading_language_include
12281   glNamedStringARB: TglNamedStringARB;
12282   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12283   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12284   glIsNamedStringARB: TglIsNamedStringARB;
12285   glGetNamedStringARB: TglGetNamedStringARB;
12286   glGetNamedStringivARB: TglGetNamedStringivARB;
12287
12288   // GL_ARB_blend_func_extended
12289   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12290   glGetFragDataIndex: TglGetFragDataIndex;
12291
12292   // GL_ARB_sampler_objects
12293   glGenSamplers: TglGenSamplers;
12294   glDeleteSamplers: TglDeleteSamplers;
12295   glIsSampler: TglIsSampler;
12296   glBindSampler: TglBindSampler;
12297   glSamplerParameteri: TglSamplerParameteri;
12298   glSamplerParameteriv: TglSamplerParameteriv;
12299   glSamplerParameterf: TglSamplerParameterf;
12300   glSamplerParameterfv: TglSamplerParameterfv;
12301   glSamplerParameterIiv: TglSamplerParameterIiv;
12302   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12303   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12304   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12305   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12306   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12307
12308   // GL_ARB_timer_query
12309   glQueryCounter: TglQueryCounter;
12310   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12311   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12312
12313   // GL_ARB_vertex_type_2_10_10_10_rev
12314   glVertexP2ui: TglVertexP2ui;
12315   glVertexP2uiv: TglVertexP2uiv;
12316   glVertexP3ui: TglVertexP3ui;
12317   glVertexP3uiv: TglVertexP3uiv;
12318   glVertexP4ui: TglVertexP4ui;
12319   glVertexP4uiv: TglVertexP4uiv;
12320   glTexCoordP1ui: TglTexCoordP1ui;
12321   glTexCoordP1uiv: TglTexCoordP1uiv;
12322   glTexCoordP2ui: TglTexCoordP2ui;
12323   glTexCoordP2uiv: TglTexCoordP2uiv;
12324   glTexCoordP3ui: TglTexCoordP3ui;
12325   glTexCoordP3uiv: TglTexCoordP3uiv;
12326   glTexCoordP4ui: TglTexCoordP4ui;
12327   glTexCoordP4uiv: TglTexCoordP4uiv;
12328   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12329   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12330   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12331   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12332   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12333   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12334   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12335   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12336   glNormalP3ui: TglNormalP3ui;
12337   glNormalP3uiv: TglNormalP3uiv;
12338   glColorP3ui: TglColorP3ui;
12339   glColorP3uiv: TglColorP3uiv;
12340   glColorP4ui: TglColorP4ui;
12341   glColorP4uiv: TglColorP4uiv;
12342   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12343   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12344   glVertexAttribP1ui: TglVertexAttribP1ui;
12345   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12346   glVertexAttribP2ui: TglVertexAttribP2ui;
12347   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12348   glVertexAttribP3ui: TglVertexAttribP3ui;
12349   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12350   glVertexAttribP4ui: TglVertexAttribP4ui;
12351   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12352
12353   // GL_ARB_draw_indirect
12354   glDrawArraysIndirect: TglDrawArraysIndirect;
12355   glDrawElementsIndirect: TglDrawElementsIndirect;
12356
12357   // GL_ARB_gpu_shader_fp64
12358   glUniform1d: TglUniform1d;
12359   glUniform2d: TglUniform2d;
12360   glUniform3d: TglUniform3d;
12361   glUniform4d: TglUniform4d;
12362   glUniform1dv: TglUniform1dv;
12363   glUniform2dv: TglUniform2dv;
12364   glUniform3dv: TglUniform3dv;
12365   glUniform4dv: TglUniform4dv;
12366   glUniformMatrix2dv: TglUniformMatrix2dv;
12367   glUniformMatrix3dv: TglUniformMatrix3dv;
12368   glUniformMatrix4dv: TglUniformMatrix4dv;
12369   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12370   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12371   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12372   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12373   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12374   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12375   glGetUniformdv: TglGetUniformdv;
12376
12377   // GL_ARB_shader_subroutine
12378   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12379   glGetSubroutineIndex: TglGetSubroutineIndex;
12380   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12381   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12382   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12383   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12384   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12385   glGetProgramStageiv: TglGetProgramStageiv;
12386
12387   // GL_ARB_tessellation_shader
12388   glPatchParameteri: TglPatchParameteri;
12389   glPatchParameterfv: TglPatchParameterfv;
12390
12391   // GL_ARB_transform_feedback2
12392   glBindTransformFeedback: TglBindTransformFeedback;
12393   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12394   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12395   glIsTransformFeedback: TglIsTransformFeedback;
12396   glPauseTransformFeedback: TglPauseTransformFeedback;
12397   glResumeTransformFeedback: TglResumeTransformFeedback;
12398   glDrawTransformFeedback: TglDrawTransformFeedback;
12399
12400   // GL_ARB_transform_feedback3
12401   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12402   glBeginQueryIndexed: TglBeginQueryIndexed;
12403   glEndQueryIndexed: TglEndQueryIndexed;
12404   glGetQueryIndexediv: TglGetQueryIndexediv;
12405
12406   // GL_ARB_ES2_compatibility
12407   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12408   glShaderBinary: TglShaderBinary;
12409   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12410   glDepthRangef: TglDepthRangef;
12411   glClearDepthf: TglClearDepthf;
12412
12413   // GL_ARB_get_program_binary
12414   glGetProgramBinary: TglGetProgramBinary;
12415   glProgramBinary: TglProgramBinary;
12416   glProgramParameteri: TglProgramParameteri;
12417
12418   // GL_ARB_separate_shader_objects
12419   glUseProgramStages: TglUseProgramStages;
12420   glActiveShaderProgram: TglActiveShaderProgram;
12421   glCreateShaderProgramv: TglCreateShaderProgramv;
12422   glBindProgramPipeline: TglBindProgramPipeline;
12423   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12424   glGenProgramPipelines: TglGenProgramPipelines;
12425   glIsProgramPipeline: TglIsProgramPipeline;
12426   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12427   glProgramUniform1i: TglProgramUniform1i;
12428   glProgramUniform1iv: TglProgramUniform1iv;
12429   glProgramUniform1f: TglProgramUniform1f;
12430   glProgramUniform1fv: TglProgramUniform1fv;
12431   glProgramUniform1d: TglProgramUniform1d;
12432   glProgramUniform1dv: TglProgramUniform1dv;
12433   glProgramUniform1ui: TglProgramUniform1ui;
12434   glProgramUniform1uiv: TglProgramUniform1uiv;
12435   glProgramUniform2i: TglProgramUniform2i;
12436   glProgramUniform2iv: TglProgramUniform2iv;
12437   glProgramUniform2f: TglProgramUniform2f;
12438   glProgramUniform2fv: TglProgramUniform2fv;
12439   glProgramUniform2d: TglProgramUniform2d;
12440   glProgramUniform2dv: TglProgramUniform2dv;
12441   glProgramUniform2ui: TglProgramUniform2ui;
12442   glProgramUniform2uiv: TglProgramUniform2uiv;
12443   glProgramUniform3i: TglProgramUniform3i;
12444   glProgramUniform3iv: TglProgramUniform3iv;
12445   glProgramUniform3f: TglProgramUniform3f;
12446   glProgramUniform3fv: TglProgramUniform3fv;
12447   glProgramUniform3d: TglProgramUniform3d;
12448   glProgramUniform3dv: TglProgramUniform3dv;
12449   glProgramUniform3ui: TglProgramUniform3ui;
12450   glProgramUniform3uiv: TglProgramUniform3uiv;
12451   glProgramUniform4i: TglProgramUniform4i;
12452   glProgramUniform4iv: TglProgramUniform4iv;
12453   glProgramUniform4f: TglProgramUniform4f;
12454   glProgramUniform4fv: TglProgramUniform4fv;
12455   glProgramUniform4d: TglProgramUniform4d;
12456   glProgramUniform4dv: TglProgramUniform4dv;
12457   glProgramUniform4ui: TglProgramUniform4ui;
12458   glProgramUniform4uiv: TglProgramUniform4uiv;
12459   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12460   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12461   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12462   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12463   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12464   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12465   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12466   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12467   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12468   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12469   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12470   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12471   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12472   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12473   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12474   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12475   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12476   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12477   glValidateProgramPipeline: TglValidateProgramPipeline;
12478   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12479
12480   // GL_ARB_vertex_attrib_64bit
12481   glVertexAttribL1d: TglVertexAttribL1d;
12482   glVertexAttribL2d: TglVertexAttribL2d;
12483   glVertexAttribL3d: TglVertexAttribL3d;
12484   glVertexAttribL4d: TglVertexAttribL4d;
12485   glVertexAttribL1dv: TglVertexAttribL1dv;
12486   glVertexAttribL2dv: TglVertexAttribL2dv;
12487   glVertexAttribL3dv: TglVertexAttribL3dv;
12488   glVertexAttribL4dv: TglVertexAttribL4dv;
12489   glVertexAttribLPointer: TglVertexAttribLPointer;
12490   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12491
12492   // GL_ARB_viewport_array
12493   glViewportArrayv: TglViewportArrayv;
12494   glViewportIndexedf: TglViewportIndexedf;
12495   glViewportIndexedfv: TglViewportIndexedfv;
12496   glScissorArrayv: TglScissorArrayv;
12497   glScissorIndexed: TglScissorIndexed;
12498   glScissorIndexedv: TglScissorIndexedv;
12499   glDepthRangeArrayv: TglDepthRangeArrayv;
12500   glDepthRangeIndexed: TglDepthRangeIndexed;
12501   glGetFloati_v: TglGetFloati_v;
12502   glGetDoublei_v: TglGetDoublei_v;
12503
12504   // GL 4.2
12505
12506   // GL_ARB_base_instance
12507   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12508   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12509   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12510
12511   // GL_ARB_transform_feedback_instanced
12512   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12513   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12514
12515   // GL_ARB_internalformat_query
12516   glGetInternalformativ : TglGetInternalformativ;
12517
12518   // GL_ARB_shader_atomic_counters
12519   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12520
12521   /// GL_ARB_shader_image_load_store
12522   glBindImageTexture : TglBindImageTexture;
12523   glMemoryBarrier : TglMemoryBarrier;
12524
12525   // GL_ARB_texture_storage
12526   glTexStorage1D : TglTexStorage1D;
12527   glTexStorage2D : TglTexStorage2D;
12528   glTexStorage3D : TglTexStorage3D;
12529   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12530   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12531   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12532
12533
12534   // GL 4.3
12535     // GL_KHR_debug
12536     glDebugMessageControl : TglDebugMessageControl;
12537     glDebugMessageInsert : TglDebugMessageInsert;
12538     glDebugMessageCallback : TglDebugMessageCallback;
12539     glGetDebugMessageLog : TglGetDebugMessageLog;
12540     glPushDebugGroup : TglPushDebugGroup;
12541     glPopDebugGroup : TglPopDebugGroup;
12542     glObjectLabel : TglObjectLabel;
12543     glGetObjectLabel : TglGetObjectLabel;
12544     glObjectPtrLabel : TglObjectPtrLabel;
12545     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12546     // GL_ARB_clear_buffer_object
12547     glClearBufferData : TglClearBufferData;
12548     glClearBufferSubData : TglClearBufferSubData;
12549     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12550     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12551     // GL_ARB_compute_shader
12552     glDispatchCompute : TglDispatchCompute;
12553     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12554     // GL_ARB_copy_image
12555     glCopyImageSubData : TglCopyImageSubData;
12556     // GL_ARB_framebuffer_no_attachments
12557     glFramebufferParameteri : TglFramebufferParameteri;
12558     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12559     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12560     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12561     // GL_ARB_internalformat_query2
12562     glGetInternalformati64v : TglGetInternalformati64v;
12563     // GL_ARB_invalidate_subdata
12564     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12565     glInvalidateTexImage : TglInvalidateTexImage;
12566     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12567     glInvalidateBufferData : TglInvalidateBufferData;
12568     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12569     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12570     // GL_ARB_multi_draw_indirect
12571     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12572     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12573     // GL_ARB_program_interface_query
12574     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12575     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12576     glGetProgramResourceName : TglGetProgramResourceName;
12577     glGetProgramResourceiv : TglGetProgramResourceiv;
12578     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12579     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12580     // GL_ARB_shader_storage_buffer_object
12581     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12582     // GL_ARB_texture_buffer_range
12583     glTexBufferRange : TglTexBufferRange;
12584     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12585     // GL_ARB_texture_storage_multisample
12586     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12587     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12588     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12589     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12590     // GL_ARB_texture_view
12591     glTextureView : TglTextureView;
12592     // GL_ARB_vertex_attrib_binding
12593     glBindVertexBuffer : TglBindVertexBuffer;
12594     glVertexAttribFormat : TglVertexAttribFormat;
12595     glVertexAttribIFormat : TglVertexAttribIFormat;
12596     glVertexAttribLFormat : TglVertexAttribLFormat;
12597     glVertexAttribBinding : TglVertexAttribBinding;
12598     glVertexBindingDivisor : TglVertexBindingDivisor;
12599     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12600     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12601     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12602     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12603     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12604     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12605   // END GL 4.3
12606
12607
12608   // GL 4.4
12609     glBufferStorage : TglBufferStorage;
12610     glClearTexImage : TglClearTexImage;
12611     glClearTexSubImage : TglClearTexSubImage;
12612     glBindBuffersBase : TglBindBuffersBase;
12613     glBindBuffersRange : TglBindBuffersRange;
12614     glBindTextures : TglBindTextures;
12615     glBindSamplers : TglBindSamplers;
12616     glBindImageTextures : TglBindImageTextures;
12617     glBindVertexBuffers : TglBindVertexBuffers;
12618     glTexPageCommitmentARB : TglTexPageCommitmentARB;
12619
12620   // GL 4.5
12621   glClipControl : TglClipControl;
12622   glCreateTransformFeedbacks : TglCreateTransformFeedbacks;
12623   glTransformFeedbackBufferBase : TglTransformFeedbackBufferBase;
12624   glTransformFeedbackBufferRange : TglTransformFeedbackBufferRange;
12625   glGetTransformFeedbackiv : TglGetTransformFeedbackiv;
12626   glGetTransformFeedbacki_v : TglGetTransformFeedbacki_v;
12627   glGetTransformFeedbacki64_v : TglGetTransformFeedbacki64_v;
12628   glCreateBuffers : TglCreateBuffers;
12629   glNamedBufferStorage : TglNamedBufferStorage;
12630   glNamedBufferData : TglNamedBufferData;
12631   glNamedBufferSubData : TglNamedBufferSubData;
12632   glCopyNamedBufferSubData : TglCopyNamedBufferSubData;
12633   glClearNamedBufferData : TglClearNamedBufferData;
12634   glClearNamedBufferSubData : TglClearNamedBufferSubData;
12635   glMapNamedBuffer : TglMapNamedBuffer;
12636   glMapNamedBufferRange : TglMapNamedBufferRange;
12637   glUnmapNamedBuffer : TglUnmapNamedBuffer;
12638   glFlushMappedNamedBufferRange : TglFlushMappedNamedBufferRange;
12639   glGetNamedBufferParameteriv : TglGetNamedBufferParameteriv;
12640   glGetNamedBufferParameteri64v : TglGetNamedBufferParameteri64v;
12641   glGetNamedBufferPointerv : TglGetNamedBufferPointerv;
12642   glGetNamedBufferSubData : TglGetNamedBufferSubData;
12643   glCreateFramebuffers : TglCreateFramebuffers;
12644   glNamedFramebufferRenderbuffer : TglNamedFramebufferRenderbuffer;
12645   glNamedFramebufferParameteri : TglNamedFramebufferParameteri;
12646   glNamedFramebufferTexture : TglNamedFramebufferTexture;
12647   glNamedFramebufferTextureLayer : TglNamedFramebufferTextureLayer;
12648   glNamedFramebufferDrawBuffer : TglNamedFramebufferDrawBuffer;
12649   glNamedFramebufferDrawBuffers : TglNamedFramebufferDrawBuffers;
12650   glNamedFramebufferReadBuffer : TglNamedFramebufferReadBuffer;
12651   glInvalidateNamedFramebufferData : TglInvalidateNamedFramebufferData;
12652   glInvalidateNamedFramebufferSubData : TglInvalidateNamedFramebufferSubData;
12653   glClearNamedFramebufferiv : TglClearNamedFramebufferiv;
12654   glClearNamedFramebufferuiv : TglClearNamedFramebufferuiv;
12655   glClearNamedFramebufferfv : TglClearNamedFramebufferfv;
12656   glClearNamedFramebufferfi : TglClearNamedFramebufferfi;
12657   glBlitNamedFramebuffer : TglBlitNamedFramebuffer;
12658   glCheckNamedFramebufferStatus : TglCheckNamedFramebufferStatus;
12659   glGetNamedFramebufferParameteriv : TglGetNamedFramebufferParameteriv;
12660   glGetNamedFramebufferAttachmentParameteriv : TglGetNamedFramebufferAttachmentParameteriv;
12661   glCreateRenderbuffers : TglCreateRenderbuffers;
12662   glNamedRenderbufferStorage : TglNamedRenderbufferStorage;
12663   glNamedRenderbufferStorageMultisample : TglNamedRenderbufferStorageMultisample;
12664   glGetNamedRenderbufferParameteriv : TglGetNamedRenderbufferParameteriv;
12665   glCreateTextures : TglCreateTextures;
12666   glTextureBuffer : TglTextureBuffer;
12667   glTextureBufferRange : TglTextureBufferRange;
12668   glTextureStorage1D : TglTextureStorage1D;
12669   glTextureStorage2D : TglTextureStorage2D;
12670   glTextureStorage3D : TglTextureStorage3D;
12671   glTextureStorage2DMultisample : TglTextureStorage2DMultisample;
12672   glTextureStorage3DMultisample : TglTextureStorage3DMultisample;
12673   glTextureSubImage1D : TglTextureSubImage1D;
12674   glTextureSubImage2D : TglTextureSubImage2D;
12675   glTextureSubImage3D : TglTextureSubImage3D;
12676   glCompressedTextureSubImage1D : TglCompressedTextureSubImage1D;
12677   glCompressedTextureSubImage2D : TglCompressedTextureSubImage2D;
12678   glCompressedTextureSubImage3D : TglCompressedTextureSubImage3D;
12679   glCopyTextureSubImage1D : TglCopyTextureSubImage1D;
12680   glCopyTextureSubImage2D : TglCopyTextureSubImage2D;
12681   glCopyTextureSubImage3D : TglCopyTextureSubImage3D;
12682   glTextureParameterf : TglTextureParameterf;
12683   glTextureParameterfv : TglTextureParameterfv;
12684   glTextureParameteri : TglTextureParameteri;
12685   glTextureParameterIiv : TglTextureParameterIiv;
12686   glTextureParameterIuiv : TglTextureParameterIuiv;
12687   glTextureParameteriv : TglTextureParameteriv;
12688   glGenerateTextureMipmap : TglGenerateTextureMipmap;
12689   glBindTextureUnit : TglBindTextureUnit;
12690   glGetTextureImage : TglGetTextureImage;
12691   glGetCompressedTextureImage : TglGetCompressedTextureImage;
12692   glGetTextureLevelParameterfv : TglGetTextureLevelParameterfv;
12693   glGetTextureLevelParameteriv : TglGetTextureLevelParameteriv;
12694   glGetTextureParameterfv : TglGetTextureParameterfv;
12695   glGetTextureParameterIiv : TglGetTextureParameterIiv;
12696   glGetTextureParameterIuiv : TglGetTextureParameterIuiv;
12697   glGetTextureParameteriv : TglGetTextureParameteriv;
12698   glCreateVertexArrays : TglCreateVertexArrays;
12699   glDisableVertexArrayAttrib : TglDisableVertexArrayAttrib;
12700   glEnableVertexArrayAttrib : TglEnableVertexArrayAttrib;
12701   glVertexArrayElementBuffer : TglVertexArrayElementBuffer;
12702   glVertexArrayVertexBuffer : TglVertexArrayVertexBuffer;
12703   glVertexArrayVertexBuffers : TglVertexArrayVertexBuffers;
12704   glVertexArrayAttribBinding : TglVertexArrayAttribBinding;
12705   glVertexArrayAttribFormat : TglVertexArrayAttribFormat;
12706   glVertexArrayAttribIFormat : TglVertexArrayAttribIFormat;
12707   glVertexArrayAttribLFormat : TglVertexArrayAttribLFormat;
12708   glVertexArrayBindingDivisor : TglVertexArrayBindingDivisor;
12709   glGetVertexArrayiv : TglGetVertexArrayiv;
12710   glGetVertexArrayIndexediv : TglGetVertexArrayIndexediv;
12711   glGetVertexArrayIndexed64iv : TglGetVertexArrayIndexed64iv;
12712   glCreateSamplers : TglCreateSamplers;
12713   glCreateProgramPipelines : TglCreateProgramPipelines;
12714   glCreateQueries : TglCreateQueries;
12715   glMemoryBarrierByRegion : TglMemoryBarrierByRegion;
12716   glGetTextureSubImage : TglGetTextureSubImage;
12717   glGetCompressedTextureSubImage : TglGetCompressedTextureSubImage;
12718   glGetGraphicsResetStatus : TglGetGraphicsResetStatus;
12719   glGetnCompressedTexImage : TglGetnCompressedTexImage;
12720   glGetnTexImage : TglGetnTexImage;
12721   glGetnUniformdv : TglGetnUniformdv;
12722   glGetnUniformfv : TglGetnUniformfv;
12723   glGetnUniformiv : TglGetnUniformiv;
12724   glGetnUniformuiv : TglGetnUniformuiv;
12725   glReadnPixels : TglReadnPixels;
12726   glGetnMapdv : TglGetnMapdv;
12727   glGetnMapfv : TglGetnMapfv;
12728   glGetnMapiv : TglGetnMapiv;
12729   glGetnPixelMapfv : TglGetnPixelMapfv;
12730   glGetnPixelMapuiv : TglGetnPixelMapuiv;
12731   glGetnPixelMapusv : TglGetnPixelMapusv;
12732   glGetnPolygonStipple : TglGetnPolygonStipple;
12733   glGetnColorTable : TglGetnColorTable;
12734   glGetnConvolutionFilter : TglGetnConvolutionFilter;
12735   glGetnSeparableFilter : TglGetnSeparableFilter;
12736   glGetnHistogram : TglGetnHistogram;
12737   glGetnMinmax : TglGetnMinmax;
12738   glTextureBarrier : TglTextureBarrier;
12739
12740   // GL_ARB_sparse_buffer
12741   glBufferPageCommitmentARB : TglBufferPageCommitmentARB;
12742   glNamedBufferPageCommitmentEXT : TglNamedBufferPageCommitmentEXT;
12743   glNamedBufferPageCommitmentARB : TglNamedBufferPageCommitmentARB;
12744
12745   // GL_KHR_blend_equation_advanced
12746   glBlendBarrierKHR : TglBlendBarrierKHR;
12747
12748   // GL_ARB_cl_event
12749   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12750
12751   // GL_ARB_debug_output
12752   glDebugMessageControlARB: TglDebugMessageControlARB;
12753   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12754   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12755   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12756
12757   // GL_ARB_compute_variable_group_size
12758   glDispatchComputeGroupSizeARB : TglDispatchComputeGroupSizeARB;
12759
12760   // GL_ARB_robustness
12761   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12762   glGetnMapdvARB: TglGetnMapdvARB;
12763   glGetnMapfvARB: TglGetnMapfvARB;
12764   glGetnMapivARB: TglGetnMapivARB;
12765   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12766   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12767   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12768   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12769   glGetnColorTableARB: TglGetnColorTableARB;
12770   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12771   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12772   glGetnHistogramARB: TglGetnHistogramARB;
12773   glGetnMinmaxARB: TglGetnMinmaxARB;
12774   glGetnTexImageARB: TglGetnTexImageARB;
12775   glReadnPixelsARB: TglReadnPixelsARB;
12776   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12777   glGetnUniformfvARB: TglGetnUniformfvARB;
12778   glGetnUniformivARB: TglGetnUniformivARB;
12779   glGetnUniformuivARB: TglGetnUniformuivARB;
12780   glGetnUniformdvARB: TglGetnUniformdvARB;
12781
12782   // GL_ATI_draw_buffers
12783   glDrawBuffersATI: TglDrawBuffersATI;
12784
12785   // GL_ATI_element_array
12786   glElementPointerATI: TglElementPointerATI;
12787   glDrawElementArrayATI: TglDrawElementArrayATI;
12788   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12789
12790   // GL_ATI_envmap_bumpmap
12791   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12792   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12793   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12794   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12795
12796   // GL_ATI_fragment_shader
12797   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12798   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12799   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12800   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12801   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12802   glPassTexCoordATI: TglPassTexCoordATI;
12803   glSampleMapATI: TglSampleMapATI;
12804   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12805   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12806   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12807   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12808   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12809   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12810   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12811
12812   // GL_ATI_map_object_buffer
12813   glMapObjectBufferATI: TglMapObjectBufferATI;
12814   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12815
12816   // GL_ATI_pn_triangles
12817   glPNTrianglesiATI: TglPNTrianglesiATI;
12818   glPNTrianglesfATI: TglPNTrianglesfATI;
12819
12820   // GL_ATI_separate_stencil
12821   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12822   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12823
12824   // GL_ATI_vertex_array_object
12825   glNewObjectBufferATI: TglNewObjectBufferATI;
12826   glIsObjectBufferATI: TglIsObjectBufferATI;
12827   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12828   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12829   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12830   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12831   glArrayObjectATI: TglArrayObjectATI;
12832   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12833   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12834   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12835   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12836   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12837   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12838   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12839   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12840
12841   // GL_ATI_vertex_streams
12842   glVertexStream1sATI: TglVertexStream1sATI;
12843   glVertexStream1svATI: TglVertexStream1svATI;
12844   glVertexStream1iATI: TglVertexStream1iATI;
12845   glVertexStream1ivATI: TglVertexStream1ivATI;
12846   glVertexStream1fATI: TglVertexStream1fATI;
12847   glVertexStream1fvATI: TglVertexStream1fvATI;
12848   glVertexStream1dATI: TglVertexStream1dATI;
12849   glVertexStream1dvATI: TglVertexStream1dvATI;
12850   glVertexStream2sATI: TglVertexStream2sATI;
12851   glVertexStream2svATI: TglVertexStream2svATI;
12852   glVertexStream2iATI: TglVertexStream2iATI;
12853   glVertexStream2ivATI: TglVertexStream2ivATI;
12854   glVertexStream2fATI: TglVertexStream2fATI;
12855   glVertexStream2fvATI: TglVertexStream2fvATI;
12856   glVertexStream2dATI: TglVertexStream2dATI;
12857   glVertexStream2dvATI: TglVertexStream2dvATI;
12858   glVertexStream3sATI: TglVertexStream3sATI;
12859   glVertexStream3svATI: TglVertexStream3svATI;
12860   glVertexStream3iATI: TglVertexStream3iATI;
12861   glVertexStream3ivATI: TglVertexStream3ivATI;
12862   glVertexStream3fATI: TglVertexStream3fATI;
12863   glVertexStream3fvATI: TglVertexStream3fvATI;
12864   glVertexStream3dATI: TglVertexStream3dATI;
12865   glVertexStream3dvATI: TglVertexStream3dvATI;
12866   glVertexStream4sATI: TglVertexStream4sATI;
12867   glVertexStream4svATI: TglVertexStream4svATI;
12868   glVertexStream4iATI: TglVertexStream4iATI;
12869   glVertexStream4ivATI: TglVertexStream4ivATI;
12870   glVertexStream4fATI: TglVertexStream4fATI;
12871   glVertexStream4fvATI: TglVertexStream4fvATI;
12872   glVertexStream4dATI: TglVertexStream4dATI;
12873   glVertexStream4dvATI: TglVertexStream4dvATI;
12874   glNormalStream3bATI: TglNormalStream3bATI;
12875   glNormalStream3bvATI: TglNormalStream3bvATI;
12876   glNormalStream3sATI: TglNormalStream3sATI;
12877   glNormalStream3svATI: TglNormalStream3svATI;
12878   glNormalStream3iATI: TglNormalStream3iATI;
12879   glNormalStream3ivATI: TglNormalStream3ivATI;
12880   glNormalStream3fATI: TglNormalStream3fATI;
12881   glNormalStream3fvATI: TglNormalStream3fvATI;
12882   glNormalStream3dATI: TglNormalStream3dATI;
12883   glNormalStream3dvATI: TglNormalStream3dvATI;
12884   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12885   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12886   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12887
12888   // GL_AMD_performance_monitor
12889   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12890   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12891   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12892   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12893   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12894   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12895   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12896   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12897   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12898   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12899   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12900
12901   // GL_AMD_vertex_shader_tesselator
12902   glTessellationFactorAMD: TglTessellationFactorAMD;
12903   glTessellationModeAMD: TglTessellationModeAMD;
12904
12905   // GL_AMD_draw_buffers_blend
12906   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12907   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12908   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12909   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12910
12911   // GL_AMD_name_gen_delete
12912   glGenNamesAMD: TglGenNamesAMD;
12913   glDeleteNamesAMD: TglDeleteNamesAMD;
12914   glIsNameAMD: TglIsNameAMD;
12915
12916   // GL_AMD_debug_output
12917   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12918   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12919   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12920   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12921
12922   // GL_EXT_blend_color
12923   glBlendColorEXT: TglBlendColorEXT;
12924
12925   // GL_EXT_blend_func_separate
12926   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12927
12928   // GL_EXT_blend_minmax
12929   glBlendEquationEXT: TglBlendEquationEXT;
12930
12931   // GL_EXT_color_subtable
12932   glColorSubTableEXT: TglColorSubTableEXT;
12933   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12934
12935   // GL_EXT_compiled_vertex_array
12936   glLockArraysEXT: TglLockArraysEXT;
12937   glUnlockArraysEXT: TglUnlockArraysEXT;
12938
12939   // GL_EXT_convolution
12940   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12941   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12942   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12943   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12944   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12945   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12946   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12947   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12948   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12949   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12950   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12951   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12952   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12953
12954   // GL_EXT_coordinate_frame
12955   glTangent3bEXT: TglTangent3bEXT;
12956   glTangent3bvEXT: TglTangent3bvEXT;
12957   glTangent3dEXT: TglTangent3dEXT;
12958   glTangent3dvEXT: TglTangent3dvEXT;
12959   glTangent3fEXT: TglTangent3fEXT;
12960   glTangent3fvEXT: TglTangent3fvEXT;
12961   glTangent3iEXT: TglTangent3iEXT;
12962   glTangent3ivEXT: TglTangent3ivEXT;
12963   glTangent3sEXT: TglTangent3sEXT;
12964   glTangent3svEXT: TglTangent3svEXT;
12965   glBinormal3bEXT: TglBinormal3bEXT;
12966   glBinormal3bvEXT: TglBinormal3bvEXT;
12967   glBinormal3dEXT: TglBinormal3dEXT;
12968   glBinormal3dvEXT: TglBinormal3dvEXT;
12969   glBinormal3fEXT: TglBinormal3fEXT;
12970   glBinormal3fvEXT: TglBinormal3fvEXT;
12971   glBinormal3iEXT: TglBinormal3iEXT;
12972   glBinormal3ivEXT: TglBinormal3ivEXT;
12973   glBinormal3sEXT: TglBinormal3sEXT;
12974   glBinormal3svEXT: TglBinormal3svEXT;
12975   glTangentPointerEXT: TglTangentPointerEXT;
12976   glBinormalPointerEXT: TglBinormalPointerEXT;
12977
12978   // GL_EXT_copy_texture
12979   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12980   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12981   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12982   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12983   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12984
12985   // GL_EXT_cull_vertex
12986   glCullParameterdvEXT: TglCullParameterdvEXT;
12987   glCullParameterfvEXT: TglCullParameterfvEXT;
12988
12989   // GL_EXT_draw_range_elements
12990   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12991
12992   // GL_EXT_fog_coord
12993   glFogCoordfEXT: TglFogCoordfEXT;
12994   glFogCoordfvEXT: TglFogCoordfvEXT;
12995   glFogCoorddEXT: TglFogCoorddEXT;
12996   glFogCoorddvEXT: TglFogCoorddvEXT;
12997   glFogCoordPointerEXT: TglFogCoordPointerEXT;
12998
12999   // GL_EXT_framebuffer_object
13000   glIsRenderbufferEXT: TglIsRenderbufferEXT;
13001   glBindRenderbufferEXT: TglBindRenderbufferEXT;
13002   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
13003   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
13004   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
13005   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
13006   glIsFramebufferEXT: TglIsFramebufferEXT;
13007   glBindFramebufferEXT: TglBindFramebufferEXT;
13008   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
13009   glGenFramebuffersEXT: TglGenFramebuffersEXT;
13010   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
13011   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
13012   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
13013   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
13014   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
13015   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
13016   glGenerateMipmapEXT: TglGenerateMipmapEXT;
13017
13018   // GL_EXT_histogram
13019   glGetHistogramEXT: TglGetHistogramEXT;
13020   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
13021   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
13022   glGetMinmaxEXT: TglGetMinmaxEXT;
13023   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
13024   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
13025   glHistogramEXT: TglHistogramEXT;
13026   glMinmaxEXT: TglMinmaxEXT;
13027   glResetHistogramEXT: TglResetHistogramEXT;
13028   glResetMinmaxEXT: TglResetMinmaxEXT;
13029
13030   // GL_EXT_index_func
13031   glIndexFuncEXT: TglIndexFuncEXT;
13032
13033   // GL_EXT_index_material
13034   glIndexMaterialEXT: TglIndexMaterialEXT;
13035
13036   // GL_EXT_light_texture
13037   glApplyTextureEXT: TglApplyTextureEXT;
13038   glTextureLightEXT: TglTextureLightEXT;
13039   glTextureMaterialEXT: TglTextureMaterialEXT;
13040
13041   // GL_EXT_multi_draw_arrays
13042   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13043   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13044
13045   // GL_EXT_multisample
13046   glSampleMaskEXT: TglSampleMaskEXT;
13047   glSamplePatternEXT: TglSamplePatternEXT;
13048
13049   // GL_EXT_paletted_texture
13050   glColorTableEXT: TglColorTableEXT;
13051   glGetColorTableEXT: TglGetColorTableEXT;
13052   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13053   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13054
13055   // GL_EXT_pixel_transform
13056   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13057   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13058   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13059   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13060
13061   // GL_EXT_point_parameters
13062   glPointParameterfEXT: TglPointParameterfEXT;
13063   glPointParameterfvEXT: TglPointParameterfvEXT;
13064
13065   // GL_EXT_polygon_offset
13066   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13067
13068   // GL_EXT_secondary_color
13069   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13070   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13071   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13072   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13073   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13074   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13075   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13076   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13077   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13078   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13079   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13080   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13081   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13082   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13083   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13084   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13085   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13086
13087   // GL_EXT_stencil_two_side
13088   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13089
13090   // GL_EXT_subtexture
13091   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13092   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13093
13094   // GL_EXT_texture3D
13095   glTexImage3DEXT: TglTexImage3DEXT;
13096   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13097
13098   // GL_EXT_texture_object
13099   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13100   glBindTextureEXT: TglBindTextureEXT;
13101   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13102   glGenTexturesEXT: TglGenTexturesEXT;
13103   glIsTextureEXT: TglIsTextureEXT;
13104   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13105
13106   // GL_EXT_texture_perturb_normal
13107   glTextureNormalEXT: TglTextureNormalEXT;
13108
13109   // GL_EXT_vertex_array
13110   glArrayElementEXT: TglArrayElementEXT;
13111   glColorPointerEXT: TglColorPointerEXT;
13112   glDrawArraysEXT: TglDrawArraysEXT;
13113   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13114   glGetPointervEXT: TglGetPointervEXT;
13115   glIndexPointerEXT: TglIndexPointerEXT;
13116   glNormalPointerEXT: TglNormalPointerEXT;
13117   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13118   glVertexPointerEXT: TglVertexPointerEXT;
13119
13120   // GL_EXT_vertex_shader
13121   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13122   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13123   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13124   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13125   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13126   glShaderOp1EXT: TglShaderOp1EXT;
13127   glShaderOp2EXT: TglShaderOp2EXT;
13128   glShaderOp3EXT: TglShaderOp3EXT;
13129   glSwizzleEXT: TglSwizzleEXT;
13130   glWriteMaskEXT: TglWriteMaskEXT;
13131   glInsertComponentEXT: TglInsertComponentEXT;
13132   glExtractComponentEXT: TglExtractComponentEXT;
13133   glGenSymbolsEXT: TglGenSymbolsEXT;
13134   glSetInvariantEXT: TglSetInvariantEXT;
13135   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13136   glVariantbvEXT: TglVariantbvEXT;
13137   glVariantsvEXT: TglVariantsvEXT;
13138   glVariantivEXT: TglVariantivEXT;
13139   glVariantfvEXT: TglVariantfvEXT;
13140   glVariantdvEXT: TglVariantdvEXT;
13141   glVariantubvEXT: TglVariantubvEXT;
13142   glVariantusvEXT: TglVariantusvEXT;
13143   glVariantuivEXT: TglVariantuivEXT;
13144   glVariantPointerEXT: TglVariantPointerEXT;
13145   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13146   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13147   glBindLightParameterEXT: TglBindLightParameterEXT;
13148   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13149   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13150   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13151   glBindParameterEXT: TglBindParameterEXT;
13152   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13153   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13154   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13155   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13156   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13157   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13158   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13159   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13160   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13161   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13162   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13163
13164   // GL_EXT_vertex_weighting
13165   glVertexWeightfEXT: TglVertexWeightfEXT;
13166   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13167   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13168
13169   // GL_EXT_stencil_clear_tag
13170   glStencilClearTagEXT: TglStencilClearTagEXT;
13171
13172   // GL_EXT_framebuffer_blit
13173   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13174
13175   // GL_EXT_framebuffer_multisample
13176   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13177
13178   // GL_EXT_timer_query
13179   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13180   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13181
13182   // GL_EXT_gpu_program_parameters
13183   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13184   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13185
13186   // GL_EXT_bindable_uniform
13187   glUniformBufferEXT: TglUniformBufferEXT;
13188   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13189   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13190
13191   // GL_EXT_draw_buffers2
13192   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13193   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13194   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13195   glEnableIndexedEXT: TglEnableIndexedEXT;
13196   glDisableIndexedEXT: TglDisableIndexedEXT;
13197   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13198
13199   // GL_EXT_draw_instanced
13200   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13201   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13202
13203   // GL_EXT_geometry_shader4
13204   glProgramParameteriEXT: TglProgramParameteriEXT;
13205   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13206 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13207   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13208
13209   // GL_EXT_gpu_shader4
13210   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13211   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13212   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13213   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13214   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13215   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13216   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13217   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13218   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13219   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13220   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13221   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13222   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13223   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13224   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13225   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13226   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13227   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13228   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13229   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13230   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13231   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13232   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13233   glUniform1uiEXT: TglUniform1uiEXT;
13234   glUniform2uiEXT: TglUniform2uiEXT;
13235   glUniform3uiEXT: TglUniform3uiEXT;
13236   glUniform4uiEXT: TglUniform4uiEXT;
13237   glUniform1uivEXT: TglUniform1uivEXT;
13238   glUniform2uivEXT: TglUniform2uivEXT;
13239   glUniform3uivEXT: TglUniform3uivEXT;
13240   glUniform4uivEXT: TglUniform4uivEXT;
13241   glGetUniformuivEXT: TglGetUniformuivEXT;
13242   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13243   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13244
13245   // GL_EXT_texture_array
13246   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13247
13248   // GL_EXT_texture_buffer_object
13249   glTexBufferEXT: TglTexBufferEXT;
13250
13251   // GL_EXT_texture_integer
13252   glClearColorIiEXT: TglClearColorIiEXT;
13253   glClearColorIuiEXT: TglClearColorIuiEXT;
13254   glTexParameterIivEXT: TglTexParameterIivEXT;
13255   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13256   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13257   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13258
13259   // GL_EXT_transform_feedback
13260   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13261   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13262   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13263   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13264   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13265   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13266   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13267
13268   // GL_EXT_direct_state_access
13269   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13270   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13271   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13272   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13273   glMatrixMultfEXT: TglMatrixMultfEXT;
13274   glMatrixMultdEXT: TglMatrixMultdEXT;
13275   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13276   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13277   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13278   glMatrixScalefEXT: TglMatrixScalefEXT;
13279   glMatrixScaledEXT: TglMatrixScaledEXT;
13280   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13281   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13282   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13283   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13284   glMatrixPopEXT: TglMatrixPopEXT;
13285   glMatrixPushEXT: TglMatrixPushEXT;
13286   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13287   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13288   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13289   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13290   glTextureParameterfEXT: TglTextureParameterfEXT;
13291   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13292   glTextureParameteriEXT: TglTextureParameteriEXT;
13293   glTextureParameterivEXT: TglTextureParameterivEXT;
13294   glTextureImage1DEXT: TglTextureImage1DEXT;
13295   glTextureImage2DEXT: TglTextureImage2DEXT;
13296   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13297   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13298   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13299   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13300   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13301   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13302   glGetTextureImageEXT: TglGetTextureImageEXT;
13303   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13304   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13305   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13306   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13307   glTextureImage3DEXT: TglTextureImage3DEXT;
13308   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13309   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13310   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13311   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13312   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13313   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13314   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13315   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13316   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13317   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13318   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13319   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13320   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13321   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13322   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13323   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13324   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13325   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13326   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13327   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13328   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13329   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13330   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13331   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13332   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13333   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13334   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13335   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13336   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13337   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13338   glMultiTexGendEXT: TglMultiTexGendEXT;
13339   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13340   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13341   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13342   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13343   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13344   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13345   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13346   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13347   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13348   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13349   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13350   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13351   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13352   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13353   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13354   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13355   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13356   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13357   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13358   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13359   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13360   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13361   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13362   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13363   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13364   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13365   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13366   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13367   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13368   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13369   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13370   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13371   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13372   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13373   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13374   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13375   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13376   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13377   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13378   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13379   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13380   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13381   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13382   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13383   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13384   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13385   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13386   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13387   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13388   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13389   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13390   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13391   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13392   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13393   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13394   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13395   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13396   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13397   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13398   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13399   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13400   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13401   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13402   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13403   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13404   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13405   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13406   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13407   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13408   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13409   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13410   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13411   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13412   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13413   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13414   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13415   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13416   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13417   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13418   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13419   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13420   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13421   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13422   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13423   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13424   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13425   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13426   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13427   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13428   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13429   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13430   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13431   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13432   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13433   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13434   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13435   glTextureBufferEXT: TglTextureBufferEXT;
13436   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13437   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13438   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13439   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13440   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13441   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13442   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13443   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13444   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13445   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13446   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13447   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13448   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13449   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13450   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13451   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13452   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13453   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13454   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13455   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13456   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13457   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13458   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13459   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13460   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13461   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13462   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13463   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13464   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13465   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13466   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13467   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13468   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13469   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13470   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13471   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13472   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13473   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13474   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13475
13476   // GL_EXT_separate_shader_objects
13477   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13478   glActiveProgramEXT: TglActiveProgramEXT;
13479   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13480
13481   // GL_EXT_shader_image_load_store
13482   glBindImageTextureEXT: TglBindImageTextureEXT;
13483   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13484
13485   // GL_EXT_vertex_attrib_64bit
13486   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13487   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13488   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13489   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13490   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13491   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13492   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13493   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13494   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13495   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13496   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13497
13498   // GL_HP_image_transform
13499   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13500   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13501   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13502   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13503   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13504   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13505
13506   // GL_EXT_depth_bounds_test
13507   glDepthBoundsEXT: TglDepthBoundsEXT;
13508
13509   // GL_EXT_blend_equation_separate
13510   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13511
13512   // GL_IBM_multimode_draw_arrays
13513   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13514   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13515
13516   // GL_IBM_vertex_array_lists
13517   glColorPointerListIBM: TglColorPointerListIBM;
13518   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13519   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13520   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13521   glIndexPointerListIBM: TglIndexPointerListIBM;
13522   glNormalPointerListIBM: TglNormalPointerListIBM;
13523   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13524   glVertexPointerListIBM: TglVertexPointerListIBM;
13525
13526   // GL_INGR_blend_func_separate
13527   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13528
13529   // GL_INTEL_parallel_arrays
13530   glVertexPointervINTEL: TglVertexPointervINTEL;
13531   glNormalPointervINTEL: TglNormalPointervINTEL;
13532   glColorPointervINTEL: TglColorPointervINTEL;
13533   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13534
13535   // GL_MESA_resize_buffers
13536   glResizeBuffersMESA: TglResizeBuffersMESA;
13537
13538   // GL_MESA_window_pos
13539   glWindowPos2dMESA: TglWindowPos2dMESA;
13540   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13541   glWindowPos2fMESA: TglWindowPos2fMESA;
13542   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13543   glWindowPos2iMESA: TglWindowPos2iMESA;
13544   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13545   glWindowPos2sMESA: TglWindowPos2sMESA;
13546   glWindowPos2svMESA: TglWindowPos2svMESA;
13547   glWindowPos3dMESA: TglWindowPos3dMESA;
13548   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13549   glWindowPos3fMESA: TglWindowPos3fMESA;
13550   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13551   glWindowPos3iMESA: TglWindowPos3iMESA;
13552   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13553   glWindowPos3sMESA: TglWindowPos3sMESA;
13554   glWindowPos3svMESA: TglWindowPos3svMESA;
13555   glWindowPos4dMESA: TglWindowPos4dMESA;
13556   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13557   glWindowPos4fMESA: TglWindowPos4fMESA;
13558   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13559   glWindowPos4iMESA: TglWindowPos4iMESA;
13560   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13561   glWindowPos4sMESA: TglWindowPos4sMESA;
13562   glWindowPos4svMESA: TglWindowPos4svMESA;
13563
13564   // GL_NV_evaluators
13565   glMapControlPointsNV: TglMapControlPointsNV;
13566   glMapParameterivNV: TglMapParameterivNV;
13567   glMapParameterfvNV: TglMapParameterfvNV;
13568   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13569   glGetMapParameterivNV: TglGetMapParameterivNV;
13570   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13571   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13572   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13573   glEvalMapsNV: TglEvalMapsNV;
13574
13575   // GL_NV_fence
13576   glDeleteFencesNV: TglDeleteFencesNV;
13577   glGenFencesNV: TglGenFencesNV;
13578   glIsFenceNV: TglIsFenceNV;
13579   glTestFenceNV: TglTestFenceNV;
13580   glGetFenceivNV: TglGetFenceivNV;
13581   glFinishFenceNV: TglFinishFenceNV;
13582   glSetFenceNV: TglSetFenceNV;
13583
13584   // GL_NV_fragment_program
13585   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13586   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13587   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13588   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13589   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13590   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13591
13592   // GL_NV_half_float
13593   glVertex2hNV: TglVertex2hNV;
13594   glVertex2hvNV: TglVertex2hvNV;
13595   glVertex3hNV: TglVertex3hNV;
13596   glVertex3hvNV: TglVertex3hvNV;
13597   glVertex4hNV: TglVertex4hNV;
13598   glVertex4hvNV: TglVertex4hvNV;
13599   glNormal3hNV: TglNormal3hNV;
13600   glNormal3hvNV: TglNormal3hvNV;
13601   glColor3hNV: TglColor3hNV;
13602   glColor3hvNV: TglColor3hvNV;
13603   glColor4hNV: TglColor4hNV;
13604   glColor4hvNV: TglColor4hvNV;
13605   glTexCoord1hNV: TglTexCoord1hNV;
13606   glTexCoord1hvNV: TglTexCoord1hvNV;
13607   glTexCoord2hNV: TglTexCoord2hNV;
13608   glTexCoord2hvNV: TglTexCoord2hvNV;
13609   glTexCoord3hNV: TglTexCoord3hNV;
13610   glTexCoord3hvNV: TglTexCoord3hvNV;
13611   glTexCoord4hNV: TglTexCoord4hNV;
13612   glTexCoord4hvNV: TglTexCoord4hvNV;
13613   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13614   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13615   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13616   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13617   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13618   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13619   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13620   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13621   glFogCoordhNV: TglFogCoordhNV;
13622   glFogCoordhvNV: TglFogCoordhvNV;
13623   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13624   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13625   glVertexWeighthNV: TglVertexWeighthNV;
13626   glVertexWeighthvNV: TglVertexWeighthvNV;
13627   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13628   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13629   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13630   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13631   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13632   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13633   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13634   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13635   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13636   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13637   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13638   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13639
13640   // GL_NV_occlusion_query
13641   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13642   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13643   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13644   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13645   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13646   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13647   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13648
13649   // GL_NV_pixel_data_range
13650   glPixelDataRangeNV: TglPixelDataRangeNV;
13651   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13652
13653   // GL_NV_point_sprite
13654   glPointParameteriNV: TglPointParameteriNV;
13655   glPointParameterivNV: TglPointParameterivNV;
13656
13657   // GL_NV_primitive_restart
13658   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13659   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13660
13661   // GL_NV_register_combiners
13662   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13663   glCombinerParameterfNV: TglCombinerParameterfNV;
13664   glCombinerParameterivNV: TglCombinerParameterivNV;
13665   glCombinerParameteriNV: TglCombinerParameteriNV;
13666   glCombinerInputNV: TglCombinerInputNV;
13667   glCombinerOutputNV: TglCombinerOutputNV;
13668   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13669   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13670   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13671   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13672   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13673   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13674   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13675
13676   // GL_NV_register_combiners2
13677   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13678   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13679
13680   // GL_NV_vertex_array_range
13681   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13682   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13683
13684   // GL_NV_vertex_program
13685   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13686   glBindProgramNV: TglBindProgramNV;
13687   glDeleteProgramsNV: TglDeleteProgramsNV;
13688   glExecuteProgramNV: TglExecuteProgramNV;
13689   glGenProgramsNV: TglGenProgramsNV;
13690   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13691   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13692   glGetProgramivNV: TglGetProgramivNV;
13693   glGetProgramStringNV: TglGetProgramStringNV;
13694   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13695   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13696   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13697   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13698   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13699   glIsProgramNV: TglIsProgramNV;
13700   glLoadProgramNV: TglLoadProgramNV;
13701   glProgramParameter4dNV: TglProgramParameter4dNV;
13702   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13703   glProgramParameter4fNV: TglProgramParameter4fNV;
13704   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13705   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13706   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13707   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13708   glTrackMatrixNV: TglTrackMatrixNV;
13709   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13710   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13711   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13712   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13713   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13714   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13715   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13716   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13717   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13718   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13719   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13720   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13721   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13722   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13723   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13724   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13725   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13726   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13727   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13728   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13729   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13730   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13731   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13732   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13733   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13734   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13735   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13736   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13737   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13738   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13739   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13740   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13741   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13742   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13743   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13744   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13745   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13746   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13747   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13748   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13749
13750   // GL_NV_depth_buffer_float
13751   glDepthRangedNV: TglDepthRangedNV;
13752   glClearDepthdNV: TglClearDepthdNV;
13753   glDepthBoundsdNV: TglDepthBoundsdNV;
13754
13755   // GL_NV_framebuffer_multisample_coverage
13756   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13757
13758   // GL_NV_geometry_program4
13759   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13760
13761   // GL_NV_gpu_program4
13762   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13763   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13764   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13765   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13766   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13767   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13768   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13769   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13770   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13771   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13772   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13773   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13774   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13775   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13776   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13777   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13778
13779   // GL_NV_parameter_buffer_object
13780   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13781   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13782   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13783
13784   // GL_NV_transform_feedback
13785   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13786   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13787   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13788   glBindBufferRangeNV: TglBindBufferRangeNV;
13789   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13790   glBindBufferBaseNV: TglBindBufferBaseNV;
13791   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13792   glActiveVaryingNV: TglActiveVaryingNV;
13793   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13794   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13795   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13796   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13797
13798   // GL_NV_conditional_render
13799   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13800   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13801
13802   // GL_NV_present_video
13803   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13804   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13805   glGetVideoivNV: TglGetVideoivNV;
13806   glGetVideouivNV: TglGetVideouivNV;
13807   glGetVideoi64vNV: TglGetVideoi64vNV;
13808   glGetVideoui64vNV: TglGetVideoui64vNV;
13809 //  glVideoParameterivNV: TglVideoParameterivNV;
13810
13811   // GL_NV_explicit_multisample
13812   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13813   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13814   glTexRenderbufferNV: TglTexRenderbufferNV;
13815
13816   // GL_NV_transform_feedback2
13817   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13818   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13819   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13820   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13821   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13822   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13823   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13824
13825   // GL_NV_video_capture
13826   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13827   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13828   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13829   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13830   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13831   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13832   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13833   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13834   glVideoCaptureNV: TglVideoCaptureNV;
13835   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13836   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13837   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13838
13839   // GL_NV_copy_image
13840   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13841
13842   // GL_NV_shader_buffer_load
13843   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13844   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13845   glIsBufferResidentNV: TglIsBufferResidentNV;
13846   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13847   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13848   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13849   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13850   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13851   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13852   glUniformui64NV: TglUniformui64NV;
13853   glUniformui64vNV: TglUniformui64vNV;
13854   glGetUniformui64vNV: TglGetUniformui64vNV;
13855   glProgramUniformui64NV: TglProgramUniformui64NV;
13856   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13857
13858   // GL_NV_vertex_buffer_unified_memory
13859   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13860   glVertexFormatNV: TglVertexFormatNV;
13861   glNormalFormatNV: TglNormalFormatNV;
13862   glColorFormatNV: TglColorFormatNV;
13863   glIndexFormatNV: TglIndexFormatNV;
13864   glTexCoordFormatNV: TglTexCoordFormatNV;
13865   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13866   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13867   glFogCoordFormatNV: TglFogCoordFormatNV;
13868   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13869   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13870   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13871
13872   // GL_NV_gpu_program5
13873   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13874   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13875
13876   // GL_NV_gpu_shader5
13877   glUniform1i64NV: TglUniform1i64NV;
13878   glUniform2i64NV: TglUniform2i64NV;
13879   glUniform3i64NV: TglUniform3i64NV;
13880   glUniform4i64NV: TglUniform4i64NV;
13881   glUniform1i64vNV: TglUniform1i64vNV;
13882   glUniform2i64vNV: TglUniform2i64vNV;
13883   glUniform3i64vNV: TglUniform3i64vNV;
13884   glUniform4i64vNV: TglUniform4i64vNV;
13885   glUniform1ui64NV: TglUniform1ui64NV;
13886   glUniform2ui64NV: TglUniform2ui64NV;
13887   glUniform3ui64NV: TglUniform3ui64NV;
13888   glUniform4ui64NV: TglUniform4ui64NV;
13889   glUniform1ui64vNV: TglUniform1ui64vNV;
13890   glUniform2ui64vNV: TglUniform2ui64vNV;
13891   glUniform3ui64vNV: TglUniform3ui64vNV;
13892   glUniform4ui64vNV: TglUniform4ui64vNV;
13893   glGetUniformi64vNV: TglGetUniformi64vNV;
13894   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13895   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13896   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13897   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13898   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13899   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13900   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13901   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13902   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13903   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13904   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13905   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13906   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13907   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13908   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13909   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13910
13911   // GL_NV_vertex_attrib_integer_64bit
13912   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13913   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13914   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13915   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13916   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13917   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13918   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13919   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13920   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13921   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13922   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13923   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13924   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13925   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13926   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13927   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13928   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13929   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13930   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13931
13932   // GL_NV_vdpau_interop
13933   glVDPAUInitNV: TglVDPAUInitNV;
13934   glVDPAUFiniNV: TglVDPAUFiniNV;
13935   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13936   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13937   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13938   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13939   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13940   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13941   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13942   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13943
13944   // GL_NV_texture_barrier
13945   glTextureBarrierNV: TglTextureBarrierNV;
13946
13947   // (4.3) GL_NV_path_rendering
13948   glGenPathsNV : TglGenPathsNV;
13949   glDeletePathsNV : TglDeletePathsNV;
13950   glIsPathNV : TglIsPathNV;
13951   glPathCommandsNV : TglPathCommandsNV;
13952   glPathCoordsNV : TglPathCoordsNV;
13953   glPathSubCommandsNV : TglPathSubCommandsNV;
13954   glPathSubCoordsNV : TglPathSubCoordsNV;
13955   glPathStringNV : TglPathStringNV;
13956   glPathGlyphsNV : TglPathGlyphsNV;
13957   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13958   glWeightPathsNV : TglWeightPathsNV;
13959   glCopyPathNV : TglCopyPathNV;
13960   glInterpolatePathsNV : TglInterpolatePathsNV;
13961   glTransformPathNV : TglTransformPathNV;
13962   glPathParameterivNV : TglPathParameterivNV;
13963   glPathParameteriNV : TglPathParameteriNV;
13964   glPathParameterfvNV : TglPathParameterfvNV;
13965   glPathParameterfNV : TglPathParameterfNV;
13966   glPathDashArrayNV : TglPathDashArrayNV;
13967   glPathStencilFuncNV : TglPathStencilFuncNV;
13968   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13969   glStencilFillPathNV : TglStencilFillPathNV;
13970   glStencilStrokePathNV : TglStencilStrokePathNV;
13971   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13972   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13973   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13974   glPathColorGenNV : TglPathColorGenNV;
13975   glPathTexGenNV : TglPathTexGenNV;
13976   glPathFogGenNV : TglPathFogGenNV;
13977   glCoverFillPathNV : TglCoverFillPathNV;
13978   glCoverStrokePathNV : TglCoverStrokePathNV;
13979   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13980   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13981   glGetPathParameterivNV : TglGetPathParameterivNV;
13982   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13983   glGetPathCommandsNV : TglGetPathCommandsNV;
13984   glGetPathCoordsNV : TglGetPathCoordsNV;
13985   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13986   glGetPathMetricsNV : TglGetPathMetricsNV;
13987   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13988   glGetPathSpacingNV : TglGetPathSpacingNV;
13989   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13990   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13991   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13992   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13993   glIsPointInFillPathNV : TglIsPointInFillPathNV;
13994   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
13995   glGetPathLengthNV : TglGetPathLengthNV;
13996   glPointAlongPathNV : TglPointAlongPathNV;
13997
13998   // GL_AMD_pinned_memory
13999
14000   // GL_AMD_stencil_operation_extended
14001   glStencilOpValueAMD : TglStencilOpValueAMD;
14002
14003   // GL_AMD_vertex_shader_viewport_index
14004
14005   // GL_AMD_vertex_shader_layer
14006
14007   // GL_NV_bindless_texture
14008   glGetTextureHandleNV : TglGetTextureHandleNV;
14009   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
14010   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
14011   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
14012   glGetImageHandleNV : TglGetImageHandleNV;
14013   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
14014   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
14015   glUniformHandleui64NV : TglUniformHandleui64NV;
14016   glUniformHandleui64vNV : TglUniformHandleui64vNV;
14017   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
14018   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
14019   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
14020   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
14021
14022   // GL_ARB_bindless_texture
14023   glGetTextureHandleARB : TglGetTextureHandleARB;
14024   glGetTextureSamplerHandleARB : TglGetTextureSamplerHandleARB;
14025   glMakeTextureHandleResidentARB : TglMakeTextureHandleResidentARB;
14026   glMakeTextureHandleNonResidentARB : TglMakeTextureHandleNonResidentARB;
14027   glGetImageHandleARB : TglGetImageHandleARB;
14028   glMakeImageHandleResidentARB : TglMakeImageHandleResidentARB;
14029   glMakeImageHandleNonResidentARB : TglMakeImageHandleNonResidentARB;
14030   glUniformHandleui64ARB : TglUniformHandleui64ARB;
14031   glUniformHandleui64vARB : TglUniformHandleui64vARB;
14032   glProgramUniformHandleui64ARB : TglProgramUniformHandleui64ARB;
14033   glProgramUniformHandleui64vARB : TglProgramUniformHandleui64vARB;
14034   glIsTextureHandleResidentARB : TglIsTextureHandleResidentARB;
14035   glIsImageHandleResidentARB : TglIsImageHandleResidentARB;
14036   glVertexAttribL1ui64ARB : TglVertexAttribL1ui64ARB;
14037   glVertexAttribL1ui64vARB : TglVertexAttribL1ui64vARB;
14038   glGetVertexAttribLui64vARB : TglGetVertexAttribLui64vARB;
14039
14040   // GL_PGI_misc_hints
14041   glHintPGI: TglHintPGI;
14042
14043   // GL_SGIS_detail_texture
14044   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
14045   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
14046
14047   // GL_SGIS_fog_function
14048   glFogFuncSGIS: TglFogFuncSGIS;
14049   glGetFogFuncSGIS: TglGetFogFuncSGIS;
14050
14051   // GL_SGIS_multisample
14052   glSampleMaskSGIS: TglSampleMaskSGIS;
14053   glSamplePatternSGIS: TglSamplePatternSGIS;
14054
14055   // GL_SGIS_pixel_texture
14056   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14057   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14058   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14059   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14060   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14061   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14062
14063   // GL_SGIS_point_parameters
14064   glPointParameterfSGIS: TglPointParameterfSGIS;
14065   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14066
14067   // GL_SGIS_sharpen_texture
14068   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14069   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14070
14071   // GL_SGIS_texture4D
14072   glTexImage4DSGIS: TglTexImage4DSGIS;
14073   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14074
14075   // GL_SGIS_texture_color_mask
14076   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14077
14078   // GL_SGIS_texture_filter4
14079   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14080   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14081
14082   // GL_SGIX_async
14083   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14084   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14085   glPollAsyncSGIX: TglPollAsyncSGIX;
14086   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14087   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14088   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14089
14090   // GL_SGIX_flush_raster
14091   glFlushRasterSGIX: TglFlushRasterSGIX;
14092
14093   // GL_SGIX_fragment_lighting
14094   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14095   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14096   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14097   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14098   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14099   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14100   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14101   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14102   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14103   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14104   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14105   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14106   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14107   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14108   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14109   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14110   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14111   glLightEnviSGIX: TglLightEnviSGIX;
14112
14113   // GL_SGIX_framezoom
14114   glFrameZoomSGIX: TglFrameZoomSGIX;
14115
14116   // GL_SGIX_igloo_interface
14117   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14118
14119   // GL_SGIX_instruments
14120   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14121   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14122   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14123   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14124   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14125   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14126
14127   // GL_SGIX_list_priority
14128   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14129   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14130   glListParameterfSGIX: TglListParameterfSGIX;
14131   glListParameterfvSGIX: TglListParameterfvSGIX;
14132   glListParameteriSGIX: TglListParameteriSGIX;
14133   glListParameterivSGIX: TglListParameterivSGIX;
14134
14135   // GL_SGIX_pixel_texture
14136   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14137
14138   // GL_SGIX_polynomial_ffd
14139   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14140   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14141   glDeformSGIX: TglDeformSGIX;
14142   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14143
14144   // GL_SGIX_reference_plane
14145   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14146
14147   // GL_SGIX_sprite
14148   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14149   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14150   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14151   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14152
14153   // GL_SGIX_tag_sample_buffer
14154   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14155
14156   // GL_SGI_color_table
14157   glColorTableSGI: TglColorTableSGI;
14158   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14159   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14160   glCopyColorTableSGI: TglCopyColorTableSGI;
14161   glGetColorTableSGI: TglGetColorTableSGI;
14162   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14163   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14164
14165   // GL_SUNX_constant_data
14166   glFinishTextureSUNX: TglFinishTextureSUNX;
14167
14168   // GL_SUN_global_alpha
14169   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14170   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14171   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14172   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14173   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14174   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14175   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14176   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14177
14178   // GL_SUN_mesh_array
14179   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14180
14181   // GL_SUN_triangle_list
14182   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14183   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14184   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14185   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14186   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14187   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14188   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14189
14190   // GL_SUN_vertex
14191   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14192   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14193   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14194   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14195   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14196   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14197   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14198   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14199   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14200   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14201   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14202   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14203   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14204   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14205   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14206   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14207   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14208   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14209   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14210   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14211   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14212   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14213   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14214   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14215   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14216   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14217   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14218   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14219   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14220   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14221   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14222   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14223   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14224   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14225   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14226   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14227   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14228   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14229   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14230   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14231
14232 {$IFDEF DGL_WIN}
14233   wglGetProcAddress: TwglGetProcAddress;
14234   wglCopyContext: TwglCopyContext;
14235   wglCreateContext: TwglCreateContext;
14236   wglCreateLayerContext: TwglCreateLayerContext;
14237   wglDeleteContext: TwglDeleteContext;
14238   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14239   wglGetCurrentContext: TwglGetCurrentContext;
14240   wglGetCurrentDC: TwglGetCurrentDC;
14241   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14242   wglMakeCurrent: TwglMakeCurrent;
14243   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14244   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14245   wglShareLists: TwglShareLists;
14246   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14247   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14248   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14249   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14250   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14251   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14252   wglUseFontBitmaps: TwglUseFontBitmaps;
14253   wglUseFontOutlines: TwglUseFontOutlines;
14254
14255    // WGL_ARB_buffer_region
14256   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14257   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14258   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14259   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14260
14261   // WGL_ARB_extensions_string
14262   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14263
14264   // WGL_ARB_make_current_read
14265   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14266   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14267
14268   // WGL_ARB_pbuffer
14269   wglCreatePbufferARB: TwglCreatePbufferARB;
14270   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14271   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14272   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14273   wglQueryPbufferARB: TwglQueryPbufferARB;
14274
14275   // WGL_ARB_pixel_format
14276   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14277   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14278   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14279   // WGL_ARB_color_buffer_float
14280   wglClampColorARB: TwglClampColorARB;
14281
14282   // WGL_ARB_render_texture
14283   wglBindTexImageARB: TwglBindTexImageARB;
14284   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14285   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14286
14287   // WGL_ARB_create_context
14288   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14289
14290   // WGL_AMD_gpu_association
14291   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14292   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14293   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14294   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14295   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14296   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14297   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14298   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14299   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14300
14301   // WGL_EXT_display_color_table
14302   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14303   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14304   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14305   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14306
14307   // WGL_EXT_extensions_string
14308   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14309
14310   // WGL_EXT_make_current_read
14311   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14312   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14313
14314   // WGL_EXT_pbuffer
14315   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14316   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14317   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14318   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14319   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14320
14321   // WGL_EXT_pixel_format
14322   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14323   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14324   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14325
14326   // WGL_EXT_swap_control
14327   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14328   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14329
14330   // WGL_I3D_digital_video_control
14331   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14332   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14333
14334   // WGL_I3D_gamma
14335   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14336   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14337   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14338   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14339
14340   // WGL_I3D_genlock
14341   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14342   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14343   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14344   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14345   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14346   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14347   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14348   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14349   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14350   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14351   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14352   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14353
14354   // WGL_I3D_image_buffer
14355   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14356   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14357   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14358   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14359
14360   // WGL_I3D_swap_frame_lock
14361   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14362   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14363   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14364   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14365
14366   // WGL_I3D_swap_frame_usage
14367   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14368   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14369   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14370   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14371
14372   // WGL_NV_vertex_array_range
14373   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14374   wglFreeMemoryNV: TwglFreeMemoryNV;
14375
14376   // WGL_NV_present_video
14377   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14378   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14379   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14380
14381   // WGL_NV_video_output
14382   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14383   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14384   wglBindVideoImageNV: TwglBindVideoImageNV;
14385   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14386   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14387   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14388
14389   // WGL_NV_swap_group
14390   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14391   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14392   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14393   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14394   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14395   wglResetFrameCountNV: TwglResetFrameCountNV;
14396
14397   // WGL_NV_gpu_affinity
14398   wglEnumGpusNV: TwglEnumGpusNV;
14399   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14400   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14401   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14402   wglDeleteDCNV: TwglDeleteDCNV;
14403
14404   // WGL_NV_video_capture
14405   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14406   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14407   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14408   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14409   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14410
14411   // WGL_NV_copy_image
14412   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14413
14414   // WGL_NV_DX_interop
14415   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14416   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14417   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14418   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14419   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14420   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14421   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14422   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14423
14424   // WGL_OML_sync_control
14425   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14426   wglGetMscRateOML: TwglGetMscRateOML;
14427   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14428   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14429   wglWaitForMscOML: TwglWaitForMscOML;
14430   wglWaitForSbcOML: TwglWaitForSbcOML;
14431
14432   // WGL_3DL_stereo_control
14433   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14434
14435   // WIN_draw_range_elements
14436   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14437
14438   // WIN_swap_hint
14439   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14440 {$ENDIF}
14441
14442 {$IFDEF DGL_LINUX}
14443   glXChooseVisual: TglXChooseVisual;
14444   glXCopyContext: TglXCopyContext;
14445   glXCreateContext: TglXCreateContext;
14446   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14447   glXDestroyContext: TglXDestroyContext;
14448   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14449   glXGetConfig: TglXGetConfig;
14450   glXGetCurrentContext: TglXGetCurrentContext;
14451   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14452   glXIsDirect: TglXIsDirect;
14453   glXMakeCurrent: TglXMakeCurrent;
14454   glXQueryExtension: TglXQueryExtension;
14455   glXQueryVersion: TglXQueryVersion;
14456   glXSwapBuffers: TglXSwapBuffers;
14457   glXUseXFont: TglXUseXFont;
14458   glXWaitGL: TglXWaitGL;
14459   glXWaitX: TglXWaitX;
14460
14461   glXGetClientString: TglXGetClientString;
14462   glXQueryServerString: TglXQueryServerString;
14463   glXQueryExtensionsString: TglXQueryExtensionsString;
14464
14465   // GLX_VERSION_1_3
14466   glXGetFBConfigs: TglXGetFBConfigs;
14467   glXChooseFBConfig: TglXChooseFBConfig;
14468   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14469   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14470   glXCreateWindow: TglXCreateWindow;
14471   glXDestroyWindow: TglXDestroyWindow;
14472   glXCreatePixmap: TglXCreatePixmap;
14473
14474   glXDestroyPixmap: TglXDestroyPixmap;
14475   glXCreatePbuffer: TglXCreatePbuffer;
14476   glXDestroyPbuffer: TglXDestroyPbuffer;
14477   glXQueryDrawable: TglXQueryDrawable;
14478   glXCreateNewContext: TglXCreateNewContext;
14479   glXMakeContextCurrent: TglXMakeContextCurrent;
14480   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14481   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14482
14483   glXQueryContext: TglXQueryContext;
14484   glXSelectEvent: TglXSelectEvent;
14485   glXGetSelectedEvent: TglXGetSelectedEvent;
14486
14487   // GLX_VERSION_1_4
14488   glXGetProcAddress: TglXGetProcAddress;
14489
14490   // GLX_ARB_get_proc_address
14491   glXGetProcAddressARB: TglXGetProcAddressARB;
14492
14493   // GLX_ARB_create_context
14494   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14495
14496   // GLX_EXT_import_context
14497   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14498   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14499   glXGetContextIDEXT: TglXGetContextIDEXT;
14500   glXImportContextEXT: TglXImportContextEXT;
14501   glXFreeContextEXT: TglXFreeContextEXT;
14502
14503   // GLX_EXT_texture_from_pixmap
14504   glXBindTexImageEXT: TglXBindTexImageEXT;
14505   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14506
14507   glXSwapIntervalEXT : TglXSwapIntervalEXT;
14508 {$ENDIF}
14509
14510   // GL utility functions and procedures
14511   gluErrorString: TgluErrorString;
14512   gluGetString: TgluGetString;
14513   gluOrtho2D: TgluOrtho2D;
14514   gluPerspective: TgluPerspective;
14515   gluPickMatrix: TgluPickMatrix;
14516   gluLookAt: TgluLookAt;
14517   gluProject: TgluProject;
14518   gluUnProject: TgluUnProject;
14519   gluScaleImage: TgluScaleImage;
14520   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14521   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14522   gluNewQuadric: TgluNewQuadric;
14523   gluDeleteQuadric: TgluDeleteQuadric;
14524   gluQuadricNormals: TgluQuadricNormals;
14525   gluQuadricTexture: TgluQuadricTexture;
14526   gluQuadricOrientation: TgluQuadricOrientation;
14527   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14528   gluCylinder: TgluCylinder;
14529   gluDisk: TgluDisk;
14530   gluPartialDisk: TgluPartialDisk;
14531   gluSphere: TgluSphere;
14532   gluQuadricCallback: TgluQuadricCallback;
14533   gluNewTess: TgluNewTess;
14534   gluDeleteTess: TgluDeleteTess;
14535   gluTessBeginPolygon: TgluTessBeginPolygon;
14536   gluTessBeginContour: TgluTessBeginContour;
14537   gluTessVertex: TgluTessVertex;
14538   gluTessEndContour: TgluTessEndContour;
14539   gluTessEndPolygon: TgluTessEndPolygon;
14540   gluTessProperty: TgluTessProperty;
14541   gluTessNormal: TgluTessNormal;
14542   gluTessCallback: TgluTessCallback;
14543   gluGetTessProperty: TgluGetTessProperty;
14544   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14545   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14546   gluBeginSurface: TgluBeginSurface;
14547   gluBeginCurve: TgluBeginCurve;
14548   gluEndCurve: TgluEndCurve;
14549   gluEndSurface: TgluEndSurface;
14550   gluBeginTrim: TgluBeginTrim;
14551   gluEndTrim: TgluEndTrim;
14552   gluPwlCurve: TgluPwlCurve;
14553   gluNurbsCurve: TgluNurbsCurve;
14554   gluNurbsSurface: TgluNurbsSurface;
14555   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14556   gluNurbsProperty: TgluNurbsProperty;
14557   gluGetNurbsProperty: TgluGetNurbsProperty;
14558   gluNurbsCallback: TgluNurbsCallback;
14559   gluBeginPolygon: TgluBeginPolygon;
14560   gluNextContour: TgluNextContour;
14561   gluEndPolygon: TgluEndPolygon;
14562
14563
14564 type
14565   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14566
14567 var
14568   GL_LibHandle: Pointer = nil;
14569   GLU_LibHandle: Pointer = nil;
14570
14571   LastPixelFormat: Integer;
14572   ExtensionsRead: Boolean;
14573   ImplementationRead: Boolean;
14574
14575
14576 const
14577 {$IFDEF DGL_WIN}
14578   OPENGL_LIBNAME = 'OpenGL32.dll';
14579   GLU_LIBNAME = 'GLU32.dll';
14580 {$ELSE}
14581   {$IFDEF darwin}
14582     OPENGL_LIBNAME = 'libGL.dylib';
14583     GLU_LIBNAME = 'libGLU.dylib';
14584   {$ELSE}
14585     OPENGL_LIBNAME = 'libGL.so.1';
14586     GLU_LIBNAME = 'libGLU.so.1';
14587   {$ENDIF}
14588 {$ENDIF}
14589
14590 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14591
14592 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14593 function dglCheckExtension(Extension: AnsiString): Boolean;
14594
14595 procedure ReadExtensions;
14596 procedure ReadImplementationProperties;
14597
14598 // =============================================================================
14599 // Helper-Functions
14600 // =============================================================================
14601 {$IFDEF DGL_WIN}
14602   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14603   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14604   procedure DestroyRenderingContext(RC: HGLRC);
14605
14606   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14607   procedure DeactivateRenderingContext;
14608 {$ENDIF}
14609
14610
14611 procedure ReadOpenGLCore;
14612 procedure Read_GL_3DFX_tbuffer;
14613 procedure Read_GL_APPLE_element_array;
14614 procedure Read_GL_APPLE_fence;
14615 procedure Read_GL_APPLE_vertex_array_object;
14616 procedure Read_GL_APPLE_vertex_array_range;
14617 procedure Read_GL_APPLE_texture_range;
14618 procedure Read_GL_APPLE_vertex_program_evaluators;
14619 procedure Read_GL_APPLE_object_purgeable;
14620 procedure Read_GL_ARB_matrix_palette;
14621 procedure Read_GL_ARB_multitexture;
14622 procedure Read_GL_ARB_point_parameters;
14623 procedure Read_GL_ARB_texture_compression;
14624 procedure Read_GL_ARB_transpose_matrix;
14625 procedure Read_GL_ARB_vertex_blend;
14626 procedure Read_GL_ARB_vertex_buffer_object;
14627 procedure Read_GL_ARB_vertex_program;
14628 procedure Read_GL_ARB_window_pos;
14629 procedure Read_GL_ARB_color_buffer_float;
14630 procedure Read_GL_ARB_Shader_Objects;
14631 procedure Read_GL_ARB_occlusion_query;
14632 procedure Read_GL_ARB_draw_instanced;
14633 procedure Read_GL_ARB_framebuffer_object;
14634 procedure Read_GL_ARB_geometry_shader4;
14635 procedure Read_GL_ARB_instanced_arrays;
14636 procedure Read_GL_ARB_map_buffer_range;
14637 procedure Read_GL_ARB_texture_buffer_object;
14638 procedure Read_GL_ARB_vertex_array_object;
14639 procedure Read_GL_ARB_uniform_buffer_object;
14640 procedure Read_GL_ARB_copy_buffer;
14641 procedure Read_GL_ARB_draw_elements_base_vertex;
14642 procedure Read_GL_ARB_provoking_vertex;
14643 procedure Read_GL_ARB_sync;
14644 procedure Read_GL_ARB_texture_multisample;
14645 procedure Read_GL_ARB_draw_buffers_blend;
14646 procedure Read_GL_ARB_sample_shading;
14647 procedure Read_GL_ARB_shading_language_include;
14648 procedure Read_GL_ARB_blend_func_extended;
14649 procedure Read_GL_ARB_sampler_objects;
14650 procedure Read_GL_ARB_timer_query;
14651 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14652 procedure Read_GL_ARB_draw_indirect;
14653 procedure Read_GL_ARB_gpu_shader_fp64;
14654 procedure Read_GL_ARB_shader_subroutine;
14655 procedure Read_GL_ARB_tessellation_shader;
14656 procedure Read_GL_ARB_transform_feedback2;
14657 procedure Read_GL_ARB_transform_feedback3;
14658 procedure Read_GL_ARB_ES2_compatibility;
14659 procedure Read_GL_ARB_get_program_binary;
14660 procedure Read_GL_ARB_separate_shader_objects;
14661 procedure Read_GL_ARB_vertex_attrib_64bit;
14662 procedure Read_GL_ARB_viewport_array;
14663 // GL 4.2
14664 procedure Read_GL_ARB_base_instance;
14665 procedure Read_GL_ARB_transform_feedback_instanced;
14666 procedure Read_GL_ARB_internalformat_query;
14667 procedure Read_GL_ARB_shader_atomic_counters;
14668 procedure Read_GL_ARB_shader_image_load_store;
14669 procedure Read_GL_ARB_texture_storage;
14670 // GL 4.3
14671 procedure Read_GL_KHR_debug;
14672 procedure Read_GL_ARB_clear_buffer_object;
14673 procedure Read_GL_ARB_compute_shader;
14674 procedure Read_GL_ARB_copy_image;
14675 procedure Read_GL_ARB_framebuffer_no_attachments;
14676 procedure Read_GL_ARB_internalformat_query2;
14677 procedure Read_GL_ARB_invalidate_subdata;
14678 procedure Read_GL_ARB_multi_draw_indirect;
14679 procedure Read_GL_ARB_program_interface_query;
14680 procedure Read_GL_ARB_shader_storage_buffer_object;
14681 procedure Read_GL_ARB_texture_buffer_range;
14682 procedure Read_GL_ARB_texture_storage_multisample;
14683 procedure Read_GL_ARB_texture_view;
14684 procedure Read_GL_ARB_vertex_attrib_binding;
14685
14686
14687 procedure Read_GL_4_4;
14688 procedure Read_GL_4_5;
14689
14690 //
14691 procedure Read_GL_ARB_cl_event;
14692 procedure Read_GL_ARB_compute_variable_group_size;
14693 procedure Read_GL_ARB_debug_output;
14694 procedure Read_GL_ARB_robustness;
14695 procedure Read_GL_ATI_draw_buffers;
14696 procedure Read_GL_ATI_element_array;
14697 procedure Read_GL_ATI_envmap_bumpmap;
14698 procedure Read_GL_ATI_fragment_shader;
14699 procedure Read_GL_ATI_map_object_buffer;
14700 procedure Read_GL_ATI_pn_triangles;
14701 procedure Read_GL_ATI_separate_stencil;
14702 procedure Read_GL_ATI_vertex_array_object;
14703 procedure Read_GL_ATI_vertex_attrib_array_object;
14704 procedure Read_GL_ATI_vertex_streams;
14705 procedure Read_GL_AMD_performance_monitor;
14706 procedure Read_GL_AMD_vertex_shader_tesselator;
14707 procedure Read_GL_AMD_draw_buffers_blend;
14708 procedure Read_GL_AMD_name_gen_delete;
14709 procedure Read_GL_AMD_debug_output;
14710 procedure Read_GL_EXT_blend_color;
14711 procedure Read_GL_EXT_blend_func_separate;
14712 procedure Read_GL_EXT_blend_minmax;
14713 procedure Read_GL_EXT_color_subtable;
14714 procedure Read_GL_EXT_compiled_vertex_array;
14715 procedure Read_GL_EXT_convolution;
14716 procedure Read_GL_EXT_coordinate_frame;
14717 procedure Read_GL_EXT_copy_texture;
14718 procedure Read_GL_EXT_cull_vertex;
14719 procedure Read_GL_EXT_draw_range_elements;
14720 procedure Read_GL_EXT_fog_coord;
14721 procedure Read_GL_EXT_framebuffer_object;
14722 procedure Read_GL_EXT_histogram;
14723 procedure Read_GL_EXT_index_func;
14724 procedure Read_GL_EXT_index_material;
14725 procedure Read_GL_EXT_multi_draw_arrays;
14726 procedure Read_GL_EXT_multisample;
14727 procedure Read_GL_EXT_paletted_texture;
14728 procedure Read_GL_EXT_pixel_transform;
14729 procedure Read_GL_EXT_point_parameters;
14730 procedure Read_GL_EXT_polygon_offset;
14731 procedure Read_GL_EXT_secondary_color;
14732 procedure Read_GL_EXT_stencil_two_side;
14733 procedure Read_GL_EXT_subtexture;
14734 procedure Read_GL_EXT_texture3D;
14735 procedure Read_GL_EXT_texture_object;
14736 procedure Read_GL_EXT_texture_perturb_normal;
14737 procedure Read_GL_EXT_vertex_array;
14738 procedure Read_GL_EXT_vertex_shader;
14739 procedure Read_GL_EXT_vertex_weighting;
14740 procedure Read_GL_EXT_depth_bounds_test;
14741 procedure Read_GL_EXT_blend_equation_separate;
14742 procedure Read_GL_EXT_stencil_clear_tag;
14743 procedure Read_GL_EXT_framebuffer_blit;
14744 procedure Read_GL_EXT_framebuffer_multisample;
14745 procedure Read_GL_EXT_timer_query;
14746 procedure Read_GL_EXT_gpu_program_parameters;
14747 procedure Read_GL_EXT_bindable_uniform;
14748 procedure Read_GL_EXT_draw_buffers2;
14749 procedure Read_GL_EXT_draw_instanced;
14750 procedure Read_GL_EXT_geometry_shader4;
14751 procedure Read_GL_EXT_gpu_shader4;
14752 procedure Read_GL_EXT_texture_array;
14753 procedure Read_GL_EXT_texture_buffer_object;
14754 procedure Read_GL_EXT_texture_integer;
14755 procedure Read_GL_EXT_transform_feedback;
14756 procedure Read_GL_EXT_direct_state_access;
14757 procedure Read_GL_EXT_separate_shader_objects;
14758 procedure Read_GL_EXT_shader_image_load_store;
14759 procedure Read_GL_EXT_vertex_attrib_64bit;
14760 procedure Read_GL_HP_image_transform;
14761 procedure Read_GL_IBM_multimode_draw_arrays;
14762 procedure Read_GL_IBM_vertex_array_lists;
14763 procedure Read_GL_INGR_blend_func_separate;
14764 procedure Read_GL_INTEL_parallel_arrays;
14765 procedure Read_GL_MESA_resize_buffers;
14766 procedure Read_GL_MESA_window_pos;
14767 procedure Read_GL_NV_evaluators;
14768 procedure Read_GL_NV_fence;
14769 procedure Read_GL_NV_fragment_program;
14770 procedure Read_GL_NV_half_float;
14771 procedure Read_GL_NV_occlusion_query;
14772 procedure Read_GL_NV_pixel_data_range;
14773 procedure Read_GL_NV_point_sprite;
14774 procedure Read_GL_NV_primitive_restart;
14775 procedure Read_GL_NV_register_combiners;
14776 procedure Read_GL_NV_register_combiners2;
14777 procedure Read_GL_NV_vertex_array_range;
14778 procedure Read_GL_NV_vertex_program;
14779 procedure Read_GL_NV_depth_buffer_float;
14780 procedure Read_GL_NV_framebuffer_multisample_coverage;
14781 procedure Read_GL_NV_geometry_program4;
14782 procedure Read_GL_NV_gpu_program4;
14783 procedure Read_GL_NV_parameter_buffer_object;
14784 procedure Read_GL_NV_transform_feedback;
14785 procedure Read_GL_NV_conditional_render;
14786 procedure Read_GL_NV_present_video;
14787 procedure Read_GL_NV_explicit_multisample;
14788 procedure Read_GL_NV_transform_feedback2;
14789 procedure Read_GL_NV_video_capture;
14790 procedure Read_GL_NV_copy_image;
14791 procedure Read_GL_NV_shader_buffer_load;
14792 procedure Read_GL_NV_vertex_buffer_unified_memory;
14793 procedure Read_GL_NV_gpu_program5;
14794 procedure Read_GL_NV_gpu_shader5;
14795 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14796 procedure Read_GL_NV_vdpau_interop;
14797 procedure Read_GL_NV_texture_barrier;
14798 procedure Read_GL_PGI_misc_hints;
14799 procedure Read_GL_SGIS_detail_texture;
14800 procedure Read_GL_SGIS_fog_function;
14801 procedure Read_GL_SGIS_multisample;
14802 procedure Read_GL_SGIS_pixel_texture;
14803 procedure Read_GL_SGIS_point_parameters;
14804 procedure Read_GL_SGIS_sharpen_texture;
14805 procedure Read_GL_SGIS_texture4D;
14806 procedure Read_GL_SGIS_texture_color_mask;
14807 procedure Read_GL_SGIS_texture_filter4;
14808 procedure Read_GL_SGIX_async;
14809 procedure Read_GL_SGIX_flush_raster;
14810 procedure Read_GL_SGIX_fragment_lighting;
14811 procedure Read_GL_SGIX_framezoom;
14812 procedure Read_GL_SGIX_igloo_interface;
14813 procedure Read_GL_SGIX_instruments;
14814 procedure Read_GL_SGIX_list_priority;
14815 procedure Read_GL_SGIX_pixel_texture;
14816 procedure Read_GL_SGIX_polynomial_ffd;
14817 procedure Read_GL_SGIX_reference_plane;
14818 procedure Read_GL_SGIX_sprite;
14819 procedure Read_GL_SGIX_tag_sample_buffer;
14820 procedure Read_GL_SGI_color_table;
14821 procedure Read_GL_SUNX_constant_data;
14822 procedure Read_GL_SUN_global_alpha;
14823 procedure Read_GL_SUN_mesh_array;
14824 procedure Read_GL_SUN_triangle_list;
14825 procedure Read_GL_SUN_vertex;
14826
14827 {$IFDEF DGL_WIN}
14828 procedure Read_WGL_ARB_buffer_region;
14829 procedure Read_WGL_ARB_extensions_string;
14830 procedure Read_WGL_ARB_make_current_read;
14831 procedure Read_WGL_ARB_pbuffer;
14832 procedure Read_WGL_ARB_pixel_format;
14833 procedure Read_WGL_ARB_pixel_format_float;
14834 procedure Read_WGL_ARB_render_texture;
14835 procedure Read_WGL_ARB_create_context;
14836 procedure Read_WGL_AMD_gpu_association;
14837 procedure Read_WGL_EXT_display_color_table;
14838 procedure Read_WGL_EXT_extensions_string;
14839 procedure Read_WGL_EXT_make_current_read;
14840 procedure Read_WGL_EXT_pbuffer;
14841 procedure Read_WGL_EXT_pixel_format;
14842 procedure Read_WGL_EXT_swap_control;
14843 procedure Read_WGL_I3D_digital_video_control;
14844 procedure Read_WGL_I3D_gamma;
14845 procedure Read_WGL_I3D_genlock;
14846 procedure Read_WGL_I3D_image_buffer;
14847 procedure Read_WGL_I3D_swap_frame_lock;
14848 procedure Read_WGL_I3D_swap_frame_usage;
14849 procedure Read_WGL_NV_vertex_array_range;
14850 procedure Read_WGL_NV_present_video;
14851 procedure Read_WGL_NV_video_output;
14852 procedure Read_WGL_NV_swap_group;
14853 procedure Read_WGL_NV_gpu_affinity;
14854 procedure Read_WGL_NV_video_capture;
14855 procedure Read_WGL_NV_copy_image;
14856 procedure Read_WGL_OML_sync_control;
14857 procedure Read_WGL_3DL_stereo_control;
14858
14859 procedure Read_WIN_draw_range_elements;
14860 procedure Read_WIN_swap_hint;
14861 {$ENDIF}
14862
14863
14864 implementation
14865
14866
14867 {$IFDEF DGL_LINUX}
14868 const
14869   RTLD_LAZY = $001;
14870   RTLD_NOW = $002;
14871   RTLD_BINDING_MASK = $003;
14872
14873   // Seems to work on Debian / Fedora
14874   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14875
14876 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14877 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14878
14879 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14880 {$ENDIF}
14881
14882 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14883 const
14884   RTLD_DEFAULT = Pointer(-2);
14885 {$ENDIF}{$ENDIF}
14886
14887 function dglLoadLibrary(Name: PChar): Pointer;
14888 begin
14889   {$IFDEF DGL_WIN}
14890   Result := {%H-}Pointer(LoadLibrary(Name));
14891   {$ENDIF}
14892
14893   {$IFDEF DGL_LINUX}
14894   Result := dlopen(Name, RTLD_LAZY);
14895   {$ENDIF}
14896
14897   {$IFDEF DGL_MAC}
14898   {$IFDEF OPENGL_FRAMEWORK}
14899   Result := RTLD_DEFAULT;
14900   {$ELSE}
14901   Result := Pointer(LoadLibrary(Name));
14902   {$ENDIF}
14903   {$ENDIF}
14904 end;
14905
14906
14907 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14908 begin
14909   if LibHandle = nil then
14910     Result := False
14911   else
14912     {$IFDEF DGL_WIN}
14913     Result := FreeLibrary({%H-}HMODULE(LibHandle));
14914     {$ENDIF}
14915
14916     {$IFDEF DGL_LINUX}
14917     Result := dlclose(LibHandle) = 0;
14918     {$ENDIF}
14919
14920     {$IFDEF DGL_MAC}
14921     {$IFDEF OPENGL_FRAMEWORK}
14922         Result := true;
14923         {$ELSE}
14924     Result := FreeLibrary(HMODULE(LibHandle));
14925     {$ENDIF}
14926         {$ENDIF}
14927 end;
14928
14929
14930 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14931 begin
14932   if LibHandle = nil then
14933     LibHandle := GL_LibHandle;
14934
14935
14936   {$IFDEF DGL_WIN}
14937     Result := GetProcAddress({%H-}HMODULE(LibHandle), ProcName);
14938
14939     if result <> nil then
14940       exit;
14941
14942     if Addr(wglGetProcAddress) <> nil then
14943       Result := wglGetProcAddress(ProcName);
14944   {$ENDIF}
14945
14946   {$IFDEF DGL_LINUX}
14947     if not ForceDLSym then begin
14948       if Addr(glXGetProcAddress) <> nil then
14949         Result := glXGetProcAddress(ProcName);
14950
14951       if result <> nil then
14952         exit;
14953
14954       if Addr(glXGetProcAddressARB) <> nil then
14955         Result := glXGetProcAddressARB(ProcName);
14956
14957       if result <> nil then
14958         exit;
14959     end;
14960
14961     Result := dlsym(LibHandle, ProcName);
14962   {$ENDIF}
14963
14964   {$IFDEF DGL_MAC}
14965     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14966   {$ENDIF}
14967 end;
14968
14969
14970 function Int_GetExtensionString: AnsiString;
14971 var
14972         ExtensionCount : GLint;
14973   i : Integer;
14974 begin
14975   if GL_VERSION_3_0
14976     then
14977       begin
14978         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14979         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14980
14981         result := '';
14982
14983         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14984           then
14985             begin
14986               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14987
14988               For I := 0 to extensionCount - 1 do
14989                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14990             end;
14991       end
14992     else
14993       begin
14994         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
14995
14996         if Assigned(@glGetString)
14997           then result := glGetString(GL_EXTENSIONS)
14998           else result := '';
14999       end;
15000
15001   if (GL_LibHandle <> nil) then begin
15002     {$IFDEF DGL_WIN}
15003       // wglGetExtensionsStringEXT
15004       if not Assigned(@wglGetExtensionsStringEXT) then
15005         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
15006
15007       if Assigned(@wglGetExtensionsStringEXT) then
15008         Result := Result + #32 + wglGetExtensionsStringEXT;
15009
15010       // wglGetExtensionsStringARB
15011       if not Assigned(@wglGetExtensionsStringARB) then
15012         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
15013
15014       if Assigned(@wglGetExtensionsStringARB) then
15015         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
15016     {$ENDIF}
15017   end;
15018
15019   Result := #32 + Result + #32;
15020 end;
15021
15022
15023 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
15024 begin
15025   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
15026 end;
15027
15028
15029 function dglCheckExtension(Extension: AnsiString): Boolean;
15030 var
15031   Extensions: AnsiString;
15032 begin
15033   Extensions := Int_GetExtensionString;
15034   Result := Int_CheckExtension(Extensions, Extension);
15035 end;
15036
15037
15038
15039 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
15040 begin
15041   Result := False;
15042
15043   // free opened libraries
15044   if GL_LibHandle <> nil then
15045     dglFreeLibrary(GL_LibHandle);
15046
15047   if GLU_LibHandle <> nil then
15048     dglFreeLibrary(GLU_LibHandle);
15049
15050   // load library
15051   GL_LibHandle := dglLoadLibrary(PChar(LibName));
15052   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
15053
15054   // load GL functions
15055   if (GL_LibHandle <> nil) then begin
15056     {$IFDEF DGL_WIN}
15057       wglCopyContext := dglGetProcAddress('wglCopyContext');
15058       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15059       wglCreateContext := dglGetProcAddress('wglCreateContext');
15060       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15061       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15062       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15063       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15064       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15065       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15066       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15067       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15068       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15069       wglShareLists := dglGetProcAddress('wglShareLists');
15070       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15071       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15072       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15073       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15074       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15075       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15076       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15077       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15078     {$ENDIF}
15079
15080     {$IFDEF DGL_LINUX}
15081       // GLX_VERSION_1_4 (needs to be first)
15082       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15083
15084       // GLX_ARB_get_proc_address  (also needs to be first)
15085       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15086
15087       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15088       glXCopyContext := dglGetProcAddress('glXCopyContext');
15089       glXCreateContext := dglGetProcAddress('glXCreateContext');
15090       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15091       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15092       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15093       glXGetConfig := dglGetProcAddress('glXGetConfig');
15094       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15095       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15096       glXIsDirect := dglGetProcAddress('glXIsDirect');
15097       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15098       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15099       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15100       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15101       glXUseXFont := dglGetProcAddress('glXUseXFont');
15102       glXWaitGL := dglGetProcAddress('glXWaitGL');
15103       glXWaitX := dglGetProcAddress('glXWaitX');
15104
15105       glXGetClientString := dglGetProcAddress('glXGetClientString');
15106       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15107       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15108
15109       // GLX_VERSION_1_3
15110       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15111       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15112       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15113       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15114       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15115       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15116       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15117
15118       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15119       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15120       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15121       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15122       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15123       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15124       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15125       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15126
15127       glXQueryContext := dglGetProcAddress('glXQueryContext');
15128       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15129       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15130
15131       // GLX_ARB_create_context
15132       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15133
15134       // GLX_EXT_import_context
15135       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15136       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15137       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15138       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15139       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15140
15141       // GLX_EXT_texture_from_pixmap
15142       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15143       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15144
15145       glXSwapIntervalEXT := dglGetProcAddress('glXSwapIntervalEXT');
15146     {$ENDIF}
15147
15148     Result := True;
15149   end;
15150
15151   // load GLU functions
15152   if GLU_LibHandle <> nil then begin
15153     // GLU ========================================================================
15154     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15155     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15156     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15157     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15158     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15159     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15160     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15161     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15162     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15163     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15164     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15165     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15166     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15167     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15168     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15169     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15170     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15171     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15172     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15173     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15174     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15175     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15176     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15177     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15178     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15179     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15180     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15181     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15182     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15183     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15184     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15185     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15186     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15187     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15188     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15189     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15190     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15191     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15192     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15193     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15194     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15195     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15196     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15197     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15198     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15199     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15200     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15201     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15202     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15203     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15204     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15205   end;
15206 end;
15207
15208 procedure ReadOpenGLCore;
15209 begin
15210   // GL_VERSION_1_0
15211   glCullFace := dglGetProcAddress('glCullFace');
15212   glFrontFace := dglGetProcAddress('glFrontFace');
15213   glHint := dglGetProcAddress('glHint');
15214   glLineWidth := dglGetProcAddress('glLineWidth');
15215   glPointSize := dglGetProcAddress('glPointSize');
15216   glPolygonMode := dglGetProcAddress('glPolygonMode');
15217   glScissor := dglGetProcAddress('glScissor');
15218   glTexParameterf := dglGetProcAddress('glTexParameterf');
15219   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15220   glTexParameteri := dglGetProcAddress('glTexParameteri');
15221   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15222   glTexImage1D := dglGetProcAddress('glTexImage1D');
15223   glTexImage2D := dglGetProcAddress('glTexImage2D');
15224   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15225   glClear := dglGetProcAddress('glClear');
15226   glClearColor := dglGetProcAddress('glClearColor');
15227   glClearStencil := dglGetProcAddress('glClearStencil');
15228   glClearDepth := dglGetProcAddress('glClearDepth');
15229   glStencilMask := dglGetProcAddress('glStencilMask');
15230   glColorMask := dglGetProcAddress('glColorMask');
15231   glDepthMask := dglGetProcAddress('glDepthMask');
15232   glDisable := dglGetProcAddress('glDisable');
15233   glEnable := dglGetProcAddress('glEnable');
15234   glFinish := dglGetProcAddress('glFinish');
15235   glFlush := dglGetProcAddress('glFlush');
15236   glBlendFunc := dglGetProcAddress('glBlendFunc');
15237   glLogicOp := dglGetProcAddress('glLogicOp');
15238   glStencilFunc := dglGetProcAddress('glStencilFunc');
15239   glStencilOp := dglGetProcAddress('glStencilOp');
15240   glDepthFunc := dglGetProcAddress('glDepthFunc');
15241   glPixelStoref := dglGetProcAddress('glPixelStoref');
15242   glPixelStorei := dglGetProcAddress('glPixelStorei');
15243   glReadBuffer := dglGetProcAddress('glReadBuffer');
15244   glReadPixels := dglGetProcAddress('glReadPixels');
15245   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15246   glGetDoublev := dglGetProcAddress('glGetDoublev');
15247   glGetError := dglGetProcAddress('glGetError');
15248   glGetFloatv := dglGetProcAddress('glGetFloatv');
15249   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15250   glGetString := dglGetProcAddress('glGetString');
15251   glGetTexImage := dglGetProcAddress('glGetTexImage');
15252   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15253   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15254   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15255   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15256   glIsEnabled := dglGetProcAddress('glIsEnabled');
15257   glDepthRange := dglGetProcAddress('glDepthRange');
15258   glViewport := dglGetProcAddress('glViewport');
15259
15260   // GL_VERSION_1_1
15261   glDrawArrays := dglGetProcAddress('glDrawArrays');
15262   glDrawElements := dglGetProcAddress('glDrawElements');
15263   glGetPointerv := dglGetProcAddress('glGetPointerv');
15264   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15265   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15266   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15267   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15268   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15269   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15270   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15271   glBindTexture := dglGetProcAddress('glBindTexture');
15272   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15273   glGenTextures := dglGetProcAddress('glGenTextures');
15274
15275 {$ifdef DGL_DEPRECATED}
15276   glAccum := dglGetProcAddress('glAccum');
15277   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15278   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15279   glArrayElement := dglGetProcAddress('glArrayElement');
15280   glBegin := dglGetProcAddress('glBegin');
15281   glBitmap := dglGetProcAddress('glBitmap');
15282   glCallList := dglGetProcAddress('glCallList');
15283   glCallLists := dglGetProcAddress('glCallLists');
15284   glClearAccum := dglGetProcAddress('glClearAccum');
15285   glClearIndex := dglGetProcAddress('glClearIndex');
15286   glClipPlane := dglGetProcAddress('glClipPlane');
15287   glColor3b := dglGetProcAddress('glColor3b');
15288   glColor3bv := dglGetProcAddress('glColor3bv');
15289   glColor3d := dglGetProcAddress('glColor3d');
15290   glColor3dv := dglGetProcAddress('glColor3dv');
15291   glColor3f := dglGetProcAddress('glColor3f');
15292   glColor3fv := dglGetProcAddress('glColor3fv');
15293   glColor3i := dglGetProcAddress('glColor3i');
15294   glColor3iv := dglGetProcAddress('glColor3iv');
15295   glColor3s := dglGetProcAddress('glColor3s');
15296   glColor3sv := dglGetProcAddress('glColor3sv');
15297   glColor3ub := dglGetProcAddress('glColor3ub');
15298   glColor3ubv := dglGetProcAddress('glColor3ubv');
15299   glColor3ui := dglGetProcAddress('glColor3ui');
15300   glColor3uiv := dglGetProcAddress('glColor3uiv');
15301   glColor3us := dglGetProcAddress('glColor3us');
15302   glColor3usv := dglGetProcAddress('glColor3usv');
15303   glColor4b := dglGetProcAddress('glColor4b');
15304   glColor4bv := dglGetProcAddress('glColor4bv');
15305   glColor4d := dglGetProcAddress('glColor4d');
15306   glColor4dv := dglGetProcAddress('glColor4dv');
15307   glColor4f := dglGetProcAddress('glColor4f');
15308   glColor4fv := dglGetProcAddress('glColor4fv');
15309   glColor4i := dglGetProcAddress('glColor4i');
15310   glColor4iv := dglGetProcAddress('glColor4iv');
15311   glColor4s := dglGetProcAddress('glColor4s');
15312   glColor4sv := dglGetProcAddress('glColor4sv');
15313   glColor4ub := dglGetProcAddress('glColor4ub');
15314   glColor4ubv := dglGetProcAddress('glColor4ubv');
15315   glColor4ui := dglGetProcAddress('glColor4ui');
15316   glColor4uiv := dglGetProcAddress('glColor4uiv');
15317   glColor4us := dglGetProcAddress('glColor4us');
15318   glColor4usv := dglGetProcAddress('glColor4usv');
15319   glColorMaterial := dglGetProcAddress('glColorMaterial');
15320   glColorPointer := dglGetProcAddress('glColorPointer');
15321   glCopyPixels := dglGetProcAddress('glCopyPixels');
15322   glDeleteLists := dglGetProcAddress('glDeleteLists');
15323   glDisableClientState := dglGetProcAddress('glDisableClientState');
15324   glDrawPixels := dglGetProcAddress('glDrawPixels');
15325   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15326   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15327   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15328   glEnableClientState := dglGetProcAddress('glEnableClientState');
15329   glEnd := dglGetProcAddress('glEnd');
15330   glEndList := dglGetProcAddress('glEndList');
15331   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15332   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15333   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15334   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15335   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15336   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15337   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15338   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15339   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15340   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15341   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15342   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15343   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15344   glFogf := dglGetProcAddress('glFogf');
15345   glFogfv := dglGetProcAddress('glFogfv');
15346   glFogi := dglGetProcAddress('glFogi');
15347   glFogiv := dglGetProcAddress('glFogiv');
15348   glFrustum := dglGetProcAddress('glFrustum');
15349   glGenLists := dglGetProcAddress('glGenLists');
15350   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15351   glGetLightfv := dglGetProcAddress('glGetLightfv');
15352   glGetLightiv := dglGetProcAddress('glGetLightiv');
15353   glGetMapdv := dglGetProcAddress('glGetMapdv');
15354   glGetMapfv := dglGetProcAddress('glGetMapfv');
15355   glGetMapiv := dglGetProcAddress('glGetMapiv');
15356   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15357   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15358   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15359   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15360   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15361   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15362   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15363   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15364   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15365   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15366   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15367   glIndexMask := dglGetProcAddress('glIndexMask');
15368   glIndexPointer := dglGetProcAddress('glIndexPointer');
15369   glIndexd := dglGetProcAddress('glIndexd');
15370   glIndexdv := dglGetProcAddress('glIndexdv');
15371   glIndexf := dglGetProcAddress('glIndexf');
15372   glIndexfv := dglGetProcAddress('glIndexfv');
15373   glIndexi := dglGetProcAddress('glIndexi');
15374   glIndexiv := dglGetProcAddress('glIndexiv');
15375   glIndexs := dglGetProcAddress('glIndexs');
15376   glIndexsv := dglGetProcAddress('glIndexsv');
15377   glIndexub := dglGetProcAddress('glIndexub');
15378   glIndexubv := dglGetProcAddress('glIndexubv');
15379   glInitNames := dglGetProcAddress('glInitNames');
15380   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15381   glIsList := dglGetProcAddress('glIsList');
15382   glIsTexture := dglGetProcAddress('glIsTexture');
15383   glLightModelf := dglGetProcAddress('glLightModelf');
15384   glLightModelfv := dglGetProcAddress('glLightModelfv');
15385   glLightModeli := dglGetProcAddress('glLightModeli');
15386   glLightModeliv := dglGetProcAddress('glLightModeliv');
15387   glLightf := dglGetProcAddress('glLightf');
15388   glLightfv := dglGetProcAddress('glLightfv');
15389   glLighti := dglGetProcAddress('glLighti');
15390   glLightiv := dglGetProcAddress('glLightiv');
15391   glLineStipple := dglGetProcAddress('glLineStipple');
15392   glListBase := dglGetProcAddress('glListBase');
15393   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15394   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15395   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15396   glLoadName := dglGetProcAddress('glLoadName');
15397   glMap1d := dglGetProcAddress('glMap1d');
15398   glMap1f := dglGetProcAddress('glMap1f');
15399   glMap2d := dglGetProcAddress('glMap2d');
15400   glMap2f := dglGetProcAddress('glMap2f');
15401   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15402   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15403   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15404   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15405   glMaterialf := dglGetProcAddress('glMaterialf');
15406   glMaterialfv := dglGetProcAddress('glMaterialfv');
15407   glMateriali := dglGetProcAddress('glMateriali');
15408   glMaterialiv := dglGetProcAddress('glMaterialiv');
15409   glMatrixMode := dglGetProcAddress('glMatrixMode');
15410   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15411   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15412   glNewList := dglGetProcAddress('glNewList');
15413   glNormal3b := dglGetProcAddress('glNormal3b');
15414   glNormal3bv := dglGetProcAddress('glNormal3bv');
15415   glNormal3d := dglGetProcAddress('glNormal3d');
15416   glNormal3dv := dglGetProcAddress('glNormal3dv');
15417   glNormal3f := dglGetProcAddress('glNormal3f');
15418   glNormal3fv := dglGetProcAddress('glNormal3fv');
15419   glNormal3i := dglGetProcAddress('glNormal3i');
15420   glNormal3iv := dglGetProcAddress('glNormal3iv');
15421   glNormal3s := dglGetProcAddress('glNormal3s');
15422   glNormal3sv := dglGetProcAddress('glNormal3sv');
15423   glNormalPointer := dglGetProcAddress('glNormalPointer');
15424   glOrtho := dglGetProcAddress('glOrtho');
15425   glPassThrough := dglGetProcAddress('glPassThrough');
15426   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15427   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15428   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15429   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15430   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15431   glPixelZoom := dglGetProcAddress('glPixelZoom');
15432   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15433   glPopAttrib := dglGetProcAddress('glPopAttrib');
15434   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15435   glPopMatrix := dglGetProcAddress('glPopMatrix');
15436   glPopName := dglGetProcAddress('glPopName');
15437   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15438   glPushAttrib := dglGetProcAddress('glPushAttrib');
15439   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15440   glPushMatrix := dglGetProcAddress('glPushMatrix');
15441   glPushName := dglGetProcAddress('glPushName');
15442   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15443   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15444   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15445   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15446   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15447   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15448   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15449   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15450   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15451   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15452   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15453   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15454   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15455   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15456   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15457   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15458   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15459   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15460   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15461   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15462   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15463   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15464   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15465   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15466   glRectd := dglGetProcAddress('glRectd');
15467   glRectdv := dglGetProcAddress('glRectdv');
15468   glRectf := dglGetProcAddress('glRectf');
15469   glRectfv := dglGetProcAddress('glRectfv');
15470   glRecti := dglGetProcAddress('glRecti');
15471   glRectiv := dglGetProcAddress('glRectiv');
15472   glRects := dglGetProcAddress('glRects');
15473   glRectsv := dglGetProcAddress('glRectsv');
15474   glRenderMode := dglGetProcAddress('glRenderMode');
15475   glRotated := dglGetProcAddress('glRotated');
15476   glRotatef := dglGetProcAddress('glRotatef');
15477   glScaled := dglGetProcAddress('glScaled');
15478   glScalef := dglGetProcAddress('glScalef');
15479   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15480   glShadeModel := dglGetProcAddress('glShadeModel');
15481   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15482   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15483   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15484   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15485   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15486   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15487   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15488   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15489   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15490   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15491   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15492   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15493   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15494   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15495   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15496   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15497   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15498   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15499   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15500   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15501   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15502   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15503   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15504   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15505   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15506   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15507   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15508   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15509   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15510   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15511   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15512   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15513   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15514   glTexEnvf := dglGetProcAddress('glTexEnvf');
15515   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15516   glTexEnvi := dglGetProcAddress('glTexEnvi');
15517   glTexEnviv := dglGetProcAddress('glTexEnviv');
15518   glTexGend := dglGetProcAddress('glTexGend');
15519   glTexGendv := dglGetProcAddress('glTexGendv');
15520   glTexGenf := dglGetProcAddress('glTexGenf');
15521   glTexGenfv := dglGetProcAddress('glTexGenfv');
15522   glTexGeni := dglGetProcAddress('glTexGeni');
15523   glTexGeniv := dglGetProcAddress('glTexGeniv');
15524   glTranslated := dglGetProcAddress('glTranslated');
15525   glTranslatef := dglGetProcAddress('glTranslatef');
15526   glVertex2d := dglGetProcAddress('glVertex2d');
15527   glVertex2dv := dglGetProcAddress('glVertex2dv');
15528   glVertex2f := dglGetProcAddress('glVertex2f');
15529   glVertex2fv := dglGetProcAddress('glVertex2fv');
15530   glVertex2i := dglGetProcAddress('glVertex2i');
15531   glVertex2iv := dglGetProcAddress('glVertex2iv');
15532   glVertex2s := dglGetProcAddress('glVertex2s');
15533   glVertex2sv := dglGetProcAddress('glVertex2sv');
15534   glVertex3d := dglGetProcAddress('glVertex3d');
15535   glVertex3dv := dglGetProcAddress('glVertex3dv');
15536   glVertex3f := dglGetProcAddress('glVertex3f');
15537   glVertex3fv := dglGetProcAddress('glVertex3fv');
15538   glVertex3i := dglGetProcAddress('glVertex3i');
15539   glVertex3iv := dglGetProcAddress('glVertex3iv');
15540   glVertex3s := dglGetProcAddress('glVertex3s');
15541   glVertex3sv := dglGetProcAddress('glVertex3sv');
15542   glVertex4d := dglGetProcAddress('glVertex4d');
15543   glVertex4dv := dglGetProcAddress('glVertex4dv');
15544   glVertex4f := dglGetProcAddress('glVertex4f');
15545   glVertex4fv := dglGetProcAddress('glVertex4fv');
15546   glVertex4i := dglGetProcAddress('glVertex4i');
15547   glVertex4iv := dglGetProcAddress('glVertex4iv');
15548   glVertex4s := dglGetProcAddress('glVertex4s');
15549   glVertex4sv := dglGetProcAddress('glVertex4sv');
15550   glVertexPointer := dglGetProcAddress('glVertexPointer');
15551 {$endif}
15552
15553   // GL_VERSION_1_2
15554   glBlendColor := dglGetProcAddress('glBlendColor');
15555   glBlendEquation := dglGetProcAddress('glBlendEquation');
15556   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15557   glTexImage3D := dglGetProcAddress('glTexImage3D');
15558   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15559   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15560 {$ifdef DGL_DEPRECATED}
15561   glColorTable := dglGetProcAddress('glColorTable');
15562   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15563   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15564   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15565   glGetColorTable := dglGetProcAddress('glGetColorTable');
15566   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15567   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15568   glColorSubTable := dglGetProcAddress('glColorSubTable');
15569   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15570   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15571   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15572   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15573   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15574   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15575   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15576   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15577   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15578   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15579   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15580   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15581   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15582   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15583   glGetHistogram := dglGetProcAddress('glGetHistogram');
15584   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15585   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15586   glGetMinmax := dglGetProcAddress('glGetMinmax');
15587   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15588   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15589   glHistogram := dglGetProcAddress('glHistogram');
15590   glMinmax := dglGetProcAddress('glMinmax');
15591   glResetHistogram := dglGetProcAddress('glResetHistogram');
15592   glResetMinmax := dglGetProcAddress('glResetMinmax');
15593 {$endif}
15594
15595   // GL_VERSION_1_3
15596   glActiveTexture := dglGetProcAddress('glActiveTexture');
15597   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15598   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15599   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15600   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15601   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15602   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15603   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15604   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15605 {$ifdef DGL_DEPRECATED}
15606   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15607   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15608   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15609   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15610   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15611   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15612   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15613   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15614   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15615   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15616   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15617   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15618   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15619   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15620   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15621   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15622   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15623   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15624   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15625   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15626   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15627   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15628   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15629   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15630   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15631   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15632   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15633   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15634   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15635   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15636   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15637   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15638   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15639   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15640   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15641   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15642   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15643 {$endif}
15644
15645   // GL_VERSION_1_4
15646   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15647   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15648   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15649   glPointParameterf := dglGetProcAddress('glPointParameterf');
15650   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15651   glPointParameteri := dglGetProcAddress('glPointParameteri');
15652   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15653 {$ifdef DGL_DEPRECATED}
15654   glFogCoordf := dglGetProcAddress('glFogCoordf');
15655   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15656   glFogCoordd := dglGetProcAddress('glFogCoordd');
15657   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15658   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15659   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15660   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15661   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15662   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15663   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15664   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15665   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15666   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15667   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15668   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15669   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15670   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15671   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15672   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15673   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15674   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15675   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15676   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15677   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15678   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15679   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15680   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15681   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15682   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15683   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15684   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15685   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15686   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15687   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15688   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15689   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15690   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15691   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15692 {$endif}
15693
15694   // GL_VERSION_1_5
15695   glGenQueries := dglGetProcAddress('glGenQueries');
15696   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15697   glIsQuery := dglGetProcAddress('glIsQuery');
15698   glBeginQuery := dglGetProcAddress('glBeginQuery');
15699   glEndQuery := dglGetProcAddress('glEndQuery');
15700   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15701   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15702   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15703   glBindBuffer := dglGetProcAddress('glBindBuffer');
15704   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15705   glGenBuffers := dglGetProcAddress('glGenBuffers');
15706   glIsBuffer := dglGetProcAddress('glIsBuffer');
15707   glBufferData := dglGetProcAddress('glBufferData');
15708   glBufferSubData := dglGetProcAddress('glBufferSubData');
15709   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15710   glMapBuffer := dglGetProcAddress('glMapBuffer');
15711   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15712   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15713   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15714
15715   // GL_VERSION_2_0
15716   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15717   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15718   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15719   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15720   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15721   glAttachShader := dglGetProcAddress('glAttachShader');
15722   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15723   glCompileShader := dglGetProcAddress('glCompileShader');
15724   glCreateProgram := dglGetProcAddress('glCreateProgram');
15725   glCreateShader := dglGetProcAddress('glCreateShader');
15726   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15727   glDeleteShader := dglGetProcAddress('glDeleteShader');
15728   glDetachShader := dglGetProcAddress('glDetachShader');
15729   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15730   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15731   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15732   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15733   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15734   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15735   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15736   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15737   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15738   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15739   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15740   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15741   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15742   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15743   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15744   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15745   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15746   glIsProgram := dglGetProcAddress('glIsProgram');
15747   glIsShader := dglGetProcAddress('glIsShader');
15748   glLinkProgram := dglGetProcAddress('glLinkProgram');
15749   glShaderSource := dglGetProcAddress('glShaderSource');
15750   glUseProgram := dglGetProcAddress('glUseProgram');
15751   glUniform1f := dglGetProcAddress('glUniform1f');
15752   glUniform2f := dglGetProcAddress('glUniform2f');
15753   glUniform3f := dglGetProcAddress('glUniform3f');
15754   glUniform4f := dglGetProcAddress('glUniform4f');
15755   glUniform1i := dglGetProcAddress('glUniform1i');
15756   glUniform2i := dglGetProcAddress('glUniform2i');
15757   glUniform3i := dglGetProcAddress('glUniform3i');
15758   glUniform4i := dglGetProcAddress('glUniform4i');
15759   glUniform1fv := dglGetProcAddress('glUniform1fv');
15760   glUniform2fv := dglGetProcAddress('glUniform2fv');
15761   glUniform3fv := dglGetProcAddress('glUniform3fv');
15762   glUniform4fv := dglGetProcAddress('glUniform4fv');
15763   glUniform1iv := dglGetProcAddress('glUniform1iv');
15764   glUniform2iv := dglGetProcAddress('glUniform2iv');
15765   glUniform3iv := dglGetProcAddress('glUniform3iv');
15766   glUniform4iv := dglGetProcAddress('glUniform4iv');
15767   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15768   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15769   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15770   glValidateProgram := dglGetProcAddress('glValidateProgram');
15771   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15772   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15773   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15774   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15775   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15776   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15777   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15778   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15779   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15780   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15781   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15782   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15783   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15784   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15785   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15786   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15787   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15788   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15789   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15790   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15791   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15792   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15793   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15794   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15795   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15796   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15797   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15798   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15799   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15800   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15801   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15802   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15803   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15804   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15805   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15806   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15807   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15808
15809   // GL_VERSION_2_1
15810   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15811   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15812   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15813   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15814   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15815   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15816
15817   // GL_VERSION_3_0
15818   { OpenGL 3.0 also reuses entry points from these extensions: }
15819   Read_GL_ARB_framebuffer_object;
15820   Read_GL_ARB_map_buffer_range;
15821   Read_GL_ARB_vertex_array_object;
15822
15823   glColorMaski := dglGetProcAddress('glColorMaski');
15824   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15825   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15826   glEnablei := dglGetProcAddress('glEnablei');
15827   glDisablei := dglGetProcAddress('glDisablei');
15828   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15829   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15830   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15831   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15832   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15833   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15834   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15835   glClampColor := dglGetProcAddress('glClampColor');
15836   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15837   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15838   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15839   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15840   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15841   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15842   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15843   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15844   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15845   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15846   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15847   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15848   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15849   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15850   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15851   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15852   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15853   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15854   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15855   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15856   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15857   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15858   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15859   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15860   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15861   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15862   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15863   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15864   glUniform1ui := dglGetProcAddress('glUniform1ui');
15865   glUniform2ui := dglGetProcAddress('glUniform2ui');
15866   glUniform3ui := dglGetProcAddress('glUniform3ui');
15867   glUniform4ui := dglGetProcAddress('glUniform4ui');
15868   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15869   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15870   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15871   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15872   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15873   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15874   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15875   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15876   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15877   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15878   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15879   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15880   glGetStringi := dglGetProcAddress('glGetStringi');
15881
15882   // GL_VERSION_2_1
15883   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15884   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15885   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15886
15887   // GL_VERSION_3_1
15888   { OpenGL 3.1 also reuses entry points from these extensions: }
15889   Read_GL_ARB_copy_buffer;
15890   Read_GL_ARB_uniform_buffer_object;
15891
15892   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15893   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15894   glTexBuffer := dglGetProcAddress('glTexBuffer');
15895   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15896
15897   // GL_VERSION_3_2
15898   { OpenGL 3.2 also reuses entry points from these extensions: }
15899   Read_GL_ARB_draw_elements_base_vertex;
15900   Read_GL_ARB_provoking_vertex;
15901   Read_GL_ARB_sync;
15902   Read_GL_ARB_texture_multisample;
15903
15904   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15905   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15906   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15907 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15908
15909   // GL_VERSION_3_3
15910   { OpenGL 3.3 also reuses entry points from these extensions: }
15911   Read_GL_ARB_blend_func_extended;
15912   Read_GL_ARB_sampler_objects;
15913   { ARB_explicit_attrib_location, but it has none }
15914   { ARB_occlusion_query2 (no entry points) }
15915   { ARB_shader_bit_encoding (no entry points) }
15916   { ARB_texture_rgb10_a2ui (no entry points) }
15917   { ARB_texture_swizzle (no entry points) }
15918   Read_GL_ARB_timer_query;
15919   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15920
15921   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15922
15923   // GL_VERSION_4_0
15924   { OpenGL 4.0 also reuses entry points from these extensions: }
15925   { ARB_texture_query_lod (no entry points) }
15926   Read_GL_ARB_draw_indirect;
15927   { ARB_gpu_shader5 (no entry points) }
15928   Read_GL_ARB_gpu_shader_fp64;
15929   Read_GL_ARB_shader_subroutine;
15930   Read_GL_ARB_tessellation_shader;
15931   { ARB_texture_buffer_object_rgb32 (no entry points) }
15932   { ARB_texture_cube_map_array (no entry points) }
15933   { ARB_texture_gather (no entry points) }
15934   Read_GL_ARB_transform_feedback2;
15935   Read_GL_ARB_transform_feedback3;
15936
15937   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15938   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15939   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15940   glBlendFunci := dglGetProcAddress('glBlendFunci');
15941   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15942
15943   // GL_VERSION_4_1
15944   { OpenGL 4.1 also reuses entry points from these extensions: }
15945   Read_GL_ARB_ES2_compatibility;
15946   Read_GL_ARB_get_program_binary;
15947   Read_GL_ARB_separate_shader_objects;
15948   { ARB_shader_precision (no entry points) }
15949   Read_GL_ARB_vertex_attrib_64bit;
15950   Read_GL_ARB_viewport_array;
15951
15952   // GL_VERSION_4_2
15953   { OpenGL 4.2 reuses entry points from these extensions: }
15954   Read_GL_ARB_base_instance;
15955   //Read_GL_ARB_shading_language_420pack (no entry points)
15956   Read_GL_ARB_transform_feedback_instanced;
15957   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15958   //Read_GL_ARB_conservative_depth;
15959   Read_GL_ARB_internalformat_query;
15960   //Read_GL_ARB_map_buffer_alignment;
15961   Read_GL_ARB_shader_atomic_counters;
15962   Read_GL_ARB_shader_image_load_store;
15963   //Read_GL_ARB_shading_language_packing;
15964   Read_GL_ARB_texture_storage;
15965
15966   // GL_VERSION_4_3
15967   // OpenGL 4.3 reuses entry points from these extensions:
15968   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15969   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15970   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15971   // Read_GL_ARB_ES3_compatibility (no entry points)
15972   Read_GL_ARB_clear_buffer_object;
15973   Read_GL_ARB_compute_shader;
15974   Read_GL_ARB_copy_image;
15975   Read_GL_KHR_debug;
15976   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15977   Read_GL_ARB_framebuffer_no_attachments;
15978   Read_GL_ARB_internalformat_query2;
15979   Read_GL_ARB_invalidate_subdata;
15980   Read_GL_ARB_multi_draw_indirect;
15981   Read_GL_ARB_program_interface_query;
15982   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15983   Read_GL_ARB_shader_storage_buffer_object;
15984   // Read_GL_ARB_stencil_texturing  (no entry points)
15985   Read_GL_ARB_texture_buffer_range;
15986   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15987   Read_GL_ARB_texture_storage_multisample;
15988   Read_GL_ARB_texture_view;
15989   Read_GL_ARB_vertex_attrib_binding;
15990
15991   //  Note (Due to Khronos' change in header convetions, no more single read_ functions) starting with GL 4.4
15992   Read_GL_4_4;
15993   Read_GL_4_5;
15994 end;
15995
15996 procedure Read_GL_3DFX_tbuffer;
15997 begin
15998   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
15999 end;
16000
16001 procedure Read_GL_APPLE_element_array;
16002 begin
16003   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
16004   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
16005   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
16006   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
16007   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
16008 end;
16009
16010 procedure Read_GL_APPLE_fence;
16011 begin
16012   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
16013   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
16014   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
16015   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
16016   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
16017   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
16018   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
16019   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
16020 end;
16021
16022 procedure Read_GL_APPLE_vertex_array_object;
16023 begin
16024   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
16025   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
16026   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
16027   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
16028 end;
16029
16030 procedure Read_GL_APPLE_vertex_array_range;
16031 begin
16032   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
16033   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
16034   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
16035 end;
16036
16037 procedure Read_GL_APPLE_texture_range;
16038 begin
16039   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
16040   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
16041 end;
16042
16043 procedure Read_GL_APPLE_vertex_program_evaluators;
16044 begin
16045   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
16046   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
16047   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
16048   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
16049   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
16050   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
16051   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
16052 end;
16053
16054 procedure Read_GL_APPLE_object_purgeable;
16055 begin
16056   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16057   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16058   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16059 end;
16060
16061 procedure Read_GL_ARB_matrix_palette;
16062 begin
16063   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16064   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16065   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16066   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16067   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16068 end;
16069
16070 procedure Read_GL_ARB_multisample;
16071 begin
16072   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16073 end;
16074
16075 procedure Read_GL_ARB_multitexture;
16076 begin
16077   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16078   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16079   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16080   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16081   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16082   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16083   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16084   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16085   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16086   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16087   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16088   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16089   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16090   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16091   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16092   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16093   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16094   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16095   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16096   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16097   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16098   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16099   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16100   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16101   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16102   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16103   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16104   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16105   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16106   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16107   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16108   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16109   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16110   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16111 end;
16112
16113 procedure Read_GL_ARB_point_parameters;
16114 begin
16115   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16116   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16117 end;
16118
16119 procedure Read_GL_ARB_texture_compression;
16120 begin
16121   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16122   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16123   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16124   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16125   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16126   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16127   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16128 end;
16129
16130 procedure Read_GL_ARB_transpose_matrix;
16131 begin
16132   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16133   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16134   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16135   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16136 end;
16137
16138 procedure Read_GL_ARB_vertex_blend;
16139 begin
16140   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16141   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16142   glWeightivARB := dglGetProcAddress('glWeightivARB');
16143   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16144   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16145   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16146   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16147   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16148   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16149   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16150 end;
16151
16152 procedure Read_GL_ARB_vertex_buffer_object;
16153 begin
16154   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16155   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16156   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16157   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16158   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16159   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16160   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16161   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16162   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16163   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16164   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16165 end;
16166
16167 procedure Read_GL_ARB_vertex_program;
16168 begin
16169   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16170   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16171   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16172   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16173   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16174   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16175   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16176   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16177   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16178   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16179   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16180   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16181   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16182   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16183   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16184   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16185   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16186   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16187   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16188   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16189   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16190   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16191   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16192   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16193   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16194   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16195   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16196   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16197   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16198   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16199   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16200   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16201   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16202   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16203   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16204   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16205   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16206   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16207   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16208   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16209   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16210   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16211   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16212   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16213   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16214   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16215   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16216   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16217   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16218   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16219   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16220   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16221   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16222   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16223   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16224   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16225   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16226   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16227   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16228   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16229   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16230   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16231 end;
16232
16233 procedure Read_GL_ARB_window_pos;
16234 begin
16235   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16236   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16237   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16238   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16239   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16240   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16241   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16242   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16243   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16244   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16245   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16246   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16247   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16248   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16249   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16250   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16251 end;
16252
16253 procedure Read_GL_ARB_draw_buffers;
16254 begin
16255   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16256 end;
16257
16258 procedure Read_GL_ARB_color_buffer_float;
16259 begin
16260   glClampColorARB := dglGetProcAddress('glClampColorARB');
16261 end;
16262
16263 procedure Read_GL_ARB_Shader_Objects;
16264 begin
16265   // GL_ARB_Shader_Objects
16266   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16267   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16268   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16269   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16270   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16271   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16272   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16273   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16274   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16275   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16276   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16277   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16278   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16279   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16280   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16281   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16282   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16283   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16284   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16285   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16286   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16287   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16288   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16289   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16290   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16291   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16292   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16293   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16294   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16295   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16296   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16297   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16298   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16299   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16300   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16301   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16302   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16303   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16304   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16305
16306   // GL_ARB_vertex_shader
16307   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16308   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16309   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16310   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16311 end;
16312
16313 procedure Read_GL_ARB_occlusion_query;
16314 begin
16315   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16316   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16317   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16318   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16319   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16320   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16321   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16322   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16323 end;
16324
16325 procedure Read_GL_ARB_draw_instanced;
16326 begin
16327   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16328   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16329 end;
16330
16331 procedure Read_GL_ARB_framebuffer_object;
16332 begin
16333   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16334   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16335   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16336   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16337   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16338   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16339   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16340   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16341   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16342   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16343   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16344   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16345   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16346   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16347   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16348   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16349   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16350   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16351   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16352   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16353 end;
16354
16355 procedure Read_GL_ARB_geometry_shader4;
16356 begin
16357   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16358   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16359   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16360   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16361 end;
16362
16363 procedure Read_GL_ARB_instanced_arrays;
16364 begin
16365   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16366 end;
16367
16368 procedure Read_GL_ARB_map_buffer_range;
16369 begin
16370   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16371   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16372 end;
16373
16374 procedure Read_GL_ARB_texture_buffer_object;
16375 begin
16376   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16377 end;
16378
16379 procedure Read_GL_ARB_vertex_array_object;
16380 begin
16381   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16382   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16383   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16384   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16385 end;
16386
16387 procedure Read_GL_ARB_uniform_buffer_object;
16388 begin
16389   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16390   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16391   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16392   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16393   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16394   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16395   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16396 end;
16397
16398 procedure Read_GL_ARB_copy_buffer;
16399 begin
16400   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16401 end;
16402
16403 procedure Read_GL_ARB_draw_elements_base_vertex;
16404 begin
16405   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16406   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16407   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16408   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16409 end;
16410
16411 procedure Read_GL_ARB_provoking_vertex;
16412 begin
16413   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16414 end;
16415
16416 procedure Read_GL_ARB_sync;
16417 begin
16418   glFenceSync := dglGetProcAddress('glFenceSync');
16419   glIsSync := dglGetProcAddress('glIsSync');
16420   glDeleteSync := dglGetProcAddress('glDeleteSync');
16421   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16422   glWaitSync := dglGetProcAddress('glWaitSync');
16423   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16424   glGetSynciv := dglGetProcAddress('glGetSynciv');
16425 end;
16426
16427 procedure Read_GL_ARB_texture_multisample;
16428 begin
16429   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16430   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16431   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16432   glSampleMaski := dglGetProcAddress('glSampleMaski');
16433 end;
16434
16435 procedure Read_GL_ARB_draw_buffers_blend;
16436 begin
16437   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16438   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16439   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16440   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16441 end;
16442
16443 procedure Read_GL_ARB_sample_shading;
16444 begin
16445   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16446 end;
16447
16448 procedure Read_GL_ARB_shading_language_include;
16449 begin
16450   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16451   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16452   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16453   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16454   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16455   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16456 end;
16457
16458 procedure Read_GL_ARB_sparse_texture;
16459 begin
16460   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
16461 end;
16462
16463 procedure Read_GL_ARB_sparse_buffer;
16464 begin
16465   glBufferPageCommitmentARB := dglGetProcAddress('glBufferPageCommitmentARB');
16466   glNamedBufferPageCommitmentEXT := dglGetProcAddress('glNamedBufferPageCommitmentEXT');
16467   glNamedBufferPageCommitmentARB := dglGetProcAddress('glNamedBufferPageCommitmentARB');
16468 end;
16469
16470 procedure Read_GL_KHR_blend_equation_advanced;
16471 begin
16472   glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
16473 end;
16474
16475
16476 procedure Read_GL_ARB_blend_func_extended;
16477 begin
16478   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16479   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16480 end;
16481
16482 procedure Read_GL_ARB_sampler_objects;
16483 begin
16484   glGenSamplers := dglGetProcAddress('glGenSamplers');
16485   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16486   glIsSampler := dglGetProcAddress('glIsSampler');
16487   glBindSampler := dglGetProcAddress('glBindSampler');
16488   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16489   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16490   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16491   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16492   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16493   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16494   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16495   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16496   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16497   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16498 end;
16499
16500 procedure Read_GL_ARB_timer_query;
16501 begin
16502   glQueryCounter := dglGetProcAddress('glQueryCounter');
16503   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16504   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16505 end;
16506
16507 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16508 begin
16509   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16510   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16511   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16512   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16513   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16514   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16515   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16516   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16517   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16518   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16519   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16520   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16521   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16522   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16523   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16524   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16525   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16526   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16527   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16528   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16529   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16530   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16531   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16532   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16533   glColorP3ui := dglGetProcAddress('glColorP3ui');
16534   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16535   glColorP4ui := dglGetProcAddress('glColorP4ui');
16536   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16537   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16538   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16539   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16540   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16541   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16542   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16543   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16544   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16545   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16546   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16547 end;
16548
16549 procedure Read_GL_ARB_draw_indirect;
16550 begin
16551   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16552   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16553 end;
16554
16555 procedure Read_GL_ARB_gpu_shader_fp64;
16556 begin
16557   glUniform1d := dglGetProcAddress('glUniform1d');
16558   glUniform2d := dglGetProcAddress('glUniform2d');
16559   glUniform3d := dglGetProcAddress('glUniform3d');
16560   glUniform4d := dglGetProcAddress('glUniform4d');
16561   glUniform1dv := dglGetProcAddress('glUniform1dv');
16562   glUniform2dv := dglGetProcAddress('glUniform2dv');
16563   glUniform3dv := dglGetProcAddress('glUniform3dv');
16564   glUniform4dv := dglGetProcAddress('glUniform4dv');
16565   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16566   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16567   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16568   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16569   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16570   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16571   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16572   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16573   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16574   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16575 end;
16576
16577 procedure Read_GL_ARB_shader_subroutine;
16578 begin
16579   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16580   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16581   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16582   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16583   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16584   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16585   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16586   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16587 end;
16588
16589 procedure Read_GL_ARB_tessellation_shader;
16590 begin
16591   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16592   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16593 end;
16594
16595 procedure Read_GL_ARB_transform_feedback2;
16596 begin
16597   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16598   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16599   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16600   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16601   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16602   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16603   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16604 end;
16605
16606 procedure Read_GL_ARB_transform_feedback3;
16607 begin
16608   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16609   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16610   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16611   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16612 end;
16613
16614 procedure Read_GL_ARB_ES2_compatibility;
16615 begin
16616   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16617   glShaderBinary := dglGetProcAddress('glShaderBinary');
16618   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16619   glDepthRangef := dglGetProcAddress('glDepthRangef');
16620   glClearDepthf := dglGetProcAddress('glClearDepthf');
16621 end;
16622
16623 procedure Read_GL_ARB_get_program_binary;
16624 begin
16625   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16626   glProgramBinary := dglGetProcAddress('glProgramBinary');
16627   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16628 end;
16629
16630 procedure Read_GL_ARB_separate_shader_objects;
16631 begin
16632   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16633   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16634   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16635   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16636   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16637   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16638   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16639   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16640   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16641   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16642   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16643   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16644   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16645   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16646   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16647   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16648   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16649   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16650   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16651   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16652   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16653   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16654   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16655   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16656   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16657   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16658   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16659   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16660   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16661   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16662   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16663   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16664   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16665   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16666   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16667   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16668   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16669   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16670   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16671   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16672   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16673   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16674   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16675   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16676   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16677   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16678   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16679   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16680   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16681   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16682   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16683   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16684   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16685   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16686   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16687   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16688   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16689   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16690   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16691   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16692 end;
16693
16694 procedure Read_GL_ARB_vertex_attrib_64bit;
16695 begin
16696   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16697   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16698   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16699   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16700   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16701   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16702   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16703   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16704   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16705   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16706 end;
16707
16708 procedure Read_GL_ARB_viewport_array;
16709 begin
16710   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16711   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16712   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16713   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16714   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16715   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16716   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16717   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16718   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16719   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16720 end;
16721
16722 // GL 4.2
16723
16724 procedure Read_GL_ARB_base_instance;
16725 begin
16726 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16727 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16728 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16729 end;
16730
16731 procedure Read_GL_ARB_transform_feedback_instanced;
16732 begin
16733 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16734 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16735 end;
16736
16737 procedure Read_GL_ARB_internalformat_query;
16738 begin
16739 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16740 end;
16741
16742 procedure Read_GL_ARB_shader_atomic_counters;
16743 begin
16744 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16745 end;
16746
16747 procedure Read_GL_ARB_shader_image_load_store;
16748 begin
16749 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16750 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16751 end;
16752
16753 procedure Read_GL_ARB_texture_storage;
16754 begin
16755 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16756 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16757 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16758 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16759 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16760 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16761 end;
16762
16763
16764 // GL 4.3
16765 procedure Read_GL_KHR_debug;
16766 begin
16767   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16768   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16769   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16770   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16771   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16772   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16773   glObjectLabel := dglGetProcAddress('glObjectLabel');
16774   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16775   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16776   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16777 end;
16778
16779 procedure Read_GL_ARB_clear_buffer_object;
16780 begin
16781   glClearBufferData := dglGetProcAddress('glClearBufferData');
16782   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16783   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16784   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16785 end;
16786
16787 procedure Read_GL_ARB_compute_shader;
16788 begin
16789   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16790   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16791 end;
16792
16793 procedure Read_GL_ARB_copy_image;
16794 begin
16795   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16796 end;
16797
16798 procedure Read_GL_ARB_framebuffer_no_attachments;
16799 begin
16800   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16801   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16802   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16803   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16804 end;
16805
16806 procedure Read_GL_ARB_internalformat_query2;
16807 begin
16808   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16809 end;
16810
16811 procedure Read_GL_ARB_invalidate_subdata;
16812 begin
16813   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16814   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16815   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16816   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16817   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16818   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16819 end;
16820
16821 procedure Read_GL_ARB_multi_draw_indirect;
16822 begin
16823   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16824   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16825 end;
16826
16827 procedure Read_GL_ARB_program_interface_query;
16828 begin
16829   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16830   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16831   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16832   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16833   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16834   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16835 end;
16836
16837 procedure Read_GL_ARB_shader_storage_buffer_object;
16838 begin
16839   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16840 end;
16841
16842 procedure Read_GL_ARB_texture_buffer_range;
16843 begin
16844   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16845   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16846 end;
16847
16848 procedure Read_GL_ARB_texture_storage_multisample;
16849 begin
16850   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16851   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16852   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16853   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16854 end;
16855
16856 procedure Read_GL_ARB_texture_view;
16857 begin
16858   glTextureView := dglGetProcAddress('glTextureView');
16859 end;
16860
16861 procedure Read_GL_ARB_vertex_attrib_binding;
16862 begin
16863   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16864   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16865   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16866   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16867   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16868   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16869   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16870   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16871   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16872   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16873   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16874   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16875 end;
16876
16877 procedure Read_GL_4_4;
16878 begin
16879   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16880   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16881   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16882   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16883   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16884   glBindTextures      := dglGetProcAddress('glBindTextures');
16885   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16886   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16887   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16888 end;
16889
16890 procedure Read_GL_4_5;
16891 begin
16892   glClipControl:= dglGetProcAddress('glClipControl');
16893   glCreateTransformFeedbacks:= dglGetProcAddress('glCreateTransformFeedbacks');
16894   glTransformFeedbackBufferBase:= dglGetProcAddress('glTransformFeedbackBufferBase');
16895   glTransformFeedbackBufferRange:= dglGetProcAddress('glTransformFeedbackBufferRange');
16896   glGetTransformFeedbackiv:= dglGetProcAddress('glGetTransformFeedbackiv');
16897   glGetTransformFeedbacki_v:= dglGetProcAddress('glGetTransformFeedbacki_v');
16898   glGetTransformFeedbacki64_v:= dglGetProcAddress('glGetTransformFeedbacki64_v');
16899   glCreateBuffers:= dglGetProcAddress('glCreateBuffers');
16900   glNamedBufferStorage:= dglGetProcAddress('glNamedBufferStorage');
16901   glNamedBufferData:= dglGetProcAddress('glNamedBufferData');
16902   glNamedBufferSubData:= dglGetProcAddress('glNamedBufferSubData');
16903   glCopyNamedBufferSubData:= dglGetProcAddress('glCopyNamedBufferSubData');
16904   glClearNamedBufferData:= dglGetProcAddress('glClearNamedBufferData');
16905   glClearNamedBufferSubData:= dglGetProcAddress('glClearNamedBufferSubData');
16906   glMapNamedBuffer:= dglGetProcAddress('glMapNamedBuffer');
16907   glMapNamedBufferRange:= dglGetProcAddress('glMapNamedBufferRange');
16908   glUnmapNamedBuffer:= dglGetProcAddress('glUnmapNamedBuffer');
16909   glFlushMappedNamedBufferRange:= dglGetProcAddress('glFlushMappedNamedBufferRange');
16910   glGetNamedBufferParameteriv:= dglGetProcAddress('glGetNamedBufferParameteriv');
16911   glGetNamedBufferParameteri64v:= dglGetProcAddress('glGetNamedBufferParameteri64v');
16912   glGetNamedBufferPointerv:= dglGetProcAddress('glGetNamedBufferPointerv');
16913   glGetNamedBufferSubData:= dglGetProcAddress('glGetNamedBufferSubData');
16914   glCreateFramebuffers:= dglGetProcAddress('glCreateFramebuffers');
16915   glNamedFramebufferRenderbuffer:= dglGetProcAddress('glNamedFramebufferRenderbuffer');
16916   glNamedFramebufferParameteri:= dglGetProcAddress('glNamedFramebufferParameteri');
16917   glNamedFramebufferTexture:= dglGetProcAddress('glNamedFramebufferTexture');
16918   glNamedFramebufferTextureLayer:= dglGetProcAddress('glNamedFramebufferTextureLayer');
16919   glNamedFramebufferDrawBuffer:= dglGetProcAddress('glNamedFramebufferDrawBuffer');
16920   glNamedFramebufferDrawBuffers:= dglGetProcAddress('glNamedFramebufferDrawBuffers');
16921   glNamedFramebufferReadBuffer:= dglGetProcAddress('glNamedFramebufferReadBuffer');
16922   glInvalidateNamedFramebufferData:= dglGetProcAddress('glInvalidateNamedFramebufferData');
16923   glInvalidateNamedFramebufferSubData:= dglGetProcAddress('glInvalidateNamedFramebufferSubData');
16924   glClearNamedFramebufferiv:= dglGetProcAddress('glClearNamedFramebufferiv');
16925   glClearNamedFramebufferuiv:= dglGetProcAddress('glClearNamedFramebufferuiv');
16926   glClearNamedFramebufferfv:= dglGetProcAddress('glClearNamedFramebufferfv');
16927   glClearNamedFramebufferfi:= dglGetProcAddress('glClearNamedFramebufferfi');
16928   glBlitNamedFramebuffer:= dglGetProcAddress('glBlitNamedFramebuffer');
16929   glCheckNamedFramebufferStatus:= dglGetProcAddress('glCheckNamedFramebufferStatus');
16930   glGetNamedFramebufferParameteriv:= dglGetProcAddress('glGetNamedFramebufferParameteriv');
16931   glGetNamedFramebufferAttachmentParameteriv:= dglGetProcAddress('glGetNamedFramebufferAttachmentParameteriv');
16932   glCreateRenderbuffers:= dglGetProcAddress('glCreateRenderbuffers');
16933   glNamedRenderbufferStorage:= dglGetProcAddress('glNamedRenderbufferStorage');
16934   glNamedRenderbufferStorageMultisample:= dglGetProcAddress('glNamedRenderbufferStorageMultisample');
16935   glGetNamedRenderbufferParameteriv:= dglGetProcAddress('glGetNamedRenderbufferParameteriv');
16936   glCreateTextures:= dglGetProcAddress('glCreateTextures');
16937   glTextureBuffer:= dglGetProcAddress('glTextureBuffer');
16938   glTextureBufferRange:= dglGetProcAddress('glTextureBufferRange');
16939   glTextureStorage1D:= dglGetProcAddress('glTextureStorage1D');
16940   glTextureStorage2D:= dglGetProcAddress('glTextureStorage2D');
16941   glTextureStorage3D:= dglGetProcAddress('glTextureStorage3D');
16942   glTextureStorage2DMultisample:= dglGetProcAddress('glTextureStorage2DMultisample');
16943   glTextureStorage3DMultisample:= dglGetProcAddress('glTextureStorage3DMultisample');
16944   glTextureSubImage1D:= dglGetProcAddress('glTextureSubImage1D');
16945   glTextureSubImage2D:= dglGetProcAddress('glTextureSubImage2D');
16946   glTextureSubImage3D:= dglGetProcAddress('glTextureSubImage3D');
16947   glCompressedTextureSubImage1D:= dglGetProcAddress('glCompressedTextureSubImage1D');
16948   glCompressedTextureSubImage2D:= dglGetProcAddress('glCompressedTextureSubImage2D');
16949   glCompressedTextureSubImage3D:= dglGetProcAddress('glCompressedTextureSubImage3D');
16950   glCopyTextureSubImage1D:= dglGetProcAddress('glCopyTextureSubImage1D');
16951   glCopyTextureSubImage2D:= dglGetProcAddress('glCopyTextureSubImage2D');
16952   glCopyTextureSubImage3D:= dglGetProcAddress('glCopyTextureSubImage3D');
16953   glTextureParameterf:= dglGetProcAddress('glTextureParameterf');
16954   glTextureParameterfv:= dglGetProcAddress('glTextureParameterfv');
16955   glTextureParameteri:= dglGetProcAddress('glTextureParameteri');
16956   glTextureParameterIiv:= dglGetProcAddress('glTextureParameterIiv');
16957   glTextureParameterIuiv:= dglGetProcAddress('glTextureParameterIuiv');
16958   glTextureParameteriv:= dglGetProcAddress('glTextureParameteriv');
16959   glGenerateTextureMipmap:= dglGetProcAddress('glGenerateTextureMipmap');
16960   glBindTextureUnit:= dglGetProcAddress('glBindTextureUnit');
16961   glGetTextureImage:= dglGetProcAddress('glGetTextureImage');
16962   glGetCompressedTextureImage:= dglGetProcAddress('glGetCompressedTextureImage');
16963   glGetTextureLevelParameterfv:= dglGetProcAddress('glGetTextureLevelParameterfv');
16964   glGetTextureLevelParameteriv:= dglGetProcAddress('glGetTextureLevelParameteriv');
16965   glGetTextureParameterfv:= dglGetProcAddress('glGetTextureParameterfv');
16966   glGetTextureParameterIiv:= dglGetProcAddress('glGetTextureParameterIiv');
16967   glGetTextureParameterIuiv:= dglGetProcAddress('glGetTextureParameterIuiv');
16968   glGetTextureParameteriv:= dglGetProcAddress('glGetTextureParameteriv');
16969   glCreateVertexArrays:= dglGetProcAddress('glCreateVertexArrays');
16970   glDisableVertexArrayAttrib:= dglGetProcAddress('glDisableVertexArrayAttrib');
16971   glEnableVertexArrayAttrib:= dglGetProcAddress('glEnableVertexArrayAttrib');
16972   glVertexArrayElementBuffer:= dglGetProcAddress('glVertexArrayElementBuffer');
16973   glVertexArrayVertexBuffer:= dglGetProcAddress('glVertexArrayVertexBuffer');
16974   glVertexArrayVertexBuffers:= dglGetProcAddress('glVertexArrayVertexBuffers');
16975   glVertexArrayAttribBinding:= dglGetProcAddress('glVertexArrayAttribBinding');
16976   glVertexArrayAttribFormat:= dglGetProcAddress('glVertexArrayAttribFormat');
16977   glVertexArrayAttribIFormat:= dglGetProcAddress('glVertexArrayAttribIFormat');
16978   glVertexArrayAttribLFormat:= dglGetProcAddress('glVertexArrayAttribLFormat');
16979   glVertexArrayBindingDivisor:= dglGetProcAddress('glVertexArrayBindingDivisor');
16980   glGetVertexArrayiv:= dglGetProcAddress('glGetVertexArrayiv');
16981   glGetVertexArrayIndexediv:= dglGetProcAddress('glGetVertexArrayIndexediv');
16982   glGetVertexArrayIndexed64iv:= dglGetProcAddress('glGetVertexArrayIndexed64iv');
16983   glCreateSamplers:= dglGetProcAddress('glCreateSamplers');
16984   glCreateProgramPipelines:= dglGetProcAddress('glCreateProgramPipelines');
16985   glCreateQueries:= dglGetProcAddress('glCreateQueries');
16986   glMemoryBarrierByRegion:= dglGetProcAddress('glMemoryBarrierByRegion');
16987   glGetTextureSubImage:= dglGetProcAddress('glGetTextureSubImage');
16988   glGetCompressedTextureSubImage:= dglGetProcAddress('glGetCompressedTextureSubImage');
16989   glGetGraphicsResetStatus:= dglGetProcAddress('glGetGraphicsResetStatus');
16990   glGetnCompressedTexImage:= dglGetProcAddress('glGetnCompressedTexImage');
16991   glGetnTexImage:= dglGetProcAddress('glGetnTexImage');
16992   glGetnUniformdv:= dglGetProcAddress('glGetnUniformdv');
16993   glGetnUniformfv:= dglGetProcAddress('glGetnUniformfv');
16994   glGetnUniformiv:= dglGetProcAddress('glGetnUniformiv');
16995   glGetnUniformuiv:= dglGetProcAddress('glGetnUniformuiv');
16996   glReadnPixels:= dglGetProcAddress('glReadnPixels');
16997   glGetnMapdv:= dglGetProcAddress('glGetnMapdv');
16998   glGetnMapfv:= dglGetProcAddress('glGetnMapfv');
16999   glGetnMapiv:= dglGetProcAddress('glGetnMapiv');
17000   glGetnPixelMapfv:= dglGetProcAddress('glGetnPixelMapfv');
17001   glGetnPixelMapuiv:= dglGetProcAddress('glGetnPixelMapuiv');
17002   glGetnPixelMapusv:= dglGetProcAddress('glGetnPixelMapusv');
17003   glGetnPolygonStipple:= dglGetProcAddress('glGetnPolygonStipple');
17004   glGetnColorTable:= dglGetProcAddress('glGetnColorTable');
17005   glGetnConvolutionFilter:= dglGetProcAddress('glGetnConvolutionFilter');
17006   glGetnSeparableFilter:= dglGetProcAddress('glGetnSeparableFilter');
17007   glGetnHistogram:= dglGetProcAddress('glGetnHistogram');
17008   glGetnMinmax:= dglGetProcAddress('glGetnMinmax');
17009   glTextureBarrier:= dglGetProcAddress('glTextureBarrier');
17010 end;
17011
17012 procedure Read_GL_NV_path_rendering;
17013 begin
17014   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
17015   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
17016   glIsPathNV := dglGetProcAddress('glIsPathNV');
17017   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
17018   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
17019   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
17020   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
17021   glPathStringNV := dglGetProcAddress('glPathStringNV');
17022   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
17023   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
17024   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
17025   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
17026   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
17027   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
17028   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
17029   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
17030   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
17031   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
17032   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
17033   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
17034   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
17035   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
17036   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
17037   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
17038   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
17039   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
17040   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
17041   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
17042   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
17043   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
17044   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
17045   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
17046   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
17047   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
17048   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
17049   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
17050   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
17051   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
17052   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
17053   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
17054   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
17055   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
17056   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
17057   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
17058   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
17059   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
17060   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
17061   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
17062   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
17063 end;
17064
17065 procedure Read_GL_AMD_stencil_operation_extended;
17066 begin
17067         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
17068 end;
17069
17070 procedure Read_GL_NV_bindless_texture;
17071 begin
17072   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
17073   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
17074   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
17075   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
17076   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
17077   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
17078   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
17079   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
17080   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
17081   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
17082   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
17083   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
17084   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
17085 end;
17086
17087 procedure Read_GL_ARB_bindless_texture;
17088 begin
17089   glGetTextureHandleARB := dglGetProcAddress('TglGetTextureHandleARB');
17090   glGetTextureSamplerHandleARB := dglGetProcAddress('TglGetTextureSamplerHandleARB');
17091   glMakeTextureHandleResidentARB := dglGetProcAddress('TglMakeTextureHandleResidentARB');
17092   glMakeTextureHandleNonResidentARB := dglGetProcAddress('TglMakeTextureHandleNonResidentARB');
17093   glGetImageHandleARB := dglGetProcAddress('TglGetImageHandleARB');
17094   glMakeImageHandleResidentARB := dglGetProcAddress('TglMakeImageHandleResidentARB');
17095   glMakeImageHandleNonResidentARB := dglGetProcAddress('TglMakeImageHandleNonResidentARB');
17096   glUniformHandleui64ARB := dglGetProcAddress('TglUniformHandleui64ARB');
17097   glUniformHandleui64vARB := dglGetProcAddress('TglUniformHandleui64vARB');
17098   glProgramUniformHandleui64ARB := dglGetProcAddress('TglProgramUniformHandleui64ARB');
17099   glProgramUniformHandleui64vARB := dglGetProcAddress('TglProgramUniformHandleui64vARB');
17100   glIsTextureHandleResidentARB := dglGetProcAddress('TglIsTextureHandleResidentARB');
17101   glIsImageHandleResidentARB := dglGetProcAddress('TglIsImageHandleResidentARB');
17102   glVertexAttribL1ui64ARB := dglGetProcAddress('TglVertexAttribL1ui64ARB');
17103   glVertexAttribL1ui64vARB := dglGetProcAddress('TglVertexAttribL1ui64vARB');
17104   glGetVertexAttribLui64vARB := dglGetProcAddress('TglGetVertexAttribLui64vARB');
17105 end;
17106
17107 procedure Read_GL_ARB_cl_event;
17108 begin
17109   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
17110 end;
17111
17112 procedure Read_GL_ARB_compute_variable_group_size;
17113 begin
17114   glDispatchComputeGroupSizeARB := dglGetProcAddress('glDispatchComputeGroupSizeARB');
17115 end;
17116
17117 procedure Read_GL_ARB_debug_output;
17118 begin
17119   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
17120   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
17121   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
17122   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
17123 end;
17124
17125 procedure Read_GL_ARB_robustness;
17126 begin
17127   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
17128   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
17129   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
17130   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
17131   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
17132   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
17133   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
17134   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
17135   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
17136   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
17137   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
17138   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
17139   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
17140   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
17141   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
17142   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
17143   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
17144   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
17145   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
17146   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
17147 end;
17148
17149 procedure Read_GL_ATI_draw_buffers;
17150 begin
17151   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
17152 end;
17153
17154 procedure Read_GL_ATI_element_array;
17155 begin
17156   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
17157   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
17158   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
17159 end;
17160
17161 procedure Read_GL_ATI_envmap_bumpmap;
17162 begin
17163   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
17164   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
17165   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
17166   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
17167 end;
17168
17169 procedure Read_GL_ATI_fragment_shader;
17170 begin
17171   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
17172   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
17173   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
17174   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
17175   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
17176   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
17177   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
17178   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
17179   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
17180   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
17181   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
17182   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
17183   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
17184   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
17185 end;
17186
17187 procedure Read_GL_ATI_map_object_buffer;
17188 begin
17189   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
17190   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
17191 end;
17192
17193 procedure Read_GL_ATI_pn_triangles;
17194 begin
17195   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
17196   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
17197 end;
17198
17199 procedure Read_GL_ATI_separate_stencil;
17200 begin
17201   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
17202   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
17203 end;
17204
17205 procedure Read_GL_ATI_vertex_array_object;
17206 begin
17207   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
17208   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
17209   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
17210   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
17211   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
17212   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
17213   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
17214   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
17215   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
17216   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17217   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17218   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17219
17220 end;
17221
17222 procedure Read_GL_ATI_vertex_attrib_array_object;
17223 begin
17224   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17225   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17226   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17227 end;
17228
17229 procedure Read_GL_ATI_vertex_streams;
17230 begin
17231   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17232   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17233   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17234   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17235   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17236   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17237   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17238   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17239   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17240   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17241   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17242   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17243   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17244   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17245   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17246   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17247   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17248   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17249   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17250   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17251   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17252   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17253   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17254   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17255   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17256   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17257   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17258   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17259   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17260   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17261   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17262   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17263   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17264   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17265   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17266   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17267   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17268   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17269   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17270   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17271   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17272   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17273   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17274   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17275   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17276 end;
17277
17278 procedure Read_GL_AMD_performance_monitor;
17279 begin
17280   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17281   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17282   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17283   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17284   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17285   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17286   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17287   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17288   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17289   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17290   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17291 end;
17292
17293 procedure Read_GL_AMD_vertex_shader_tesselator;
17294 begin
17295   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17296   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17297 end;
17298
17299 procedure Read_GL_AMD_draw_buffers_blend;
17300 begin
17301   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17302   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17303   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17304   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17305 end;
17306
17307 procedure Read_GL_AMD_name_gen_delete;
17308 begin
17309   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17310   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17311   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17312 end;
17313
17314 procedure Read_GL_AMD_debug_output;
17315 begin
17316   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17317   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17318   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17319   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17320 end;
17321
17322 procedure Read_GL_EXT_blend_color;
17323 begin
17324   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17325 end;
17326
17327 procedure Read_GL_EXT_blend_func_separate;
17328 begin
17329   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17330 end;
17331
17332 procedure Read_GL_EXT_blend_minmax;
17333 begin
17334   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17335 end;
17336
17337 procedure Read_GL_EXT_color_subtable;
17338 begin
17339   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17340   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17341 end;
17342
17343 procedure Read_GL_EXT_compiled_vertex_array;
17344 begin
17345   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17346   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17347 end;
17348
17349 procedure Read_GL_EXT_convolution;
17350 begin
17351   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17352   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17353   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17354   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17355   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17356   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17357   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17358   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17359   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17360   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17361   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17362   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17363   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17364 end;
17365
17366 procedure Read_GL_EXT_coordinate_frame;
17367 begin
17368   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17369   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17370   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17371   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17372   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17373   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17374   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17375   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17376   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17377   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17378   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17379   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17380   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17381   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17382   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17383   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17384   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17385   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17386   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17387   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17388   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17389   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17390 end;
17391
17392 procedure Read_GL_EXT_copy_texture;
17393 begin
17394   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17395   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17396   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17397   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17398   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17399 end;
17400
17401 procedure Read_GL_EXT_cull_vertex;
17402 begin
17403   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17404   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17405 end;
17406
17407 procedure Read_GL_EXT_draw_range_elements;
17408 begin
17409   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17410 end;
17411
17412 procedure Read_GL_EXT_fog_coord;
17413 begin
17414   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17415   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17416   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17417   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17418   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17419 end;
17420
17421 procedure Read_GL_EXT_framebuffer_object;
17422 begin
17423   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17424   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17425   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17426   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17427   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17428   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17429   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17430   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17431   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17432   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17433   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17434   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17435   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17436   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17437   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17438   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17439   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17440 end;
17441
17442 procedure Read_GL_EXT_histogram;
17443 begin
17444   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17445   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17446   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17447   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17448   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17449   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17450   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17451   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17452   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17453   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17454 end;
17455
17456 procedure Read_GL_EXT_index_func;
17457 begin
17458   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17459 end;
17460
17461 procedure Read_GL_EXT_index_material;
17462 begin
17463   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17464 end;
17465
17466 procedure Read_GL_EXT_light_texture;
17467 begin
17468   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17469   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17470   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17471 end;
17472
17473 procedure Read_GL_EXT_multi_draw_arrays;
17474 begin
17475   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17476   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17477 end;
17478
17479 procedure Read_GL_EXT_multisample;
17480 begin
17481   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17482   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17483 end;
17484
17485 procedure Read_GL_EXT_paletted_texture;
17486 begin
17487   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17488   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17489   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17490   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17491 end;
17492
17493 procedure Read_GL_EXT_pixel_transform;
17494 begin
17495   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17496   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17497   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17498   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17499 end;
17500
17501 procedure Read_GL_EXT_point_parameters;
17502 begin
17503   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17504   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17505 end;
17506
17507 procedure Read_GL_EXT_polygon_offset;
17508 begin
17509   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17510 end;
17511
17512 procedure Read_GL_EXT_secondary_color;
17513 begin
17514   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17515   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17516   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17517   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17518   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17519   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17520   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17521   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17522   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17523   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17524   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17525   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17526   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17527   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17528   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17529   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17530   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17531 end;
17532
17533 procedure Read_GL_EXT_stencil_two_side;
17534 begin
17535   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17536 end;
17537
17538 procedure Read_GL_EXT_subtexture;
17539 begin
17540   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17541   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17542 end;
17543
17544 procedure Read_GL_EXT_texture3D;
17545 begin
17546   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17547   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17548 end;
17549
17550 procedure Read_GL_EXT_texture_object;
17551 begin
17552   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17553   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17554   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17555   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17556   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17557   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17558 end;
17559
17560 procedure Read_GL_EXT_texture_perturb_normal;
17561 begin
17562   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17563 end;
17564
17565 procedure Read_GL_EXT_vertex_array;
17566 begin
17567   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17568   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17569   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17570   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17571   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17572   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17573   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17574   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17575   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17576 end;
17577
17578 procedure Read_GL_EXT_vertex_shader;
17579 begin
17580   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17581   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17582   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17583   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17584   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17585   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17586   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17587   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17588   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17589   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17590   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17591   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17592   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17593   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17594   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17595   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17596   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17597   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17598   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17599   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17600   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17601   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17602   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17603   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17604   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17605   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17606   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17607   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17608   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17609   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17610   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17611   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17612   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17613   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17614   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17615   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17616   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17617   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17618   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17619   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17620   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17621   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17622 end;
17623
17624 procedure Read_GL_EXT_vertex_weighting;
17625 begin
17626   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17627   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17628   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17629 end;
17630
17631 procedure Read_GL_EXT_depth_bounds_test;
17632 begin
17633   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17634   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17635 end;
17636
17637 procedure Read_GL_EXT_blend_equation_separate;
17638 begin
17639   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17640 end;
17641
17642 procedure Read_GL_EXT_stencil_clear_tag;
17643 begin
17644   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17645 end;
17646
17647 procedure Read_GL_EXT_framebuffer_blit;
17648 begin
17649   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17650 end;
17651
17652 procedure Read_GL_EXT_framebuffer_multisample;
17653 begin
17654   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17655 end;
17656
17657 procedure Read_GL_EXT_timer_query;
17658 begin
17659   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17660   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17661 end;
17662
17663 procedure Read_GL_EXT_gpu_program_parameters;
17664 begin
17665   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17666   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17667 end;
17668
17669 procedure Read_GL_EXT_bindable_uniform;
17670 begin
17671   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17672   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17673   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17674 end;
17675
17676 procedure Read_GL_EXT_draw_buffers2;
17677 begin
17678   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17679   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17680   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17681   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17682   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17683   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17684 end;
17685
17686 procedure Read_GL_EXT_draw_instanced;
17687 begin
17688   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17689   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17690 end;
17691
17692 procedure Read_GL_EXT_geometry_shader4;
17693 begin
17694   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17695   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17696 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17697   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17698 end;
17699
17700 procedure Read_GL_EXT_gpu_shader4;
17701 begin
17702   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17703   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17704   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17705   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17706   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17707   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17708   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17709   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17710   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17711   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17712   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17713   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17714   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17715   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17716   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17717   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17718   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17719   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17720   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17721   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17722   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17723   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17724   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17725   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17726   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17727   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17728   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17729   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17730   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17731   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17732   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17733   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17734   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17735   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17736 end;
17737
17738 procedure Read_GL_EXT_texture_array;
17739 begin
17740   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17741 end;
17742
17743 procedure Read_GL_EXT_texture_buffer_object;
17744 begin
17745   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17746 end;
17747
17748 procedure Read_GL_EXT_texture_integer;
17749 begin
17750   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17751   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17752   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17753   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17754   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17755   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17756 end;
17757
17758 procedure Read_GL_EXT_transform_feedback;
17759 begin
17760   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17761   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17762   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17763   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17764   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17765   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17766   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17767 end;
17768
17769 procedure Read_GL_EXT_direct_state_access;
17770 begin
17771   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17772   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17773   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17774   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17775   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17776   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17777   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17778   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17779   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17780   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17781   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17782   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17783   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17784   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17785   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17786   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17787   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17788   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17789   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17790   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17791   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17792   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17793   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17794   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17795   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17796   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17797   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17798   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17799   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17800   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17801   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17802   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17803   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17804   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17805   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17806   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17807   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17808   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17809   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17810   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17811   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17812   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17813   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17814   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17815   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17816   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17817   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17818   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17819   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17820   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17821   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17822   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17823   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17824   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17825   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17826   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17827   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17828   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17829   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17830   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17831   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17832   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17833   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17834   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17835   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17836   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17837   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17838   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17839   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17840   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17841   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17842   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17843   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17844   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17845   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17846   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17847   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17848   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17849   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17850   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17851   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17852   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17853   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17854   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17855   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17856   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17857   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17858   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17859   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17860   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17861   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17862   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17863   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17864   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17865   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17866   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17867   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17868   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17869   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17870   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17871   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17872   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17873   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17874   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17875   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17876   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17877   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17878   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17879   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17880   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17881   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17882   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17883   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17884   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17885   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17886   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17887   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17888   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17889   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17890   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17891   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17892   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17893   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17894   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17895   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17896   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17897   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17898   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17899   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17900   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17901   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17902   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17903   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17904   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17905   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17906   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17907   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17908   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17909   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17910   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17911   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17912   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17913   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17914   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17915   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17916   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17917   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17918   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17919   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17920   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17921   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17922   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17923   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17924   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17925   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17926   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17927   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17928   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17929   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17930   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17931   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17932   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17933   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17934   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17935   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17936   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17937   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17938   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17939   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17940   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17941   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17942   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17943   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17944   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17945   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17946   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17947   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17948   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17949   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17950   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17951   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17952   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17953   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17954   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17955   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17956   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17957   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17958   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17959   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17960   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17961   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17962   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17963   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17964   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17965   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17966   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17967   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17968   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17969   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17970   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17971   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17972   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17973   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17974   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17975   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17976   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17977 end;
17978
17979 procedure Read_GL_EXT_separate_shader_objects;
17980 begin
17981   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17982   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17983   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17984 end;
17985
17986 procedure Read_GL_EXT_shader_image_load_store;
17987 begin
17988   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17989   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17990 end;
17991
17992 procedure Read_GL_EXT_vertex_attrib_64bit;
17993 begin
17994   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
17995   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
17996   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
17997   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
17998   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
17999   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
18000   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
18001   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
18002   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
18003   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
18004   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
18005 end;
18006
18007 procedure Read_GL_HP_image_transform;
18008 begin
18009   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
18010   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
18011   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
18012   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
18013   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
18014   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
18015 end;
18016
18017 procedure Read_GL_IBM_multimode_draw_arrays;
18018 begin
18019   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
18020   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
18021 end;
18022
18023 procedure Read_GL_IBM_vertex_array_lists;
18024 begin
18025   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
18026   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
18027   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
18028   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
18029   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
18030   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
18031   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
18032   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
18033 end;
18034
18035 procedure Read_GL_INGR_blend_func_separate;
18036 begin
18037   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
18038 end;
18039
18040 procedure Read_GL_INTEL_parallel_arrays;
18041 begin
18042   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
18043   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
18044   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
18045   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
18046 end;
18047
18048 procedure Read_GL_MESA_resize_buffers;
18049 begin
18050   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
18051 end;
18052
18053 procedure Read_GL_MESA_window_pos;
18054 begin
18055   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
18056   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
18057   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
18058   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
18059   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
18060   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
18061   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
18062   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
18063   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
18064   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
18065   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
18066   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
18067   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
18068   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
18069   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
18070   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
18071   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
18072   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
18073   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
18074   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
18075   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
18076   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
18077   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
18078   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
18079 end;
18080
18081 procedure Read_GL_NV_evaluators;
18082 begin
18083   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
18084   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
18085   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
18086   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
18087   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
18088   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
18089   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
18090   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
18091   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
18092 end;
18093
18094 procedure Read_GL_NV_fence;
18095 begin
18096   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
18097   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
18098   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
18099   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
18100   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
18101   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
18102   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
18103 end;
18104
18105 procedure Read_GL_NV_fragment_program;
18106 begin
18107   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
18108   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
18109   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
18110   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
18111   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
18112   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
18113 end;
18114
18115 procedure Read_GL_NV_half_float;
18116 begin
18117   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
18118   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
18119   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
18120   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
18121   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
18122   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
18123   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
18124   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
18125   glColor3hNV := dglGetProcAddress('glColor3hNV');
18126   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
18127   glColor4hNV := dglGetProcAddress('glColor4hNV');
18128   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
18129   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
18130   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
18131   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
18132   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
18133   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
18134   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
18135   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
18136   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
18137   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
18138   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
18139   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
18140   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
18141   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
18142   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
18143   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
18144   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
18145   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
18146   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
18147   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
18148   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
18149   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
18150   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
18151   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
18152   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
18153   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
18154   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
18155   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
18156   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
18157   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
18158   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
18159   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
18160   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
18161   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
18162   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
18163 end;
18164
18165 procedure Read_GL_NV_occlusion_query;
18166 begin
18167   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
18168   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
18169   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
18170   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
18171   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
18172   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
18173   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
18174 end;
18175
18176 procedure Read_GL_NV_pixel_data_range;
18177 begin
18178   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
18179   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
18180 end;
18181
18182 procedure Read_GL_NV_point_sprite;
18183 begin
18184   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
18185   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
18186 end;
18187
18188 procedure Read_GL_NV_primitive_restart;
18189 begin
18190   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
18191   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
18192 end;
18193
18194 procedure Read_GL_NV_register_combiners;
18195 begin
18196   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
18197   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
18198   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
18199   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
18200   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
18201   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
18202   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
18203   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
18204   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
18205   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
18206   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
18207   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
18208   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
18209 end;
18210
18211 procedure Read_GL_NV_register_combiners2;
18212 begin
18213   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
18214   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
18215 end;
18216
18217 procedure Read_GL_NV_vertex_array_range;
18218 begin
18219   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18220   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18221 end;
18222
18223 procedure Read_GL_NV_vertex_program;
18224 begin
18225   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18226   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18227   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18228   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18229   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18230   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18231   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18232   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18233   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18234   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18235   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18236   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18237   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18238   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18239   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18240   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18241   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18242   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18243   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18244   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18245   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18246   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18247   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18248   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18249   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18250   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18251   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18252   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18253   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18254   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18255   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18256   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18257   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18258   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18259   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18260   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18261   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18262   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18263   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18264   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18265   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18266   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18267   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18268   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18269   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18270   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18271   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18272   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18273   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18274   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18275   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18276   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18277   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18278   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18279   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18280   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18281   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18282   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18283   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18284   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18285   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18286   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18287   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18288   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18289 end;
18290
18291 procedure Read_GL_NV_depth_buffer_float;
18292 begin
18293   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18294   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18295   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18296 end;
18297
18298 procedure Read_GL_NV_framebuffer_multisample_coverage;
18299 begin
18300   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18301 end;
18302
18303 procedure Read_GL_NV_geometry_program4;
18304 begin
18305   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18306 end;
18307
18308 procedure Read_GL_NV_gpu_program4;
18309 begin
18310   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18311   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18312   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18313   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18314   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18315   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18316   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18317   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18318   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18319   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18320   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18321   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18322   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18323   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18324   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18325   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18326 end;
18327
18328 procedure Read_GL_NV_parameter_buffer_object;
18329 begin
18330   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18331   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18332   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18333 end;
18334
18335 procedure Read_GL_NV_transform_feedback;
18336 begin
18337   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18338   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18339   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18340   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18341   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18342   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18343   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18344   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18345   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18346   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18347   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18348   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18349 end;
18350
18351 procedure Read_GL_NV_conditional_render;
18352 begin
18353   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18354   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18355 end;
18356
18357 procedure Read_GL_NV_present_video;
18358 begin
18359   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18360   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18361   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18362   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18363   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18364   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18365 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18366 end;
18367
18368 procedure Read_GL_NV_explicit_multisample;
18369 begin
18370   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18371   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18372   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18373 end;
18374
18375 procedure Read_GL_NV_transform_feedback2;
18376 begin
18377   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18378   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18379   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18380   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18381   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18382   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18383   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18384 end;
18385
18386 procedure Read_GL_NV_video_capture;
18387 begin
18388   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18389   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18390   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18391   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18392   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18393   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18394   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18395   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18396   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18397   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18398   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18399   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18400 end;
18401
18402 procedure Read_GL_NV_copy_image;
18403 begin
18404   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18405 end;
18406
18407 procedure Read_GL_NV_shader_buffer_load;
18408 begin
18409   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18410   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18411   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18412   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18413   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18414   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18415   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18416   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18417   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18418   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18419   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18420   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18421   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18422   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18423 end;
18424
18425 procedure Read_GL_NV_vertex_buffer_unified_memory;
18426 begin
18427   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18428   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18429   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18430   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18431   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18432   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18433   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18434   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18435   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18436   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18437   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18438   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18439 end;
18440
18441 procedure Read_GL_NV_gpu_program5;
18442 begin
18443   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18444   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18445 end;
18446
18447 procedure Read_GL_NV_gpu_shader5;
18448 begin
18449   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18450   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18451   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18452   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18453   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18454   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18455   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18456   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18457   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18458   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18459   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18460   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18461   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18462   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18463   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18464   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18465   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18466   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18467   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18468   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18469   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18470   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18471   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18472   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18473   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18474   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18475   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18476   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18477   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18478   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18479   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18480   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18481   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18482 end;
18483
18484 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18485 begin
18486   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18487   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18488   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18489   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18490   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18491   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18492   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18493   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18494   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18495   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18496   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18497   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18498   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18499   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18500   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18501   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18502   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18503   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18504   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18505 end;
18506
18507 procedure Read_GL_NV_vdpau_interop;
18508 begin
18509   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18510   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18511   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18512   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18513   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18514   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18515   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18516   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18517   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18518   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18519 end;
18520
18521 procedure Read_GL_NV_texture_barrier;
18522 begin
18523   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18524 end;
18525
18526 procedure Read_GL_PGI_misc_hints;
18527 begin
18528   glHintPGI := dglGetProcAddress('glHintPGI');
18529 end;
18530
18531 procedure Read_GL_SGIS_detail_texture;
18532 begin
18533   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18534   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18535 end;
18536
18537 procedure Read_GL_SGIS_fog_function;
18538 begin
18539   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18540   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18541 end;
18542
18543 procedure Read_GL_SGIS_multisample;
18544 begin
18545   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18546   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18547 end;
18548
18549 procedure Read_GL_SGIS_pixel_texture;
18550 begin
18551   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18552   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18553   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18554   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18555   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18556   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18557 end;
18558
18559 procedure Read_GL_SGIS_point_parameters;
18560 begin
18561   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18562   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18563 end;
18564
18565 procedure Read_GL_SGIS_sharpen_texture;
18566 begin
18567   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18568   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18569 end;
18570
18571 procedure Read_GL_SGIS_texture4D;
18572 begin
18573   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18574   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18575 end;
18576
18577 procedure Read_GL_SGIS_texture_color_mask;
18578 begin
18579   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18580 end;
18581
18582 procedure Read_GL_SGIS_texture_filter4;
18583 begin
18584   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18585   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18586 end;
18587
18588 procedure Read_GL_SGIX_async;
18589 begin
18590   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18591   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18592   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18593   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18594   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18595   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18596 end;
18597
18598 procedure Read_GL_SGIX_flush_raster;
18599 begin
18600   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18601 end;
18602
18603 procedure Read_GL_SGIX_fragment_lighting;
18604 begin
18605   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18606   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18607   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18608   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18609   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18610   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18611   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18612   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18613   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18614   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18615   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18616   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18617   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18618   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18619   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18620   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18621   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18622   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18623 end;
18624
18625 procedure Read_GL_SGIX_framezoom;
18626 begin
18627   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18628 end;
18629
18630 procedure Read_GL_SGIX_igloo_interface;
18631 begin
18632   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18633 end;
18634
18635 procedure Read_GL_SGIX_instruments;
18636 begin
18637   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18638   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18639   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18640   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18641   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18642   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18643 end;
18644
18645 procedure Read_GL_SGIX_list_priority;
18646 begin
18647   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18648   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18649   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18650   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18651   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18652   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18653 end;
18654
18655 procedure Read_GL_SGIX_pixel_texture;
18656 begin
18657   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18658 end;
18659
18660 procedure Read_GL_SGIX_polynomial_ffd;
18661 begin
18662   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18663   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18664   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18665   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18666 end;
18667
18668 procedure Read_GL_SGIX_reference_plane;
18669 begin
18670   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18671 end;
18672
18673 procedure Read_GL_SGIX_sprite;
18674 begin
18675   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18676   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18677   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18678   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18679 end;
18680
18681 procedure Read_GL_SGIX_tag_sample_buffer;
18682 begin
18683   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18684 end;
18685
18686 procedure Read_GL_SGI_color_table;
18687 begin
18688   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18689   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18690   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18691   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18692   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18693   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18694   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18695 end;
18696
18697 procedure Read_GL_SUNX_constant_data;
18698 begin
18699   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18700 end;
18701
18702 procedure Read_GL_SUN_global_alpha;
18703 begin
18704   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18705   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18706   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18707   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18708   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18709   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18710   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18711   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18712 end;
18713
18714 procedure Read_GL_SUN_mesh_array;
18715 begin
18716   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18717 end;
18718
18719 procedure Read_GL_SUN_triangle_list;
18720 begin
18721   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18722   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18723   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18724   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18725   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18726   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18727   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18728 end;
18729
18730 procedure Read_GL_SUN_vertex;
18731 begin
18732   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18733   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18734   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18735   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18736   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18737   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18738   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18739   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18740   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18741   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18742   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18743   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18744   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18745   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18746   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18747   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18748   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18749   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18750   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18751   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18752   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18753   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18754   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18755   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18756   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18757   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18758   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18759   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18760   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18761   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18762   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18763   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18764   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18765   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18766   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18767   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18768   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18769   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18770   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18771   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18772 end;
18773
18774 {$IFDEF DGL_WIN}
18775 procedure Read_WGL_ARB_buffer_region;
18776 begin
18777   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18778   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18779   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18780   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18781 end;
18782
18783 procedure Read_WGL_ARB_extensions_string;
18784 begin
18785   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18786 end;
18787
18788 procedure Read_WGL_ARB_make_current_read;
18789 begin
18790   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18791   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18792 end;
18793
18794 procedure Read_WGL_ARB_pbuffer;
18795 begin
18796   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18797   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18798   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18799   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18800   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18801 end;
18802
18803 procedure Read_WGL_ARB_pixel_format;
18804 begin
18805   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18806   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18807   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18808 end;
18809
18810 procedure Read_WGL_ARB_pixel_format_float;
18811 begin
18812   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18813 end;
18814
18815 procedure Read_WGL_ARB_render_texture;
18816 begin
18817   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18818   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18819   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18820 end;
18821
18822 procedure Read_WGL_ARB_create_context;
18823 begin
18824   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18825 end;
18826
18827 procedure Read_WGL_AMD_gpu_association;
18828 begin
18829   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18830   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18831   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18832   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18833   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18834   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18835   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18836   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18837   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18838 end;
18839
18840 procedure Read_WGL_EXT_display_color_table;
18841 begin
18842   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18843   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18844   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18845   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18846 end;
18847
18848 procedure Read_WGL_EXT_extensions_string;
18849 begin
18850   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18851 end;
18852
18853 procedure Read_WGL_EXT_make_current_read;
18854 begin
18855   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18856   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18857 end;
18858
18859 procedure Read_WGL_EXT_pbuffer;
18860 begin
18861   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18862   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18863   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18864   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18865   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18866 end;
18867
18868 procedure Read_WGL_EXT_pixel_format;
18869 begin
18870   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18871   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18872   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18873 end;
18874
18875 procedure Read_WGL_EXT_swap_control;
18876 begin
18877   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18878   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18879 end;
18880
18881 procedure Read_WGL_I3D_digital_video_control;
18882 begin
18883   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18884   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18885 end;
18886
18887 procedure Read_WGL_I3D_gamma;
18888 begin
18889   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18890   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18891   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18892   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18893 end;
18894
18895 procedure Read_WGL_I3D_genlock;
18896 begin
18897   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18898   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18899   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18900   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18901   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18902   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18903   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18904   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18905   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18906   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18907   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18908   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18909 end;
18910
18911 procedure Read_WGL_I3D_image_buffer;
18912 begin
18913   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18914   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18915   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18916   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18917 end;
18918
18919 procedure Read_WGL_I3D_swap_frame_lock;
18920 begin
18921   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18922   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18923   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18924   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18925 end;
18926
18927 procedure Read_WGL_I3D_swap_frame_usage;
18928 begin
18929   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18930   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18931   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18932   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18933 end;
18934
18935 procedure Read_WGL_NV_vertex_array_range;
18936 begin
18937   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18938   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18939 end;
18940
18941 procedure Read_WGL_NV_present_video;
18942 begin
18943   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18944   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18945   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18946 end;
18947
18948 procedure Read_WGL_NV_video_output;
18949 begin
18950   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18951   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18952   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18953   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18954   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18955   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18956 end;
18957
18958 procedure Read_WGL_NV_swap_group;
18959 begin
18960   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18961   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18962   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18963   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18964   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18965   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18966 end;
18967
18968 procedure Read_WGL_NV_gpu_affinity;
18969 begin
18970   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18971   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18972   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18973   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18974   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18975 end;
18976
18977 procedure Read_WGL_NV_video_capture;
18978 begin
18979   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18980   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18981   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18982   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18983   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18984 end;
18985
18986 procedure Read_WGL_NV_copy_image;
18987 begin
18988   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18989 end;
18990
18991 procedure Read_WGL_NV_DX_interop;
18992 begin
18993   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
18994   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
18995   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
18996   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
18997   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
18998   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
18999   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
19000   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
19001 end;
19002
19003
19004 procedure Read_WGL_OML_sync_control;
19005 begin
19006   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
19007   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
19008   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
19009   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
19010   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
19011   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
19012 end;
19013
19014 procedure Read_WGL_3DL_stereo_control;
19015 begin
19016   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
19017 end;
19018
19019 procedure Read_WIN_draw_range_elements;
19020 begin
19021   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
19022 end;
19023
19024 procedure Read_WIN_swap_hint;
19025 begin
19026   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
19027 end;
19028 {$ENDIF}
19029
19030
19031 procedure ReadExtensions;
19032 begin
19033   ReadOpenGLCore;
19034
19035   Read_GL_3DFX_tbuffer;
19036   Read_GL_APPLE_element_array;
19037   Read_GL_APPLE_fence;
19038   Read_GL_APPLE_vertex_array_object;
19039   Read_GL_APPLE_vertex_array_range;
19040   Read_GL_APPLE_texture_range;
19041   Read_GL_APPLE_vertex_program_evaluators;
19042   Read_GL_APPLE_object_purgeable;
19043   Read_GL_ARB_matrix_palette;
19044   Read_GL_ARB_multitexture;
19045   Read_GL_ARB_point_parameters;
19046   Read_GL_ARB_texture_compression;
19047   Read_GL_ARB_transpose_matrix;
19048   Read_GL_ARB_vertex_blend;
19049   Read_GL_ARB_vertex_buffer_object;
19050   Read_GL_ARB_vertex_program;
19051   Read_GL_ARB_window_pos;
19052   Read_GL_ARB_color_buffer_float;
19053   Read_GL_ARB_Shader_Objects;
19054   Read_GL_ARB_occlusion_query;
19055   Read_GL_ARB_draw_instanced;
19056   Read_GL_ARB_framebuffer_object;
19057   Read_GL_ARB_geometry_shader4;
19058   Read_GL_ARB_instanced_arrays;
19059   Read_GL_ARB_map_buffer_range;
19060   Read_GL_ARB_texture_buffer_object;
19061   Read_GL_ARB_vertex_array_object;
19062   Read_GL_ARB_uniform_buffer_object;
19063   Read_GL_ARB_copy_buffer;
19064   Read_GL_ARB_draw_elements_base_vertex;
19065   Read_GL_ARB_provoking_vertex;
19066   Read_GL_ARB_sync;
19067   Read_GL_ARB_texture_multisample;
19068   Read_GL_ARB_draw_buffers_blend;
19069   Read_GL_ARB_sample_shading;
19070   Read_GL_ARB_shading_language_include;
19071   Read_GL_ARB_sparse_texture;
19072   Read_GL_ARB_sparse_buffer;
19073   Read_GL_ARB_blend_func_extended;
19074   Read_GL_ARB_sampler_objects;
19075   Read_GL_ARB_timer_query;
19076   Read_GL_ARB_vertex_type_2_10_10_10_rev;
19077   Read_GL_ARB_draw_indirect;
19078   Read_GL_ARB_gpu_shader_fp64;
19079   Read_GL_ARB_shader_subroutine;
19080   Read_GL_ARB_tessellation_shader;
19081   Read_GL_ARB_transform_feedback2;
19082   Read_GL_ARB_transform_feedback3;
19083   Read_GL_ARB_ES2_compatibility;
19084   Read_GL_ARB_get_program_binary;
19085   Read_GL_ARB_separate_shader_objects;
19086   Read_GL_ARB_vertex_attrib_64bit;
19087   Read_GL_ARB_viewport_array;
19088   Read_GL_ARB_cl_event;
19089   Read_GL_ARB_compute_variable_group_size;
19090   Read_GL_ARB_debug_output;
19091   Read_GL_ARB_robustness;
19092   //
19093   Read_GL_ATI_draw_buffers;
19094   Read_GL_ATI_element_array;
19095   Read_GL_ATI_envmap_bumpmap;
19096   Read_GL_ATI_fragment_shader;
19097   Read_GL_ATI_map_object_buffer;
19098   Read_GL_ATI_pn_triangles;
19099   Read_GL_ATI_separate_stencil;
19100   Read_GL_ATI_vertex_array_object;
19101   Read_GL_ATI_vertex_attrib_array_object;
19102   Read_GL_ATI_vertex_streams;
19103   Read_GL_AMD_performance_monitor;
19104   Read_GL_AMD_vertex_shader_tesselator;
19105   Read_GL_AMD_draw_buffers_blend;
19106   Read_GL_AMD_name_gen_delete;
19107   Read_GL_AMD_debug_output;
19108   Read_GL_AMD_stencil_operation_extended;
19109   Read_GL_EXT_blend_color;
19110   Read_GL_EXT_blend_func_separate;
19111   Read_GL_EXT_blend_minmax;
19112   Read_GL_EXT_color_subtable;
19113   Read_GL_EXT_compiled_vertex_array;
19114   Read_GL_EXT_convolution;
19115   Read_GL_EXT_coordinate_frame;
19116   Read_GL_EXT_copy_texture;
19117   Read_GL_EXT_cull_vertex;
19118   Read_GL_EXT_draw_range_elements;
19119   Read_GL_EXT_fog_coord;
19120   Read_GL_EXT_framebuffer_object;
19121   Read_GL_EXT_histogram;
19122   Read_GL_EXT_index_func;
19123   Read_GL_EXT_index_material;
19124   Read_GL_EXT_multi_draw_arrays;
19125   Read_GL_EXT_multisample;
19126   Read_GL_EXT_paletted_texture;
19127   Read_GL_EXT_pixel_transform;
19128   Read_GL_EXT_point_parameters;
19129   Read_GL_EXT_polygon_offset;
19130   Read_GL_EXT_secondary_color;
19131   Read_GL_EXT_stencil_two_side;
19132   Read_GL_EXT_subtexture;
19133   Read_GL_EXT_texture3D;
19134   Read_GL_EXT_texture_object;
19135   Read_GL_EXT_texture_perturb_normal;
19136   Read_GL_EXT_vertex_array;
19137   Read_GL_EXT_vertex_shader;
19138   Read_GL_EXT_vertex_weighting;
19139   Read_GL_EXT_depth_bounds_test;
19140   Read_GL_EXT_blend_equation_separate;
19141   Read_GL_EXT_stencil_clear_tag;
19142   Read_GL_EXT_framebuffer_blit;
19143   Read_GL_EXT_framebuffer_multisample;
19144   Read_GL_EXT_timer_query;
19145   Read_GL_EXT_gpu_program_parameters;
19146   Read_GL_EXT_bindable_uniform;
19147   Read_GL_EXT_draw_buffers2;
19148   Read_GL_EXT_draw_instanced;
19149   Read_GL_EXT_geometry_shader4;
19150   Read_GL_EXT_gpu_shader4;
19151   Read_GL_EXT_texture_array;
19152   Read_GL_EXT_texture_buffer_object;
19153   Read_GL_EXT_texture_integer;
19154   Read_GL_EXT_transform_feedback;
19155   Read_GL_EXT_direct_state_access;
19156   Read_GL_EXT_separate_shader_objects;
19157   Read_GL_EXT_shader_image_load_store;
19158   Read_GL_EXT_vertex_attrib_64bit;
19159   Read_GL_HP_image_transform;
19160   Read_GL_IBM_multimode_draw_arrays;
19161   Read_GL_IBM_vertex_array_lists;
19162   Read_GL_INGR_blend_func_separate;
19163   Read_GL_INTEL_parallel_arrays;
19164   Read_GL_KHR_blend_equation_advanced;
19165   Read_GL_MESA_resize_buffers;
19166   Read_GL_MESA_window_pos;
19167   Read_GL_NV_evaluators;
19168   Read_GL_NV_fence;
19169   Read_GL_NV_fragment_program;
19170   Read_GL_NV_half_float;
19171   Read_GL_NV_occlusion_query;
19172   Read_GL_NV_pixel_data_range;
19173   Read_GL_NV_point_sprite;
19174   Read_GL_NV_primitive_restart;
19175   Read_GL_NV_register_combiners;
19176   Read_GL_NV_register_combiners2;
19177   Read_GL_NV_vertex_array_range;
19178   Read_GL_NV_vertex_program;
19179   Read_GL_NV_depth_buffer_float;
19180   Read_GL_NV_framebuffer_multisample_coverage;
19181   Read_GL_NV_geometry_program4;
19182   Read_GL_NV_gpu_program4;
19183   Read_GL_NV_parameter_buffer_object;
19184   Read_GL_NV_transform_feedback;
19185   Read_GL_NV_conditional_render;
19186   Read_GL_NV_present_video;
19187   Read_GL_NV_explicit_multisample;
19188   Read_GL_NV_transform_feedback2;
19189   Read_GL_NV_video_capture;
19190   Read_GL_NV_copy_image;
19191   Read_GL_NV_shader_buffer_load;
19192   Read_GL_NV_vertex_buffer_unified_memory;
19193   Read_GL_NV_gpu_program5;
19194   Read_GL_NV_gpu_shader5;
19195   Read_GL_NV_vertex_attrib_integer_64bit;
19196   Read_GL_NV_vdpau_interop;
19197   Read_GL_NV_texture_barrier;
19198   Read_GL_NV_path_rendering;
19199   Read_GL_NV_bindless_texture;
19200   Read_GL_PGI_misc_hints;
19201   Read_GL_SGIS_detail_texture;
19202   Read_GL_SGIS_fog_function;
19203   Read_GL_SGIS_multisample;
19204   Read_GL_SGIS_pixel_texture;
19205   Read_GL_SGIS_point_parameters;
19206   Read_GL_SGIS_sharpen_texture;
19207   Read_GL_SGIS_texture4D;
19208   Read_GL_SGIS_texture_color_mask;
19209   Read_GL_SGIS_texture_filter4;
19210   Read_GL_SGIX_async;
19211   Read_GL_SGIX_flush_raster;
19212   Read_GL_SGIX_fragment_lighting;
19213   Read_GL_SGIX_framezoom;
19214   Read_GL_SGIX_igloo_interface;
19215   Read_GL_SGIX_instruments;
19216   Read_GL_SGIX_list_priority;
19217   Read_GL_SGIX_pixel_texture;
19218   Read_GL_SGIX_polynomial_ffd;
19219   Read_GL_SGIX_reference_plane;
19220   Read_GL_SGIX_sprite;
19221   Read_GL_SGIX_tag_sample_buffer;
19222   Read_GL_SGI_color_table;
19223   Read_GL_SUNX_constant_data;
19224   Read_GL_SUN_global_alpha;
19225   Read_GL_SUN_mesh_array;
19226   Read_GL_SUN_triangle_list;
19227   Read_GL_SUN_vertex;
19228
19229 {$IFDEF DGL_WIN}
19230   Read_WGL_ARB_buffer_region;
19231   Read_WGL_ARB_extensions_string;
19232   Read_WGL_ARB_make_current_read;
19233   Read_WGL_ARB_pbuffer;
19234   Read_WGL_ARB_pixel_format;
19235   Read_WGL_ARB_pixel_format_float;
19236   Read_WGL_ARB_render_texture;
19237   Read_WGL_ARB_create_context;
19238   Read_WGL_AMD_gpu_association;
19239   Read_WGL_EXT_display_color_table;
19240   Read_WGL_EXT_extensions_string;
19241   Read_WGL_EXT_make_current_read;
19242   Read_WGL_EXT_pbuffer;
19243   Read_WGL_EXT_pixel_format;
19244   Read_WGL_EXT_swap_control;
19245   Read_WGL_I3D_digital_video_control;
19246   Read_WGL_I3D_gamma;
19247   Read_WGL_I3D_genlock;
19248   Read_WGL_I3D_image_buffer;
19249   Read_WGL_I3D_swap_frame_lock;
19250   Read_WGL_I3D_swap_frame_usage;
19251   Read_WGL_NV_vertex_array_range;
19252   Read_WGL_NV_present_video;
19253   Read_WGL_NV_video_output;
19254   Read_WGL_NV_swap_group;
19255   Read_WGL_NV_gpu_affinity;
19256   Read_WGL_NV_video_capture;
19257   Read_WGL_NV_copy_image;
19258   Read_WGL_NV_DX_interop;
19259   Read_WGL_OML_sync_control;
19260   Read_WGL_3DL_stereo_control;
19261
19262   Read_WIN_draw_range_elements;
19263   Read_WIN_swap_hint;
19264 {$ENDIF}
19265
19266   ExtensionsRead := True;
19267 end;
19268
19269 // =============================================================================
19270 //  ReadCoreVersion
19271 // =============================================================================
19272
19273 procedure ReadCoreVersion;
19274 var
19275   AnsiBuffer: AnsiString;
19276   Buffer: String;
19277   MajorVersion, MinorVersion: Integer;
19278
19279   procedure TrimAndSplitVersionString(Buffer: String; out Max, Min: Integer);
19280     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19281     // at least however "Major.Minor".
19282   var
19283     Separator: Integer;
19284   begin
19285     try
19286       // There must be at least one dot to separate major and minor version number.
19287       Separator := Pos('.', Buffer);
19288       // At least one number must be before and one after the dot.
19289       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19290       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19291       begin
19292         // OK, it's a valid version string. Now remove unnecessary parts.
19293         Dec(Separator);
19294         // Find last non-numeric character before version number.
19295         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19296           Dec(Separator);
19297         // Delete leading characters which do not belong to the version string.
19298         Delete(Buffer, 1, Separator);
19299         Separator := Pos('.', Buffer) + 1;
19300         // Find first non-numeric character after version number
19301         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19302           Inc(Separator);
19303         // delete trailing characters not belonging to the version string
19304         Delete(Buffer, Separator, 255);
19305         // Now translate the numbers.
19306         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19307         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19308         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19309       end
19310       else
19311         Abort;
19312     except
19313       Min := 0;
19314       Max := 0;
19315     end;
19316   end;
19317
19318
19319 begin
19320   // determine version of implementation
19321   // GL
19322   if not Assigned(@glGetString) then
19323     glGetString := dglGetProcAddress('glGetString');
19324
19325   AnsiBuffer := glGetString(GL_VERSION);
19326   Buffer := String(AnsiBuffer);
19327
19328   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19329
19330   GL_VERSION_1_0 := True;
19331   GL_VERSION_1_1 := False;
19332   GL_VERSION_1_2 := False;
19333   GL_VERSION_1_3 := False;
19334   GL_VERSION_1_4 := False;
19335   GL_VERSION_1_5 := False;
19336   GL_VERSION_2_0 := False;
19337   GL_VERSION_2_1 := False;
19338   GL_VERSION_3_0 := False;
19339   GL_VERSION_3_1 := False;
19340   GL_VERSION_3_2 := False;
19341   GL_VERSION_3_3 := False;
19342   GL_VERSION_4_0 := False;
19343   GL_VERSION_4_1 := False;
19344   GL_VERSION_4_2 := False;
19345   GL_VERSION_4_3 := False;
19346   GL_VERSION_4_4 := False;
19347   GL_VERSION_4_5 := False;
19348
19349   if MajorVersion = 1 then
19350   begin
19351     if MinorVersion >= 1 then
19352       GL_VERSION_1_1 := True;
19353     if MinorVersion >= 2 then
19354       GL_VERSION_1_2 := True;
19355     if MinorVersion >= 3 then
19356       GL_VERSION_1_3 := True;
19357     if MinorVersion >= 4 then
19358       GL_VERSION_1_4 := True;
19359     if MinorVersion >= 5 then
19360       GL_VERSION_1_5 := True;
19361   end;
19362
19363   if MajorVersion >= 2 then
19364   begin
19365     GL_VERSION_1_1 := True;
19366     GL_VERSION_1_2 := True;
19367     GL_VERSION_1_3 := True;
19368     GL_VERSION_1_4 := True;
19369     GL_VERSION_1_5 := True;
19370     GL_VERSION_2_0 := True;
19371
19372     if MinorVersion >= 1 then
19373       GL_VERSION_2_1 := True;
19374   end;
19375
19376   if MajorVersion >= 3 then
19377   begin
19378     GL_VERSION_2_1 := True;
19379     GL_VERSION_3_0 := True;
19380
19381     if MinorVersion >= 1 then
19382       GL_VERSION_3_1 := True;
19383     if MinorVersion >= 2 then
19384       GL_VERSION_3_2 := True;
19385     if MinorVersion >= 3 then
19386       GL_VERSION_3_3 := True;
19387   end;
19388
19389   if MajorVersion >= 4 then
19390   begin
19391     GL_VERSION_3_1 := True;
19392     GL_VERSION_3_2 := True;
19393     GL_VERSION_3_3 := True;
19394     GL_VERSION_4_0 := True;
19395
19396     if MinorVersion >= 1 then
19397       GL_VERSION_4_1 := True;
19398     if MinorVersion >= 2 then
19399       GL_VERSION_4_2 := True;
19400     if MinorVersion >= 3 then
19401       GL_VERSION_4_3 := True;
19402     if MinorVersion >= 4 then
19403       GL_VERSION_4_4 := True;
19404     if MinorVersion >= 4 then
19405       GL_VERSION_4_5:= True;
19406   end;
19407
19408   // GLU
19409   GLU_VERSION_1_1 := False;
19410   GLU_VERSION_1_2 := False;
19411   GLU_VERSION_1_3 := False;
19412
19413   if Assigned(gluGetString) then begin
19414     AnsiBuffer := gluGetString(GLU_VERSION);
19415     Buffer := String(AnsiBuffer);
19416
19417     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19418
19419     GLU_VERSION_1_1 := True;
19420
19421     if MinorVersion >= 2 then
19422       GLU_VERSION_1_2 := True;
19423
19424     if MinorVersion >= 3 then
19425       GLU_VERSION_1_3 := True;
19426   end;
19427 end;
19428
19429
19430 // =============================================================================
19431 //  ReadImplementationProperties
19432 // =============================================================================
19433
19434 procedure ReadImplementationProperties;
19435 var
19436   Buffer: Ansistring;
19437 begin
19438   ReadCoreVersion;
19439
19440   // Check all extensions
19441   Buffer := Int_GetExtensionString;
19442
19443   // 3DFX
19444   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19445   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19446   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19447
19448   // APPLE
19449   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19450   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19451   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19452   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19453   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19454   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19455   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19456   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19457   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19458   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19459   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19460   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19461   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19462   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19463   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19464
19465   // ARB
19466   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19467   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19468   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19469   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19470   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19471   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19472   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19473   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19474   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19475   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19476   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19477   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19478   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19479   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19480   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19481   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19482   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19483   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19484   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19485   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19486   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19487   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19488   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19489   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19490   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19491   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19492   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19493   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19494   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19495   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19496   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19497   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19498   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19499   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19500   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19501   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19502   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19503   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19504   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19505   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19506   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19507   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19508   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19509   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19510   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19511   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19512   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19513   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19514   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19515   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19516   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19517   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19518   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19519   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19520   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19521   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19522   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19523   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19524   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19525   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19526   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19527   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19528   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19529   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19530   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19531   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19532   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19533   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19534   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19535   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19536   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19537   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19538   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19539   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19540   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19541   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19542   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19543   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19544   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19545   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19546   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19547   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19548   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19549   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19550   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19551   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19552   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19553   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19554   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19555   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19556   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19557   GL_ARB_compute_variable_group_size := Int_CheckExtension(Buffer, 'GL_ARB_compute_variable_group_size');
19558
19559   // GL 4.2
19560   GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19561   GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19562   GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19563   GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19564   GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19565   GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19566   GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19567   GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19568   GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19569   GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19570   GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19571
19572   // GL 4.3
19573   GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19574   GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19575   GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19576   GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19577   GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19578   GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19579   GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19580   GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19581   GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19582   GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19583   GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19584   GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19585   GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19586   GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19587   GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19588   GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19589   GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19590   GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19591   GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19592   GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19593   GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19594   GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19595   GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19596   GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19597   GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19598   GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19599
19600   // GL 4.4
19601   GL_ARB_buffer_storage := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19602   GL_ARB_clear_texture := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19603   GL_ARB_enhanced_layouts := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19604   GL_ARB_multi_bind := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19605   GL_ARB_query_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19606   GL_ARB_texture_mirror_clamp_to_edge:= Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19607   GL_ARB_texture_stencil8 := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19608   GL_ARB_vertex_type_10f_11f_11f_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19609   GL_ARB_bindless_texture := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
19610   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19611
19612   // GL 4.5
19613   GL_ARB_clip_control := Int_CheckExtension(Buffer, 'GL_ARB_clip_control');
19614   GL_ARB_cull_distance := Int_CheckExtension(Buffer, 'GL_ARB_cull_distance');
19615   GL_ARB_ES3_1_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_1_compatibility');
19616   GL_ARB_conditional_render_inverted := Int_CheckExtension(Buffer, 'GL_ARB_conditional_render_inverted');
19617   GL_KHR_context_flush_control := Int_CheckExtension(Buffer, 'GL_KHR_context_flush_control');
19618   GL_ARB_derivative_control := Int_CheckExtension(Buffer, 'GL_ARB_derivative_control');
19619   GL_ARB_direct_state_access := Int_CheckExtension(Buffer, 'GL_ARB_direct_state_access');
19620   GL_ARB_get_texture_sub_image := Int_CheckExtension(Buffer, 'GL_ARB_get_texture_sub_image');
19621   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19622   GL_ARB_shader_texture_image_samples := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_image_samples');
19623   GL_ARB_texture_barrier := Int_CheckExtension(Buffer, 'GL_ARB_texture_barrier');
19624
19625   // ATI/AMD
19626   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19627   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19628   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19629   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19630   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19631   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19632   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19633   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19634   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19635   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19636   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19637   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19638   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19639   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19640   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19641   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19642   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19643   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19644   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19645   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19646   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19647   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19648   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19649   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19650   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19651   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19652   // 4.3
19653   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19654   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19655   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19656   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19657   GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19658
19659   // EXT
19660   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19661   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19662   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19663   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19664   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19665   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19666   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19667   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19668   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19669   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19670   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19671   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19672   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19673   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19674   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19675   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19676   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19677   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19678   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19679   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19680   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19681   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19682   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19683   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19684   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19685   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19686   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19687   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19688   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19689   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19690   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19691   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19692   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19693   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19694   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19695   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19696   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19697   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19698   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19699   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19700   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19701   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19702   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19703   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19704   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19705   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19706   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19707   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19708   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19709   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19710   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19711   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19712   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19713   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19714   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19715   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19716   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19717   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19718   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19719   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19720   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19721   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19722   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19723   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19724   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19725   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19726   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19727   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19728   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19729   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19730   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19731   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19732   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19733   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19734   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19735   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19736   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19737   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19738   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19739   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19740   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19741   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19742   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19743   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19744   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19745   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19746   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19747   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19748   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19749   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19750   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19751   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19752   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19753   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19754
19755   // HP
19756   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19757   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19758   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19759   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19760
19761   // IBM
19762   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19763   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19764   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19765   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19766   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19767
19768   // INGR
19769   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19770   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19771   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19772   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19773
19774   // INTEL
19775   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19776   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19777
19778   // MESA
19779   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19780   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19781
19782   // Khronos
19783   // 4.5
19784   GL_KHR_blend_equation_advanced := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced');
19785   GL_KHR_blend_equation_advanced_coherent := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
19786   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19787   GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior');
19788
19789   // NVIDIA
19790   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19791   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19792   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19793   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19794   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19795   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19796   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19797   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19798   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19799   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19800   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19801   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19802   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19803   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19804   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19805   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19806   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19807   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19808   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19809   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19810   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19811   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19812   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19813   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19814   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19815   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19816   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19817   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19818   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19819   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19820   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19821   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19822   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19823   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19824   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19825   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19826   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19827   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19828   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19829   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19830   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19831   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19832   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19833   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19834   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19835   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19836   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19837   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19838   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19839   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19840   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19841   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19842   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19843   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19844   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19845   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19846   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19847   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19848   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19849   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19850   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19851   // 4.3
19852   GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19853   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19854   GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19855
19856   // OML
19857   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19858   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19859   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19860
19861   // PGI
19862   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19863   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19864
19865   // REND
19866   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19867
19868   // S3
19869   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19870
19871   // SGIS
19872   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19873   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19874   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19875   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19876   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19877   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19878   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19879   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19880   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19881   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19882   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19883   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19884   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19885   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19886   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19887
19888   // SGIX
19889   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19890   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19891   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19892   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19893   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19894   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19895   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19896   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19897   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19898   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19899   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19900   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19901   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19902   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19903   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19904   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19905   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19906   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19907   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19908   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19909   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19910   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19911   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19912   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19913   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19914   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19915   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19916   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19917   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19918   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19919   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19920   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19921   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19922   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19923   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19924   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19925   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19926   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19927   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19928   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19929   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19930   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19931
19932   // SGI
19933   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19934   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19935   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19936   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19937
19938   // SUN
19939   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19940   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19941   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19942   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19943   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19944   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19945   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19946
19947   // WIN
19948   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19949   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19950
19951   {$IFDEF DGL_WIN}
19952   // WGL
19953   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19954   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19955   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19956   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19957   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19958   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19959   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19960   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19961   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19962   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19963   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19964   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19965   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19966   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19967   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19968   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19969   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19970   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19971   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19972   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19973   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19974   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19975   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19976   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19977   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19978   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19979   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19980   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19981   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19982   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19983   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19984   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19985   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19986   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19987   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19988   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19989   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19990   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19991   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19992   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19993   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19994   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19995   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
19996   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
19997   WGL_ARB_context_flush_control := Int_CheckExtension(Buffer, 'WGL_ARB_context_flush_control');
19998   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
19999   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
20000   {$ENDIF}
20001
20002   {$IFDEF DGL_LINUX}
20003   // GLX
20004   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
20005   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
20006   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
20007   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
20008   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
20009   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
20010   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
20011   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
20012   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
20013   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
20014   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
20015   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
20016   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
20017   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
20018   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
20019   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
20020   GLX_ARB_context_flush_control := Int_CheckExtension(Buffer, 'GLX_ARB_context_flush_control');
20021   {$ENDIF}
20022
20023   ImplementationRead := True;
20024 end;
20025
20026 {$IFDEF DGL_WIN}
20027 // =============================================================================
20028 // RaiseLastOSError
20029 // =============================================================================
20030 // Needed for compatibility with older Delphiversions
20031 // =============================================================================
20032
20033 procedure RaiseLastOSError;
20034 begin
20035 {$IFDEF FPC}
20036   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
20037 {$ELSE}
20038   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
20039     SysUtils.RaiseLastWin32Error;
20040   {$ELSE}
20041     SysUtils.RaiseLastOSError;
20042   {$ENDIF}
20043 {$ENDIF}
20044 end;
20045
20046 // =============================================================================
20047 // CreateRenderingContext
20048 // =============================================================================
20049
20050 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20051 const
20052   OBJ_MEMDC = 10;
20053   OBJ_ENHMETADC = 12;
20054   OBJ_METADC = 4;
20055   PFD_DOUBLEBUFFER = $00000001;
20056   PFD_STEREO = $00000002;
20057   PFD_DRAW_TO_WINDOW = $00000004;
20058   PFD_DRAW_TO_BITMAP = $00000008;
20059   PFD_SUPPORT_GDI = $00000010;
20060   PFD_SUPPORT_OPENGL = $00000020;
20061   PFD_TYPE_RGBA = 0;
20062   PFD_MAIN_PLANE = 0;
20063   PFD_OVERLAY_PLANE = 1;
20064   PFD_UNDERLAY_PLANE = LongWord(-1);
20065   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20066 var
20067   PFDescriptor: TPixelFormatDescriptor;
20068   PixelFormat: Integer;
20069   AType: DWORD;
20070 begin
20071   if GL_LibHandle = nil then
20072     InitOpenGL;
20073
20074   FillChar(PFDescriptor{%H-}, SizeOf(PFDescriptor), 0);
20075
20076   with PFDescriptor do
20077   begin
20078     nSize := SizeOf(PFDescriptor);
20079     nVersion := 1;
20080     dwFlags := PFD_SUPPORT_OPENGL;
20081
20082     AType := GetObjectType(DC);
20083
20084     if AType = 0 then
20085       RaiseLastOSError;
20086
20087     if AType in MemoryDCs then
20088       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20089     else
20090       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20091
20092     if opDoubleBuffered in Options then
20093       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20094
20095     if opGDI in Options then
20096       dwFlags := dwFlags or PFD_SUPPORT_GDI;
20097
20098     if opStereo in Options then
20099       dwFlags := dwFlags or PFD_STEREO;
20100
20101     iPixelType := PFD_TYPE_RGBA;
20102     cColorBits := ColorBits;
20103     cDepthBits := zBits;
20104     cStencilBits := StencilBits;
20105     cAccumBits := AccumBits;
20106     cAuxBuffers := AuxBuffers;
20107
20108     if Layer = 0 then
20109       iLayerType := PFD_MAIN_PLANE
20110     else
20111     if Layer > 0 then
20112       iLayerType := PFD_OVERLAY_PLANE
20113     else
20114       iLayerType := Byte(PFD_UNDERLAY_PLANE);
20115   end;
20116
20117   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20118
20119   if PixelFormat = 0 then
20120     RaiseLastOSError;
20121
20122   if GetPixelFormat(DC) <> PixelFormat then
20123     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20124       RaiseLastOSError;
20125
20126   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20127
20128   Result := wglCreateContext(DC);
20129
20130   if Result = 0 then
20131     RaiseLastOSError
20132   else
20133     LastPixelFormat := 0;
20134 end;
20135
20136 // =============================================================================
20137 // CreateRenderingContextVersion
20138 // =============================================================================
20139 //  Creates a context for the more recent OpenGL versions (3.0) and up
20140 //  For that we first need to get a normal GL context for getting the
20141 //  function pointer to wglCreateContextAttribsARB first
20142 // =============================================================================
20143 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20144 const
20145   OBJ_MEMDC          = 10;
20146   OBJ_ENHMETADC      = 12;
20147   OBJ_METADC         = 4;
20148   PFD_DOUBLEBUFFER   = $00000001;
20149   PFD_STEREO         = $00000002;
20150   PFD_DRAW_TO_WINDOW = $00000004;
20151   PFD_DRAW_TO_BITMAP = $00000008;
20152   PFD_SUPPORT_GDI    = $00000010;
20153   PFD_SUPPORT_OPENGL = $00000020;
20154   PFD_TYPE_RGBA      = 0;
20155   PFD_MAIN_PLANE     = 0;
20156   PFD_OVERLAY_PLANE  = 1;
20157   PFD_UNDERLAY_PLANE = LongWord(-1);
20158   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20159 var
20160   PFDescriptor : TPixelFormatDescriptor;
20161   PixelFormat  : Integer;
20162   AType        : DWORD;
20163   LegacyRC     : HGLRC;
20164   Attribs      : array of Integer;
20165 begin
20166   if GL_LibHandle = nil then
20167         InitOpenGL;
20168
20169   if not Assigned(GL_LibHandle) then
20170         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
20171
20172   FillChar(PFDescriptor{%H-}, SizeOf(PFDescriptor), 0);
20173
20174   with PFDescriptor do
20175     begin
20176       nSize    := SizeOf(PFDescriptor);
20177       nVersion := 1;
20178       dwFlags  := PFD_SUPPORT_OPENGL;
20179       AType    := GetObjectType(DC);
20180
20181       if AType = 0 then
20182         RaiseLastOSError;
20183
20184       if AType in MemoryDCs then
20185         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20186       else
20187         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20188
20189       if opDoubleBuffered in Options then
20190         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20191
20192       if opGDI in Options then
20193         dwFlags := dwFlags or PFD_SUPPORT_GDI;
20194
20195       if opStereo in Options then
20196         dwFlags := dwFlags or PFD_STEREO;
20197
20198       iPixelType   := PFD_TYPE_RGBA;
20199       cColorBits   := ColorBits;
20200       cDepthBits   := zBits;
20201       cStencilBits := StencilBits;
20202       cAccumBits   := AccumBits;
20203       cAuxBuffers  := AuxBuffers;
20204
20205       if Layer = 0 then
20206         iLayerType := PFD_MAIN_PLANE
20207       else
20208         if Layer > 0 then
20209           iLayerType := PFD_OVERLAY_PLANE
20210         else
20211           iLayerType := Byte(PFD_UNDERLAY_PLANE);
20212     end;
20213
20214   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20215
20216   if PixelFormat = 0 then
20217         RaiseLastOSError;
20218
20219   if GetPixelFormat(DC) <> PixelFormat then
20220         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20221                 RaiseLastOSError;
20222
20223   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20224
20225   // Create legacy render context first for we need function pointers to
20226   // create new OpenGL render contexts
20227   LegacyRC := wglCreateContext(DC);
20228   wglMakeCurrent(DC, LegacyRC);
20229
20230   // Set attributes to describe our requested context
20231   SetLength(Attribs, 5);
20232   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
20233   Attribs[1] := MajorVersion;
20234   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
20235   Attribs[3] := MinorVersion;
20236
20237   // Add context flag for forward compatible context
20238   //  Forward compatible means no more support for legacy functions like
20239   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
20240   if ForwardCompatible then
20241     begin
20242       SetLength(Attribs, Length(Attribs)+2);
20243       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
20244       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
20245     end;
20246
20247   // Attribute flags must be finalized with a zero
20248   Attribs[High(Attribs)] := 0;
20249
20250   // Get function pointer for new context creation function
20251   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20252
20253   if not Assigned(wglCreateContextAttribsARB) then
20254     begin
20255       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20256       wglDeleteContext(LegacyRC);
20257       exit;
20258     end;
20259
20260   // Create context
20261   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20262
20263   if Result = 0 then
20264     begin
20265       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20266       wglDeleteContext(LegacyRC);
20267       exit;
20268     end;
20269
20270   wglDeleteContext(LegacyRC);
20271
20272   if Result = 0 then
20273         RaiseLastOSError
20274   else
20275         LastPixelFormat := 0;
20276 end;
20277
20278 // =============================================================================
20279 // DestroyRenderingContext
20280 // =============================================================================
20281
20282 procedure DestroyRenderingContext(RC: HGLRC);
20283 begin
20284   wglDeleteContext(RC);
20285 end;
20286
20287
20288 // =============================================================================
20289 // ActivateRenderingContext
20290 // =============================================================================
20291
20292 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20293 begin
20294   Assert((DC <> 0), 'DC must not be 0');
20295   Assert((RC <> 0), 'RC must not be 0');
20296
20297   wglMakeCurrent(DC, RC);
20298
20299   {$ifdef DGL_TINY_HEADER}
20300   ReadCoreVersion;
20301   {$else}
20302   ReadImplementationProperties;
20303
20304   if (loadext) then
20305     ReadExtensions;
20306   {$endif}
20307 end;
20308
20309 // =============================================================================
20310 // DeactivateRenderingContext
20311 // =============================================================================
20312
20313 procedure DeactivateRenderingContext;
20314 begin
20315   wglMakeCurrent(0, 0);
20316 end;
20317 {$ENDIF}
20318
20319
20320 initialization
20321
20322 {$IFDEF CPU386}
20323   Set8087CW($133F);
20324 {$ENDIF}
20325
20326 finalization
20327
20328 end.
20329