Added missing defines for GLX_ARB_robustness_application_isolation / GLX_ARB_robustne...
[LazOpenGLCore.git] / dglOpenGL.pas
1 { ============================================================================
2
3        OpenGL 4.5 - Headertranslation
4        Version 4.5
5        Date : 2014/08/23
6
7        Supported environments and targets :
8         - (Win32) Delphi 4 and up
9         - (Win32, Win64) Delphi XE2
10         - (Win32, Win64, Linux, MacOSX) FreePascal (1.9.3 and up)
11
12 ==============================================================================
13
14        Copyright (C) DGL-OpenGL-Portteam
15        All Rights Reserved
16
17        Obtained through:
18        Bitbucket source repository - https://bitbucket.org/saschawillems/dglopengl
19        Delphi OpenGL Community(DGL) - www.delphigl.com
20
21        Converted and maintained by DGL's OpenGL-Portteam :
22          - Sascha Willems             - http://www.saschawillems.de
23          - Steffen Xonna (Lossy eX)   - http://www.dev-center.de
24        Additional input :
25          - Andrey Gruzdev (Mac OS X patch for XE2 / FPC)
26          - Lars Middendorf
27          - Martin Waldegger (Mars)
28          - Benjamin Rosseaux (BeRo)   - http://www.0ok.de
29        Additional thanks:
30            sigsegv (libdl.so)
31
32 ==============================================================================
33
34   You may retrieve the latest version of this file at the Delphi OpenGL
35   Community home page, located at http://www.delphigl.com/
36
37   The contents of this file are used with permission, subject to
38   the Mozilla Public License Version 1.1 (the "License"); you may
39   not use this file except in compliance with the License. You may
40   obtain a copy of the License at
41   http://www.mozilla.org/MPL/MPL-1.1.html
42
43   Software distributed under the License is distributed on an
44   "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
45   implied. See the License for the specific language governing
46   rights and limitations under the License.
47
48 ==============================================================================
49
50
51   History : see readme.md
52
53
54 ============================================================================== }
55
56 {$define DGL_DEPRECATED}
57 {
58   This define defines if the header should use deprecated ARB stuff or not.
59   per Default the Header use deprecated Stuff.
60 }
61
62
63 {.$define DGL_TINY_HEADER}
64 {
65   If you enable the define DGL_TINY_HEADER no function automatically will be loaded if you
66   call ActivateRenderingContext. This may some bit faster and the smart linker can delete
67   all non used functions. This will reduce the filesize of your binary file. But in this
68   case you have to load the functions by yourself. There are two ways to do this.
69
70   1. You can load whole extension by calling the func Read_Extensionname. But if you do
71      this it's possible to load functions you dont use. So you have the same "problem"
72      like before. But it's only an bit smaler.
73      > Read_GL_ARB_multitexture;
74
75   2. You are able to load only the functions you exactly need. In this case you are able
76      to use the variables of the dglOpenGL.pas. So you only need to load the functions
77      and you can use the header like before.
78      To do this you have to created and activated an opengl context and than you can load
79      the needed functions.
80      > ActivateRenderingContext(fDC, fRC);
81      > glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
82      > glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
83
84      So only the function "glActiveTextureARB" and "glMultiTexCoord2fARB" will be loaded.
85
86
87   Please notice that the extension variables won't be loaded if this define is active. But
88   you can call dglCheckExtension to check if any extension exists. You can assign them to
89   the variables of the dglOpenGL.pas so all code they use this will find them.
90
91   > GL_ARB_shading_language_100 := dglCheckExtension('GL_ARB_shading_language_100');
92 }
93
94
95 unit dglOpenGL;
96
97 interface
98
99 // defines to configure freepascal
100 {$IFDEF FPC}
101   {$MODE Delphi}
102
103   {$IFNDEF WINDOWS}
104     {$LINKLIB c}
105   {$ENDIF}
106 {$ENDIF}
107
108 // known delphi versions
109 {$IFNDEF FPC}       // if freepascal isnt defined
110   {$IFDEF VER140}   // Delphi 6
111     {$DEFINE DELPHI6_AND_DOWN}
112   {$ENDIF}
113
114   {$IFDEF VER130}   // Delphi 5
115     {$DEFINE DELPHI6_AND_DOWN}
116   {$ENDIF}
117
118   {$IFDEF VER120}   // Delphi 4
119     {$DEFINE DELPHI6_AND_DOWN}
120   {$ENDIF}
121
122   {$IFDEF VER110}   // C++ Builder 3
123     {$DEFINE DELPHI6_AND_DOWN}
124   {$ENDIF}
125
126   {$IFDEF VER100}   // Delphi 3
127     {$DEFINE DELPHI6_AND_DOWN}
128   {$ENDIF}
129 {$ENDIF}
130
131 // Options for Delphi < 5
132 {$IFDEF DELPHI6_AND_DOWN}
133   {$A+}
134 {$ELSE}
135   {$A4}
136 {$ENDIF}
137
138 // generell options
139 {$H+,O+,X+}
140
141 // detecting Windows
142 {$IFDEF Win32}          // Delphi and fpc of 32 Bit Windows
143   {$DEFINE DGL_WIN}
144 {$ENDIF}
145
146 {$IFDEF Win64}          // Delphi and fpc of 32 Bit Windows
147   {$DEFINE DGL_WIN}
148 {$ENDIF}
149
150 // detecting Linux
151 {$IFDEF linux}          // Linux
152   {$DEFINE DGL_LINUX}
153 {$ENDIF}
154
155 {$IFDEF DARWIN}  // Mac OS X and FPC
156    {$DEFINE DGL_MAC}
157 {$ENDIF}
158
159 {$IFDEF DELPHI}  // Mac OS X add Delphi
160 {$IFDEF MACOS}
161    {$DEFINE DGL_MAC}
162 {$ENDIF}
163 {$ENDIF}
164
165
166 // detecting 64 Bit CPU
167 {$IFDEF CPU64}          // fpc on 64 bit cpus
168   {$DEFINE DGL_64BIT}   // dgl define for 64 bit
169 {$ENDIF}
170
171
172
173 uses
174   {$IFDEF FPC}{$IFDEF DARWIN}dynlibs,{$ENDIF}{$ENDIF}  // LoadLibrary functions
175   SysUtils
176   {$IFDEF DGL_WIN}, Windows{$ENDIF}
177   {$IFDEF DGL_LINUX}, X, XLib, XUtil{$ENDIF}
178   ;
179
180 type
181   // Needed for Delphi 6 and less (defined in system.pas for Delphi 7)
182   PPointer = ^Pointer;
183   PCardinal = ^Cardinal;
184
185   GLenum = Cardinal;
186   GLboolean = BYTEBOOL;
187   GLbitfield = Cardinal;
188   GLbyte = Shortint;
189   GLshort = SmallInt;
190   GLint = Integer;
191   GLsizei = Integer;
192   GLubyte = Byte;
193   GLushort = Word;
194   GLuint = Cardinal;
195   GLfloat = Single;
196   GLclampf = Single;
197   GLdouble = Double;
198   GLclampd = Double;
199   GLvoid = Pointer;
200   GLint64 = Int64;
201   GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
202
203   TGLenum = GLenum;
204   TGLboolean = GLboolean;
205   TGLbitfield = GLbitfield;
206   TGLbyte = GLbyte;
207   TGLshort = GLshort;
208   TGLint = GLint;
209   TGLsizei = GLsizei;
210   TGLubyte = GLubyte;
211   TGLushort = GLushort;
212   TGLuint = GLuint;
213   TGLfloat = GLfloat;
214   TGLclampf = GLclampf;
215   TGLdouble = GLdouble;
216   TGLclampd = GLclampd;
217   TGLvoid = GLvoid;
218   TGLint64 = GLint64;
219   TGLuint64 = GLuint64;
220
221   PGLboolean = ^GLboolean;
222   PGLbyte = ^GLbyte;
223   PGLshort = ^GLshort;
224   PGLint = ^GLint;
225   PGLsizei = ^GLsizei;
226   PGLubyte = ^GLubyte;
227   PGLushort = ^GLushort;
228   PGLuint = ^GLuint;
229   PGLclampf = ^GLclampf;
230   PGLfloat = ^GLfloat;
231   PGLdouble = ^GLdouble;
232   PGLclampd = ^GLclampd;
233   PGLenum = ^GLenum;
234   PGLvoid = Pointer;
235   PPGLvoid = ^PGLvoid;
236   PGLint64 = ^GLint64;
237   PGLuint64 = ^GLuint64;
238
239   // GL_NV_half_float
240   GLhalfNV = WORD;
241   TGLhalfNV = GLhalfNV;
242   PGLhalfNV = ^GLhalfNV;
243
244   // GL_ARB_shader_objects
245   PGLHandleARB = ^GLHandleARB;
246   GLHandleARB = Integer;
247   GLcharARB = AnsiChar;
248   PGLcharARB = PAnsiChar;
249   PPGLcharARB = ^PGLcharARB;
250
251   // GL_VERSION_1_5
252   GLintptr = GLint;
253   PGLintptr = ^GLintptr;
254   GLsizeiptr = GLsizei;
255
256   // GL_ARB_vertex_buffer_object
257   GLintptrARB = GLint;
258   GLsizeiptrARB = GLsizei;
259
260   // GL_VERSION_2_0
261   GLHandle = Integer;
262   PGLchar = PAnsiChar;
263   PPGLchar = ^PGLChar;
264
265   // GL_EXT_timer_query
266   GLint64EXT = Int64;
267   TGLint64EXT = GLint64EXT;
268   PGLint64EXT = ^GLint64EXT;
269
270   GLuint64EXT = GLuint64;
271   TGLuint64EXT = GLuint64EXT;
272   PGLuint64EXT = ^GLuint64EXT;
273
274   // WGL_ARB_pbuffer
275   HPBUFFERARB = THandle;
276
277   // WGL_EXT_pbuffer
278   HPBUFFEREXT = THandle;
279
280   // WGL_NV_present_video
281   PHVIDEOOUTPUTDEVICENV = ^HVIDEOOUTPUTDEVICENV;
282   HVIDEOOUTPUTDEVICENV = THandle;
283
284   // WGL_NV_video_output
285   PHPVIDEODEV = ^HPVIDEODEV;
286   HPVIDEODEV = THandle;
287
288   // WGL_NV_gpu_affinity
289   PHPGPUNV = ^HPGPUNV;
290   PHGPUNV = ^HGPUNV;
291
292   // WGL_NV_video_capture
293   HVIDEOINPUTDEVICENV = THandle;
294   PHVIDEOINPUTDEVICENV = ^HVIDEOINPUTDEVICENV;
295
296   HPGPUNV = THandle;
297   HGPUNV = THandle;
298
299   // GL_ARB_sync
300   GLsync = Pointer;
301
302   // GL_ARB_cl_event
303   { These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event }
304   _cl_context = record end;
305   _cl_event = record end;
306   p_cl_context = ^_cl_context;
307   p_cl_event = ^_cl_event;
308
309   // GL_ARB_debug_output
310   TglDebugProcARB = procedure (source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
311
312   // GL_AMD_debug_output
313   TglDebugProcAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; const message_: PGLchar; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
314
315         // (4.3) GL_KHR_debug
316   TglDebugProc = procedure(source : GLEnum; type_ : GLEnum; id : GLUInt; severity : GLUInt; length : GLsizei; const message_ : PGLCHar; userParam : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
317
318   // GL_NV_vdpau_interop
319   GLvdpauSurfaceNV = GLintptr;
320   PGLvdpauSurfaceNV = ^GLvdpauSurfaceNV;
321
322
323   // GLX
324   {$IFDEF DGL_LINUX}
325     GLXContext = Pointer;
326     GLXContextID = TXID;
327     GLXDrawable = TXID;
328     GLXFBConfig = Pointer;
329     GLXPbuffer = TXID;
330     GLXPixmap = TXID;
331     GLXWindow = TXID;
332
333     Window = TXID;
334     Colormap = TXID;
335     Pixmap = TXID;
336     Font = TXID;
337   {$ENDIF}
338
339   // Datatypes corresponding to GL's types TGL(name)(type)(count)
340   TGLVectorub2 = array[0..1] of GLubyte;
341   TGLVectori2  = array[0..1] of GLint;
342   TGLVectorf2  = array[0..1] of GLfloat;
343   TGLVectord2  = array[0..1] of GLdouble;
344   TGLVectorp2  = array[0..1] of Pointer;
345
346   TGLVectorub3 = array[0..2] of GLubyte;
347   TGLVectori3  = array[0..2] of GLint;
348   TGLVectorf3  = array[0..2] of GLfloat;
349   TGLVectord3  = array[0..2] of GLdouble;
350   TGLVectorp3  = array[0..2] of Pointer;
351
352   TGLVectorub4 = array[0..3] of GLubyte;
353   TGLVectori4  = array[0..3] of GLint;
354   TGLVectorf4  = array[0..3] of GLfloat;
355   TGLVectord4  = array[0..3] of GLdouble;
356   TGLVectorp4  = array[0..3] of Pointer;
357
358   TGLArrayf4 = TGLVectorf4;
359   TGLArrayf3 = TGLVectorf3;
360   TGLArrayd3 = TGLVectord3;
361   TGLArrayi4 = TGLVectori4;
362   TGLArrayp4 = TGLVectorp4;
363
364   TGlMatrixub3 = array[0..2, 0..2] of GLubyte;
365   TGlMatrixi3  = array[0..2, 0..2] of GLint;
366   TGLMatrixf3  = array[0..2, 0..2] of GLfloat;
367   TGLMatrixd3  = array[0..2, 0..2] of GLdouble;
368
369   TGlMatrixub4 = array[0..3, 0..3] of GLubyte;
370   TGlMatrixi4  = array[0..3, 0..3] of GLint;
371   TGLMatrixf4  = array[0..3, 0..3] of GLfloat;
372   TGLMatrixd4  = array[0..3, 0..3] of GLdouble;
373
374   TGLVector3f = TGLVectorf3;
375
376   // Datatypes corresponding to OpenGL12.pas for easy porting
377   TVector3d = TGLVectord3;
378
379   TVector4i = TGLVectori4;
380   TVector4f = TGLVectorf4;
381   TVector4p = TGLVectorp4;
382
383   TMatrix4f = TGLMatrixf4;
384   TMatrix4d = TGLMatrixd4;
385
386   PGLMatrixd4 = ^TGLMatrixd4;
387   PVector4i = ^TVector4i;
388
389
390
391 {$IFDEF FPC}
392   TRect = packed record
393     Left, Top, Right, Bottom: Longint;
394   end;
395 {$ENDIF}
396
397
398   PGPU_DEVICE = ^GPU_DEVICE;
399   GPU_DEVICE = record
400     cb: DWORD;
401     DeviceName: array [0..31] of AnsiChar;
402     DeviceString: array [0..127] of AnsiChar;
403     Flags: DWORD;
404     rcVirtualScreen: TRect;
405   end;
406
407
408 type
409 {$IFDEF FPC}
410   {$IFDEF DGL_WIN}
411     PWGLSwap = ^TWGLSwap;
412     {$EXTERNALSYM _WGLSWAP}
413       _WGLSWAP = packed record
414         hdc: HDC;
415         uiFlags: UINT;
416       end;
417
418     TWGLSwap = _WGLSWAP;
419   {$EXTERNALSYM WGLSWAP}
420     WGLSWAP = _WGLSWAP;
421
422   {$ENDIF}
423 {$ENDIF}
424
425   // GLU types
426   TGLUNurbs = record
427   end;
428   TGLUQuadric = record
429   end;
430   TGLUTesselator = record
431   end;
432   PGLUNurbs = ^TGLUNurbs;
433   PGLUQuadric = ^TGLUQuadric;
434   PGLUTesselator = ^TGLUTesselator;
435   // backwards compatibility
436   TGLUNurbsObj = TGLUNurbs;
437   TGLUQuadricObj = TGLUQuadric;
438   TGLUTesselatorObj = TGLUTesselator;
439   TGLUTriangulatorObj = TGLUTesselator;
440   PGLUNurbsObj = PGLUNurbs;
441   PGLUQuadricObj = PGLUQuadric;
442   PGLUTesselatorObj = PGLUTesselator;
443   PGLUTriangulatorObj = PGLUTesselator;
444
445   // GLUQuadricCallback
446   TGLUQuadricErrorProc = procedure(errorCode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
447   // GLUTessCallback
448   TGLUTessBeginProc = procedure(AType: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
449   TGLUTessEdgeFlagProc = procedure(Flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
450   TGLUTessVertexProc = procedure(VertexData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
451   TGLUTessEndProc = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
452   TGLUTessErrorProc = procedure(ErrNo: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
453   TGLUTessCombineProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
454   TGLUTessBeginDataProc = procedure(AType: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
455   TGLUTessEdgeFlagDataProc = procedure(Flag: GLboolean; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
456   TGLUTessVertexDataProc = procedure(VertexData: Pointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
457   TGLUTessEndDataProc = procedure(UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
458   TGLUTessErrorDataProc = procedure(ErrNo: GLenum; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
459   TGLUTessCombineDataProc = procedure(Coords: TGLArrayd3; VertexData: TGLArrayp4; Weight: TGLArrayf4; OutData: PPointer; UserData: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
460   // GLUNurbsCallback
461   TGLUNurbsErrorProc = procedure(ErrorCode: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
462
463 var
464   GL_VERSION_1_0,
465   GL_VERSION_1_1,
466   GL_VERSION_1_2,
467   GL_VERSION_1_3,
468   GL_VERSION_1_4,
469   GL_VERSION_1_5,
470   GL_VERSION_2_0,
471   GL_VERSION_2_1,
472   GL_VERSION_3_0,
473   GL_VERSION_3_1,
474   GL_VERSION_3_2,
475   GL_VERSION_3_3,
476   GL_VERSION_4_0,
477   GL_VERSION_4_1,
478   GL_VERSION_4_2,
479   GL_VERSION_4_3,
480   GL_VERSION_4_4,
481   GL_VERSION_4_5,
482   GLU_VERSION_1_1,
483   GLU_VERSION_1_2,
484   GLU_VERSION_1_3,
485   GL_3DFX_multisample,
486   GL_3DFX_tbuffer,
487   GL_3DFX_texture_compression_FXT1,
488   GL_APPLE_client_storage,
489   GL_APPLE_element_array,
490   GL_APPLE_fence,
491   GL_APPLE_specular_vector,
492   GL_APPLE_transform_hint,
493   GL_APPLE_vertex_array_object,
494   GL_APPLE_vertex_array_range,
495   GL_APPLE_ycbcr_422,
496   GL_APPLE_texture_range,
497   GL_APPLE_float_pixels,
498   GL_APPLE_vertex_program_evaluators,
499   GL_APPLE_aux_depth_stencil,
500   GL_APPLE_object_purgeable,
501   GL_APPLE_row_bytes,
502   GL_APPLE_rgb_422,
503   GL_ARB_depth_texture,
504   GL_ARB_fragment_program,
505   GL_ARB_imaging,
506   GL_ARB_matrix_palette,
507   GL_ARB_multisample,
508   GL_ARB_multitexture,
509   GL_ARB_point_parameters,
510   GL_ARB_shadow,
511   GL_ARB_shadow_ambient,
512   GL_ARB_texture_border_clamp,
513   GL_ARB_texture_compression,
514   GL_ARB_texture_cube_map,
515   GL_ARB_texture_env_add,
516   GL_ARB_texture_env_combine,
517   GL_ARB_texture_env_crossbar,
518   GL_ARB_texture_env_dot3,
519   GL_ARB_texture_mirrored_repeat,
520   GL_ARB_transpose_matrix,
521   GL_ARB_vertex_blend,
522   GL_ARB_vertex_buffer_object,
523   GL_ARB_vertex_program,
524   GL_ARB_window_pos,
525   GL_ARB_shader_objects,
526   GL_ARB_vertex_shader,
527   GL_ARB_fragment_shader,
528   GL_ARB_shading_language_100,
529   GL_ARB_occlusion_query,
530   GL_ARB_texture_non_power_of_two,
531   GL_ARB_point_sprite,
532   GL_ARB_fragment_program_shadow,
533   GL_ARB_draw_buffers,
534   GL_ARB_texture_rectangle,
535   GL_ARB_color_buffer_float,
536   GL_ARB_half_float_pixel,
537   GL_ARB_texture_float,
538   GL_ARB_pixel_buffer_object,
539   GL_ARB_depth_buffer_float,
540   GL_ARB_draw_instanced,
541   GL_ARB_framebuffer_object,
542   GL_ARB_framebuffer_sRGB,
543   GL_ARB_geometry_shader4,
544   GL_ARB_half_float_vertex,
545   GL_ARB_instanced_arrays,
546   GL_ARB_map_buffer_range,
547   GL_ARB_texture_buffer_object,
548   GL_ARB_texture_compression_rgtc,
549   GL_ARB_texture_rg,
550   GL_ARB_vertex_array_object,
551   GL_ARB_uniform_buffer_object,
552   GL_ARB_compatibility,
553   GL_ARB_copy_buffer,
554   GL_ARB_shader_texture_lod,
555   GL_ARB_depth_clamp,
556   GL_ARB_draw_elements_base_vertex,
557   GL_ARB_fragment_coord_conventions,
558   GL_ARB_provoking_vertex,
559   GL_ARB_seamless_cube_map,
560   GL_ARB_sync,
561   GL_ARB_texture_multisample,
562   GL_ARB_vertex_array_bgra,
563   GL_ARB_draw_buffers_blend,
564   GL_ARB_sample_shading,
565   GL_ARB_texture_cube_map_array,
566   GL_ARB_texture_gather,
567   GL_ARB_texture_query_lod,
568   GL_ARB_shading_language_include,
569   GL_ARB_texture_compression_bptc,
570   GL_ARB_blend_func_extended,
571   GL_ARB_explicit_attrib_location,
572   GL_ARB_occlusion_query2,
573   GL_ARB_sampler_objects,
574   GL_ARB_shader_bit_encoding,
575   GL_ARB_texture_rgb10_a2ui,
576   GL_ARB_texture_swizzle,
577   GL_ARB_timer_query,
578   GL_ARB_vertex_type_2_10_10_10_rev,
579   GL_ARB_draw_indirect,
580   GL_ARB_gpu_shader5,
581   GL_ARB_gpu_shader_fp64,
582   GL_ARB_shader_subroutine,
583   GL_ARB_tessellation_shader,
584   GL_ARB_texture_buffer_object_rgb32,
585   GL_ARB_transform_feedback2,
586   GL_ARB_transform_feedback3,
587   GL_ARB_ES2_compatibility,
588   GL_ARB_get_program_binary,
589   GL_ARB_separate_shader_objects,
590   GL_ARB_shader_precision,
591   GL_ARB_vertex_attrib_64bit,
592   GL_ARB_viewport_array,
593
594   // GL 4.2
595   GL_ARB_base_instance,
596   GL_ARB_shading_language_420pack,
597   GL_ARB_transform_feedback_instanced,
598   GL_ARB_compressed_texture_pixel_storage,
599   GL_ARB_conservative_depth,
600   GL_ARB_internalformat_query,
601   GL_ARB_map_buffer_alignment,
602   GL_ARB_shader_atomic_counters,
603   GL_ARB_shader_image_load_store,
604   GL_ARB_shading_language_packing,
605   GL_ARB_texture_storage,
606
607
608   // GL 4.3
609   GL_ARB_arrays_of_arrays,
610   GL_ARB_fragment_layer_viewport,
611   GL_ARB_shader_image_size,
612   GL_ARB_ES3_compatibility,
613   GL_ARB_clear_buffer_object,
614   GL_ARB_compute_shader,
615   GL_ARB_copy_image,
616   GL_KHR_debug,
617   GL_ARB_explicit_uniform_location,
618   GL_ARB_framebuffer_no_attachments,
619   GL_ARB_internalformat_query2,
620   GL_ARB_invalidate_subdata,
621   GL_ARB_multi_draw_indirect,
622   GL_ARB_program_interface_query,
623   GL_ARB_robust_buffer_access_behavior,
624   GL_ARB_shader_storage_buffer_object,
625   GL_ARB_stencil_texturing,
626   GL_ARB_texture_buffer_range,
627   GL_ARB_texture_query_levels,
628   GL_ARB_texture_storage_multisample,
629   GL_ARB_texture_view,
630   GL_ARB_vertex_attrib_binding,
631   GL_NV_path_rendering,
632   GL_AMD_pinned_memory,
633   GL_AMD_stencil_operation_extended,
634   GL_AMD_vertex_shader_viewport_index,
635   GL_AMD_vertex_shader_layer,
636   GL_NV_bindless_texture,
637   GL_NV_shader_atomic_float,
638   GL_AMD_query_buffer_object,
639
640
641   // GL 4.4
642   GL_ARB_buffer_storage,
643   GL_ARB_clear_texture,
644   GL_ARB_enhanced_layouts,
645   GL_ARB_multi_bind,
646   GL_ARB_query_buffer_object,
647   GL_ARB_texture_mirror_clamp_to_edge,
648   GL_ARB_texture_stencil8,
649   GL_ARB_vertex_type_10f_11f_11f_rev,
650   GL_ARB_bindless_texture,
651   GL_ARB_sparse_texture,
652
653   // GL 4.5
654   GL_ARB_clip_control,
655   GL_ARB_cull_distance,
656   GL_ARB_ES3_1_compatibility,
657   GL_ARB_conditional_render_inverted,
658   GL_KHR_context_flush_control,
659   GL_ARB_derivative_control,
660   GL_ARB_direct_state_access,
661   GL_ARB_get_texture_sub_image,
662   GL_KHR_robustness,
663   GL_KHR_blend_equation_advanced,
664   GL_KHR_blend_equation_advanced_coherent,
665   GL_KHR_robust_buffer_access_behavior,
666   GL_ARB_shader_texture_image_samples,
667   GL_ARB_texture_barrier,
668
669   GL_ARB_cl_event,
670   GL_ARB_debug_output,
671   GL_ARB_robustness,
672   GL_ARB_shader_stencil_export,
673   GL_ATI_draw_buffers,
674   GL_ATI_element_array,
675   GL_ATI_envmap_bumpmap,
676   GL_ATI_fragment_shader,
677   GL_ATI_map_object_buffer,
678   GL_ATI_pn_triangles,
679   GL_ATI_separate_stencil,
680   GL_ATI_text_fragment_shader,
681   GL_ATI_texture_env_combine3,
682   GL_ATI_texture_float,
683   GL_ATI_texture_mirror_once,
684   GL_ATI_vertex_array_object,
685   GL_ATI_vertex_attrib_array_object,
686   GL_ATI_vertex_streams,
687   GL_ATI_meminfo,
688   GL_AMD_performance_monitor,
689   GL_AMD_texture_texture4,
690   GL_AMD_vertex_shader_tesselator,
691   GL_AMD_draw_buffers_blend,
692   GL_AMD_shader_stencil_export,
693   GL_AMD_seamless_cubemap_per_texture,
694   GL_AMD_conservative_depth,
695   GL_AMD_name_gen_delete,
696   GL_AMD_debug_output,
697   GL_AMD_transform_feedback3_lines_triangles,
698   GL_AMD_depth_clamp_separate,
699   GL_EXT_422_pixels,
700   GL_EXT_abgr,
701   GL_EXT_bgra,
702   GL_EXT_blend_color,
703   GL_EXT_blend_func_separate,
704   GL_EXT_blend_logic_op,
705   GL_EXT_blend_minmax,
706   GL_EXT_blend_subtract,
707   GL_EXT_clip_volume_hint,
708   GL_EXT_cmyka,
709   GL_EXT_color_matrix,
710   GL_EXT_color_subtable,
711   GL_EXT_compiled_vertex_array,
712   GL_EXT_convolution,
713   GL_EXT_coordinate_frame,
714   GL_EXT_copy_texture,
715   GL_EXT_cull_vertex,
716   GL_EXT_draw_range_elements,
717   GL_EXT_fog_coord,
718   GL_EXT_framebuffer_object,
719   GL_EXT_histogram,
720   GL_EXT_index_array_formats,
721   GL_EXT_index_func,
722   GL_EXT_index_material,
723   GL_EXT_index_texture,
724   GL_EXT_light_texture,
725   GL_EXT_misc_attribute,
726   GL_EXT_multi_draw_arrays,
727   GL_EXT_multisample,
728   GL_EXT_packed_pixels,
729   GL_EXT_paletted_texture,
730   GL_EXT_pixel_transform,
731   GL_EXT_pixel_transform_color_table,
732   GL_EXT_point_parameters,
733   GL_EXT_polygon_offset,
734   GL_EXT_rescale_normal,
735   GL_EXT_secondary_color,
736   GL_EXT_separate_specular_color,
737   GL_EXT_shadow_funcs,
738   GL_EXT_shared_texture_palette,
739   GL_EXT_stencil_two_side,
740   GL_EXT_stencil_wrap,
741   GL_EXT_subtexture,
742   GL_EXT_texture,
743   GL_EXT_texture3D,
744   GL_EXT_texture_compression_s3tc,
745   GL_EXT_texture_cube_map,
746   GL_EXT_texture_edge_clamp,
747   GL_EXT_texture_env_add,
748   GL_EXT_texture_env_combine,
749   GL_EXT_texture_env_dot3,
750   GL_EXT_texture_filter_anisotropic,
751   GL_EXT_texture_lod_bias,
752   GL_EXT_texture_object,
753   GL_EXT_texture_perturb_normal,
754   GL_EXT_texture_rectangle,
755   GL_EXT_vertex_array,
756   GL_EXT_vertex_shader,
757   GL_EXT_vertex_weighting,
758   GL_EXT_depth_bounds_test,
759   GL_EXT_texture_mirror_clamp,
760   GL_EXT_blend_equation_separate,
761   GL_EXT_pixel_buffer_object,
762   GL_EXT_texture_compression_dxt1,
763   GL_EXT_stencil_clear_tag,
764   GL_EXT_packed_depth_stencil,
765   GL_EXT_texture_sRGB,
766   GL_EXT_framebuffer_blit,
767   GL_EXT_framebuffer_multisample,
768   GL_EXT_timer_query,
769   GL_EXT_gpu_program_parameters,
770   GL_EXT_bindable_uniform,
771   GL_EXT_draw_buffers2,
772   GL_EXT_draw_instanced,
773   GL_EXT_framebuffer_sRGB,
774   GL_EXT_geometry_shader4,
775   GL_EXT_gpu_shader4,
776   GL_EXT_packed_float,
777   GL_EXT_texture_array,
778   GL_EXT_texture_buffer_object,
779   GL_EXT_texture_compression_latc,
780   GL_EXT_texture_compression_rgtc,
781   GL_EXT_texture_integer,
782   GL_EXT_texture_shared_exponent,
783   GL_EXT_transform_feedback,
784   GL_EXT_direct_state_access,
785   GL_EXT_vertex_array_bgra,
786   GL_EXT_texture_swizzle,
787   GL_EXT_provoking_vertex,
788   GL_EXT_texture_snorm,
789   GL_EXT_separate_shader_objects,
790   GL_EXT_shader_image_load_store,
791   GL_EXT_vertex_attrib_64bit,
792   GL_EXT_texture_sRGB_decode,
793   GL_FfdMaskSGIX,
794   GL_HP_convolution_border_modes,
795   GL_HP_image_transform,
796   GL_HP_occlusion_test,
797   GL_HP_texture_lighting,
798   GL_IBM_cull_vertex,
799   GL_IBM_multimode_draw_arrays,
800   GL_IBM_rasterpos_clip,
801   GL_IBM_texture_mirrored_repeat,
802   GL_IBM_vertex_array_lists,
803   GL_INGR_blend_func_separate,
804   GL_INGR_color_clamp,
805   GL_INGR_interlace_read,
806   GL_INGR_palette_buffer,
807   GL_INTEL_parallel_arrays,
808   GL_INTEL_texture_scissor,
809   GL_MESA_resize_buffers,
810   GL_MESA_window_pos,
811   GL_NV_blend_square,
812   GL_NV_copy_depth_to_color,
813   GL_NV_depth_clamp,
814   GL_NV_evaluators,
815   GL_NV_fence,
816   GL_NV_float_buffer,
817   GL_NV_fog_distance,
818   GL_NV_fragment_program,
819   GL_NV_half_float,
820   GL_NV_light_max_exponent,
821   GL_NV_multisample_filter_hint,
822   GL_NV_occlusion_query,
823   GL_NV_packed_depth_stencil,
824   GL_NV_pixel_data_range,
825   GL_NV_point_sprite,
826   GL_NV_primitive_restart,
827   GL_NV_register_combiners,
828   GL_NV_register_combiners2,
829   GL_NV_texgen_emboss,
830   GL_NV_texgen_reflection,
831   GL_NV_texture_compression_vtc,
832   GL_NV_texture_env_combine4,
833   GL_NV_texture_expand_normal,
834   GL_NV_texture_rectangle,
835   GL_NV_texture_shader,
836   GL_NV_texture_shader2,
837   GL_NV_texture_shader3,
838   GL_NV_vertex_array_range,
839   GL_NV_vertex_array_range2,
840   GL_NV_vertex_program,
841   GL_NV_vertex_program1_1,
842   GL_NV_vertex_program2,
843   GL_NV_fragment_program_option,
844   GL_NV_fragment_program2,
845   GL_NV_vertex_program2_option,
846   GL_NV_vertex_program3,
847   GL_NV_depth_buffer_float,
848   GL_NV_fragment_program4,
849   GL_NV_framebuffer_multisample_coverage,
850   GL_NV_geometry_program4,
851   GL_NV_gpu_program4,
852   GL_NV_parameter_buffer_object,
853   GL_NV_transform_feedback,
854   GL_NV_vertex_program4,
855   GL_NV_conditional_render,
856   GL_NV_present_video,
857   GL_NV_explicit_multisample,
858   GL_NV_transform_feedback2,
859   GL_NV_video_capture,
860   GL_NV_copy_image,
861   GL_NV_parameter_buffer_object2,
862   GL_NV_shader_buffer_load,
863   GL_NV_vertex_buffer_unified_memory,
864   GL_NV_gpu_program5,
865   GL_NV_gpu_shader5,
866   GL_NV_shader_buffer_store,
867   GL_NV_tessellation_program5,
868   GL_NV_vertex_attrib_integer_64bit,
869   GL_NV_multisample_coverage,
870   GL_NV_vdpau_interop,
871   GL_NV_texture_barrier,
872   GL_OML_interlace,
873   GL_OML_resample,
874   GL_OML_subsample,
875   GL_PGI_misc_hints,
876   GL_PGI_vertex_hints,
877   GL_REND_screen_coordinates,
878   GL_S3_s3tc,
879   GL_SGIS_detail_texture,
880   GL_SGIS_fog_function,
881   GL_SGIS_generate_mipmap,
882   GL_SGIS_multisample,
883   GL_SGIS_pixel_texture,
884   GL_SGIS_point_line_texgen,
885   GL_SGIS_point_parameters,
886   GL_SGIS_sharpen_texture,
887   GL_SGIS_texture4D,
888   GL_SGIS_texture_border_clamp,
889   GL_SGIS_texture_color_mask,
890   GL_SGIS_texture_edge_clamp,
891   GL_SGIS_texture_filter4,
892   GL_SGIS_texture_lod,
893   GL_SGIS_texture_select,
894   GL_SGIX_async,
895   GL_SGIX_async_histogram,
896   GL_SGIX_async_pixel,
897   GL_SGIX_blend_alpha_minmax,
898   GL_SGIX_calligraphic_fragment,
899   GL_SGIX_clipmap,
900   GL_SGIX_convolution_accuracy,
901   GL_SGIX_depth_pass_instrument,
902   GL_SGIX_depth_texture,
903   GL_SGIX_flush_raster,
904   GL_SGIX_fog_offset,
905   GL_SGIX_fog_scale,
906   GL_SGIX_fragment_lighting,
907   GL_SGIX_framezoom,
908   GL_SGIX_igloo_interface,
909   GL_SGIX_impact_pixel_texture,
910   GL_SGIX_instruments,
911   GL_SGIX_interlace,
912   GL_SGIX_ir_instrument1,
913   GL_SGIX_list_priority,
914   GL_SGIX_pixel_texture,
915   GL_SGIX_pixel_tiles,
916   GL_SGIX_polynomial_ffd,
917   GL_SGIX_reference_plane,
918   GL_SGIX_resample,
919   GL_SGIX_scalebias_hint,
920   GL_SGIX_shadow,
921   GL_SGIX_shadow_ambient,
922   GL_SGIX_sprite,
923   GL_SGIX_subsample,
924   GL_SGIX_tag_sample_buffer,
925   GL_SGIX_texture_add_env,
926   GL_SGIX_texture_coordinate_clamp,
927   GL_SGIX_texture_lod_bias,
928   GL_SGIX_texture_multi_buffer,
929   GL_SGIX_texture_scale_bias,
930   GL_SGIX_texture_select,
931   GL_SGIX_vertex_preclip,
932   GL_SGIX_ycrcb,
933   GL_SGIX_ycrcb_subsample,
934   GL_SGIX_ycrcba,
935   GL_SGI_color_matrix,
936   GL_SGI_color_table,
937   GL_SGI_depth_pass_instrument,
938   GL_SGI_texture_color_table,
939   GL_SUNX_constant_data,
940   GL_SUN_convolution_border_modes,
941   GL_SUN_global_alpha,
942   GL_SUN_mesh_array,
943   GL_SUN_slice_accum,
944   GL_SUN_triangle_list,
945   GL_SUN_vertex,
946
947   // WGL
948   GL_WIN_phong_shading,
949   GL_WIN_specular_fog,
950   WGL_3DFX_multisample,
951   WGL_ARB_buffer_region,
952   WGL_ARB_extensions_string,
953   WGL_ARB_make_current_read,
954   WGL_ARB_multisample,
955   WGL_ARB_pbuffer,
956   WGL_ARB_pixel_format,
957   WGL_ARB_pixel_format_float,
958   WGL_ARB_render_texture,
959   WGL_ARB_create_context,
960   WGL_ARB_create_context_profile,
961   WGL_ARB_framebuffer_sRGB,
962   WGL_ARB_create_context_robustness,
963   WGL_ATI_pixel_format_float,
964   WGL_AMD_gpu_association,
965   WGL_EXT_depth_float,
966   WGL_EXT_display_color_table,
967   WGL_EXT_extensions_string,
968   WGL_EXT_make_current_read,
969   WGL_EXT_multisample,
970   WGL_EXT_pbuffer,
971   WGL_EXT_pixel_format,
972   WGL_EXT_swap_control,
973   WGL_EXT_create_context_es2_profile,
974   WGL_I3D_digital_video_control,
975   WGL_I3D_gamma,
976   WGL_I3D_genlock,
977   WGL_I3D_image_buffer,
978   WGL_I3D_swap_frame_lock,
979   WGL_I3D_swap_frame_usage,
980   WGL_NV_float_buffer,
981   WGL_NV_render_depth_texture,
982   WGL_NV_render_texture_rectangle,
983   WGL_NV_vertex_array_range,
984   WGL_NV_present_video,
985   WGL_NV_video_output,
986   WGL_NV_swap_group,
987   WGL_NV_gpu_affinity,
988   WGL_NV_video_capture,
989   WGL_NV_copy_image,
990   WGL_NV_multisample_coverage,
991   WGL_NV_DX_interop,
992   WGL_OML_sync_control,
993   WGL_3DL_stereo_control,
994   WGL_ARB_context_flush_control,
995   WIN_draw_range_elements,
996   WIN_swap_hint,
997
998   // GLX
999   GLX_VERSION_1_3,
1000   GLX_VERSION_1_4,
1001   GLX_ARB_multisample,
1002   GLX_ARB_fbconfig_float,
1003   GLX_ARB_get_proc_address,
1004   GLX_ARB_create_context,
1005   GLX_ARB_create_context_profile,
1006   GLX_ARB_vertex_buffer_object,
1007   GLX_ARB_framebuffer_sRGB,
1008   GLX_ARB_create_context_robustness,
1009   GLX_EXT_visual_info,
1010   GLX_EXT_visual_rating,
1011   GLX_EXT_import_context,
1012   GLX_EXT_fbconfig_packed_float,
1013   GLX_EXT_framebuffer_sRGB,
1014   GLX_EXT_texture_from_pixmap,
1015   GLX_EXT_swap_control,
1016   GLX_ARB_context_flush_control,
1017   GLX_EXT_create_context_es2_profile : Boolean;
1018
1019 const
1020   // GL_VERSION_1_1
1021   { AttribMask }
1022   GL_DEPTH_BUFFER_BIT = $00000100;
1023   GL_STENCIL_BUFFER_BIT = $00000400;
1024   GL_COLOR_BUFFER_BIT = $00004000;
1025   { Boolean }
1026   GL_TRUE = 1;
1027   GL_FALSE = 0;
1028   { BeginMode }
1029   GL_POINTS = $0000;
1030   GL_LINES = $0001;
1031   GL_LINE_LOOP = $0002;
1032   GL_LINE_STRIP = $0003;
1033   GL_TRIANGLES = $0004;
1034   GL_TRIANGLE_STRIP = $0005;
1035   GL_TRIANGLE_FAN = $0006;
1036   { AlphaFunction }
1037   GL_NEVER = $0200;
1038   GL_LESS = $0201;
1039   GL_EQUAL = $0202;
1040   GL_LEQUAL = $0203;
1041   GL_GREATER = $0204;
1042   GL_NOTEQUAL = $0205;
1043   GL_GEQUAL = $0206;
1044   GL_ALWAYS = $0207;
1045   { BlendingFactorDest }
1046   GL_ZERO = 0;
1047   GL_ONE = 1;
1048   GL_SRC_COLOR = $0300;
1049   GL_ONE_MINUS_SRC_COLOR = $0301;
1050   GL_SRC_ALPHA = $0302;
1051   GL_ONE_MINUS_SRC_ALPHA = $0303;
1052   GL_DST_ALPHA = $0304;
1053   GL_ONE_MINUS_DST_ALPHA = $0305;
1054   { BlendingFactorSrc }
1055   GL_DST_COLOR = $0306;
1056   GL_ONE_MINUS_DST_COLOR = $0307;
1057   GL_SRC_ALPHA_SATURATE = $0308;
1058   { DrawBufferMode }
1059   GL_NONE = 0;
1060   GL_FRONT_LEFT = $0400;
1061   GL_FRONT_RIGHT = $0401;
1062   GL_BACK_LEFT = $0402;
1063   GL_BACK_RIGHT = $0403;
1064   GL_FRONT = $0404;
1065   GL_BACK = $0405;
1066   GL_LEFT = $0406;
1067   GL_RIGHT = $0407;
1068   GL_FRONT_AND_BACK = $0408;
1069   { ErrorCode }
1070   GL_NO_ERROR = 0;
1071   GL_INVALID_ENUM = $0500;
1072   GL_INVALID_VALUE = $0501;
1073   GL_INVALID_OPERATION = $0502;
1074   GL_OUT_OF_MEMORY = $0505;
1075   { FrontFaceDirection }
1076   GL_CW = $0900;
1077   GL_CCW = $0901;
1078   { GetPName }
1079   GL_POINT_SIZE = $0B11;
1080   GL_POINT_SIZE_RANGE = $0B12;
1081   GL_POINT_SIZE_GRANULARITY = $0B13;
1082   GL_LINE_SMOOTH = $0B20;
1083   GL_LINE_WIDTH = $0B21;
1084   GL_LINE_WIDTH_RANGE = $0B22;
1085   GL_LINE_WIDTH_GRANULARITY = $0B23;
1086   GL_POLYGON_SMOOTH = $0B41;
1087   GL_CULL_FACE = $0B44;
1088   GL_CULL_FACE_MODE = $0B45;
1089   GL_FRONT_FACE = $0B46;
1090   GL_DEPTH_RANGE = $0B70;
1091   GL_DEPTH_TEST = $0B71;
1092   GL_DEPTH_WRITEMASK = $0B72;
1093   GL_DEPTH_CLEAR_VALUE = $0B73;
1094   GL_DEPTH_FUNC = $0B74;
1095   GL_STENCIL_TEST = $0B90;
1096   GL_STENCIL_CLEAR_VALUE = $0B91;
1097   GL_STENCIL_FUNC = $0B92;
1098   GL_STENCIL_VALUE_MASK = $0B93;
1099   GL_STENCIL_FAIL = $0B94;
1100   GL_STENCIL_PASS_DEPTH_FAIL = $0B95;
1101   GL_STENCIL_PASS_DEPTH_PASS = $0B96;
1102   GL_STENCIL_REF = $0B97;
1103   GL_STENCIL_WRITEMASK = $0B98;
1104   GL_VIEWPORT = $0BA2;
1105   GL_DITHER = $0BD0;
1106   GL_BLEND_DST = $0BE0;
1107   GL_BLEND_SRC = $0BE1;
1108   GL_BLEND = $0BE2;
1109   GL_LOGIC_OP_MODE = $0BF0;
1110   GL_COLOR_LOGIC_OP = $0BF2;
1111   GL_DRAW_BUFFER = $0C01;
1112   GL_READ_BUFFER = $0C02;
1113   GL_SCISSOR_BOX = $0C10;
1114   GL_SCISSOR_TEST = $0C11;
1115   GL_COLOR_CLEAR_VALUE = $0C22;
1116   GL_COLOR_WRITEMASK = $0C23;
1117   GL_DOUBLEBUFFER = $0C32;
1118   GL_STEREO = $0C33;
1119   GL_LINE_SMOOTH_HINT = $0C52;
1120   GL_POLYGON_SMOOTH_HINT = $0C53;
1121   GL_UNPACK_SWAP_BYTES = $0CF0;
1122   GL_UNPACK_LSB_FIRST = $0CF1;
1123   GL_UNPACK_ROW_LENGTH = $0CF2;
1124   GL_UNPACK_SKIP_ROWS = $0CF3;
1125   GL_UNPACK_SKIP_PIXELS = $0CF4;
1126   GL_UNPACK_ALIGNMENT = $0CF5;
1127   GL_PACK_SWAP_BYTES = $0D00;
1128   GL_PACK_LSB_FIRST = $0D01;
1129   GL_PACK_ROW_LENGTH = $0D02;
1130   GL_PACK_SKIP_ROWS = $0D03;
1131   GL_PACK_SKIP_PIXELS = $0D04;
1132   GL_PACK_ALIGNMENT = $0D05;
1133   GL_MAX_TEXTURE_SIZE = $0D33;
1134   GL_MAX_VIEWPORT_DIMS = $0D3A;
1135   GL_SUBPIXEL_BITS = $0D50;
1136   GL_TEXTURE_1D = $0DE0;
1137   GL_TEXTURE_2D = $0DE1;
1138   GL_POLYGON_OFFSET_UNITS = $2A00;
1139   GL_POLYGON_OFFSET_POINT = $2A01;
1140   GL_POLYGON_OFFSET_LINE = $2A02;
1141   GL_POLYGON_OFFSET_FILL = $8037;
1142   GL_POLYGON_OFFSET_FACTOR = $8038;
1143   GL_TEXTURE_BINDING_1D = $8068;
1144   GL_TEXTURE_BINDING_2D = $8069;
1145   { GetTextureParameter }
1146   GL_TEXTURE_WIDTH = $1000;
1147   GL_TEXTURE_HEIGHT = $1001;
1148   GL_TEXTURE_INTERNAL_FORMAT = $1003;
1149   GL_TEXTURE_BORDER_COLOR = $1004;
1150   GL_TEXTURE_BORDER = $1005;
1151   GL_TEXTURE_RED_SIZE = $805C;
1152   GL_TEXTURE_GREEN_SIZE = $805D;
1153   GL_TEXTURE_BLUE_SIZE = $805E;
1154   GL_TEXTURE_ALPHA_SIZE = $805F;
1155   { HintMode }
1156   GL_DONT_CARE = $1100;
1157   GL_FASTEST = $1101;
1158   GL_NICEST = $1102;
1159   { DataType }
1160   GL_BYTE = $1400;
1161   GL_UNSIGNED_BYTE = $1401;
1162   GL_SHORT = $1402;
1163   GL_UNSIGNED_SHORT = $1403;
1164   GL_INT = $1404;
1165   GL_UNSIGNED_INT = $1405;
1166   GL_FLOAT = $1406;
1167   GL_DOUBLE = $140A;
1168   { LogicOp }
1169   GL_CLEAR = $1500;
1170   GL_AND = $1501;
1171   GL_AND_REVERSE = $1502;
1172   GL_COPY = $1503;
1173   GL_AND_INVERTED = $1504;
1174   GL_NOOP = $1505;
1175   GL_XOR = $1506;
1176   GL_OR = $1507;
1177   GL_NOR = $1508;
1178   GL_EQUIV = $1509;
1179   GL_INVERT = $150A;
1180   GL_OR_REVERSE = $150B;
1181   GL_COPY_INVERTED = $150C;
1182   GL_OR_INVERTED = $150D;
1183   GL_NAND = $150E;
1184   GL_SET = $150F;
1185   { MatrixMode (for gl3.h, FBO attachment type) }
1186   GL_TEXTURE = $1702;
1187   { PixelCopyType }
1188   GL_COLOR = $1800;
1189   GL_DEPTH = $1801;
1190   GL_STENCIL = $1802;
1191   { PixelFormat }
1192   GL_STENCIL_INDEX = $1901;
1193   GL_DEPTH_COMPONENT = $1902;
1194   GL_RED = $1903;
1195   GL_GREEN = $1904;
1196   GL_BLUE = $1905;
1197   GL_ALPHA = $1906;
1198   GL_RGB = $1907;
1199   GL_RGBA = $1908;
1200   { PolygonMode }
1201   GL_POINT = $1B00;
1202   GL_LINE = $1B01;
1203   GL_FILL = $1B02;
1204   { StencilOp }
1205   GL_KEEP = $1E00;
1206   GL_REPLACE = $1E01;
1207   GL_INCR = $1E02;
1208   GL_DECR = $1E03;
1209   { StringName }
1210   GL_VENDOR = $1F00;
1211   GL_RENDERER = $1F01;
1212   GL_VERSION = $1F02;
1213   GL_EXTENSIONS = $1F03;
1214   { TextureMagFilter }
1215   GL_NEAREST = $2600;
1216   GL_LINEAR = $2601;
1217   { TextureMinFilter }
1218   GL_NEAREST_MIPMAP_NEAREST = $2700;
1219   GL_LINEAR_MIPMAP_NEAREST = $2701;
1220   GL_NEAREST_MIPMAP_LINEAR = $2702;
1221   GL_LINEAR_MIPMAP_LINEAR = $2703;
1222   { TextureParameterName }
1223   GL_TEXTURE_MAG_FILTER = $2800;
1224   GL_TEXTURE_MIN_FILTER = $2801;
1225   GL_TEXTURE_WRAP_S = $2802;
1226   GL_TEXTURE_WRAP_T = $2803;
1227   { TextureTarget }
1228   GL_PROXY_TEXTURE_1D = $8063;
1229   GL_PROXY_TEXTURE_2D = $8064;
1230   { TextureWrapMode }
1231   GL_REPEAT = $2901;
1232   { PixelInternalFormat }
1233   GL_R3_G3_B2 = $2A10;
1234   GL_RGB4 = $804F;
1235   GL_RGB5 = $8050;
1236   GL_RGB8 = $8051;
1237   GL_RGB10 = $8052;
1238   GL_RGB12 = $8053;
1239   GL_RGB16 = $8054;
1240   GL_RGBA2 = $8055;
1241   GL_RGBA4 = $8056;
1242   GL_RGB5_A1 = $8057;
1243   GL_RGBA8 = $8058;
1244   GL_RGB10_A2 = $8059;
1245   GL_RGBA12 = $805A;
1246   GL_RGBA16 = $805B;
1247 {$ifdef DGL_DEPRECATED}
1248   GL_ACCUM = $0100;
1249   GL_LOAD = $0101;
1250   GL_RETURN = $0102;
1251   GL_MULT = $0103;
1252   GL_ADD = $0104;
1253   GL_CURRENT_BIT = $00000001;
1254   GL_POINT_BIT = $00000002;
1255   GL_LINE_BIT = $00000004;
1256   GL_POLYGON_BIT = $00000008;
1257   GL_POLYGON_STIPPLE_BIT = $00000010;
1258   GL_PIXEL_MODE_BIT = $00000020;
1259   GL_LIGHTING_BIT = $00000040;
1260   GL_FOG_BIT = $00000080;
1261   GL_ACCUM_BUFFER_BIT = $00000200;
1262   GL_VIEWPORT_BIT = $00000800;
1263   GL_TRANSFORM_BIT = $00001000;
1264   GL_ENABLE_BIT = $00002000;
1265   GL_HINT_BIT = $00008000;
1266   GL_EVAL_BIT = $00010000;
1267   GL_LIST_BIT = $00020000;
1268   GL_TEXTURE_BIT = $00040000;
1269   GL_SCISSOR_BIT = $00080000;
1270   GL_ALL_ATTRIB_BITS = $000FFFFF;
1271   GL_QUADS = $0007;
1272   GL_QUAD_STRIP = $0008;
1273   GL_POLYGON = $0009;
1274   GL_CLIP_PLANE0 = $3000;
1275   GL_CLIP_PLANE1 = $3001;
1276   GL_CLIP_PLANE2 = $3002;
1277   GL_CLIP_PLANE3 = $3003;
1278   GL_CLIP_PLANE4 = $3004;
1279   GL_CLIP_PLANE5 = $3005;
1280   GL_2_BYTES = $1407;
1281   GL_3_BYTES = $1408;
1282   GL_4_BYTES = $1409;
1283   GL_AUX0 = $0409;
1284   GL_AUX1 = $040A;
1285   GL_AUX2 = $040B;
1286   GL_AUX3 = $040C;
1287   GL_STACK_OVERFLOW = $0503;
1288   GL_STACK_UNDERFLOW = $0504;
1289   GL_2D = $0600;
1290   GL_3D = $0601;
1291   GL_3D_COLOR = $0602;
1292   GL_3D_COLOR_TEXTURE = $0603;
1293   GL_4D_COLOR_TEXTURE = $0604;
1294   GL_PASS_THROUGH_TOKEN = $0700;
1295   GL_POINT_TOKEN = $0701;
1296   GL_LINE_TOKEN = $0702;
1297   GL_POLYGON_TOKEN = $0703;
1298   GL_BITMAP_TOKEN = $0704;
1299   GL_DRAW_PIXEL_TOKEN = $0705;
1300   GL_COPY_PIXEL_TOKEN = $0706;
1301   GL_LINE_RESET_TOKEN = $0707;
1302   GL_EXP = $0800;
1303   GL_EXP2 = $0801;
1304   GL_COEFF = $0A00;
1305   GL_ORDER = $0A01;
1306   GL_DOMAIN = $0A02;
1307   GL_CURRENT_COLOR = $0B00;
1308   GL_CURRENT_INDEX = $0B01;
1309   GL_CURRENT_NORMAL = $0B02;
1310   GL_CURRENT_TEXTURE_COORDS = $0B03;
1311   GL_CURRENT_RASTER_COLOR = $0B04;
1312   GL_CURRENT_RASTER_INDEX = $0B05;
1313   GL_CURRENT_RASTER_TEXTURE_COORDS = $0B06;
1314   GL_CURRENT_RASTER_POSITION = $0B07;
1315   GL_CURRENT_RASTER_POSITION_VALID = $0B08;
1316   GL_CURRENT_RASTER_DISTANCE = $0B09;
1317   GL_POINT_SMOOTH = $0B10;
1318   GL_LINE_STIPPLE = $0B24;
1319   GL_LINE_STIPPLE_PATTERN = $0B25;
1320   GL_LINE_STIPPLE_REPEAT = $0B26;
1321   GL_LIST_MODE = $0B30;
1322   GL_MAX_LIST_NESTING = $0B31;
1323   GL_LIST_BASE = $0B32;
1324   GL_LIST_INDEX = $0B33;
1325   GL_POLYGON_MODE = $0B40;
1326   GL_POLYGON_STIPPLE = $0B42;
1327   GL_EDGE_FLAG = $0B43;
1328   GL_LIGHTING = $0B50;
1329   GL_LIGHT_MODEL_LOCAL_VIEWER = $0B51;
1330   GL_LIGHT_MODEL_TWO_SIDE = $0B52;
1331   GL_LIGHT_MODEL_AMBIENT = $0B53;
1332   GL_SHADE_MODEL = $0B54;
1333   GL_COLOR_MATERIAL_FACE = $0B55;
1334   GL_COLOR_MATERIAL_PARAMETER = $0B56;
1335   GL_COLOR_MATERIAL = $0B57;
1336   GL_FOG = $0B60;
1337   GL_FOG_INDEX = $0B61;
1338   GL_FOG_DENSITY = $0B62;
1339   GL_FOG_START = $0B63;
1340   GL_FOG_END = $0B64;
1341   GL_FOG_MODE = $0B65;
1342   GL_FOG_COLOR = $0B66;
1343   GL_ACCUM_CLEAR_VALUE = $0B80;
1344   GL_MATRIX_MODE = $0BA0;
1345   GL_NORMALIZE = $0BA1;
1346   GL_MODELVIEW_STACK_DEPTH = $0BA3;
1347   GL_PROJECTION_STACK_DEPTH = $0BA4;
1348   GL_TEXTURE_STACK_DEPTH = $0BA5;
1349   GL_MODELVIEW_MATRIX = $0BA6;
1350   GL_PROJECTION_MATRIX = $0BA7;
1351   GL_TEXTURE_MATRIX = $0BA8;
1352   GL_ATTRIB_STACK_DEPTH = $0BB0;
1353   GL_CLIENT_ATTRIB_STACK_DEPTH = $0BB1;
1354   GL_ALPHA_TEST = $0BC0;
1355   GL_ALPHA_TEST_FUNC = $0BC1;
1356   GL_ALPHA_TEST_REF = $0BC2;
1357   GL_INDEX_LOGIC_OP = $0BF1;
1358   GL_AUX_BUFFERS = $0C00;
1359   GL_INDEX_CLEAR_VALUE = $0C20;
1360   GL_INDEX_WRITEMASK = $0C21;
1361   GL_INDEX_MODE = $0C30;
1362   GL_RGBA_MODE = $0C31;
1363   GL_RENDER_MODE = $0C40;
1364   GL_PERSPECTIVE_CORRECTION_HINT = $0C50;
1365   GL_POINT_SMOOTH_HINT = $0C51;
1366   GL_FOG_HINT = $0C54;
1367   GL_TEXTURE_GEN_S = $0C60;
1368   GL_TEXTURE_GEN_T = $0C61;
1369   GL_TEXTURE_GEN_R = $0C62;
1370   GL_TEXTURE_GEN_Q = $0C63;
1371   GL_PIXEL_MAP_I_TO_I = $0C70;
1372   GL_PIXEL_MAP_S_TO_S = $0C71;
1373   GL_PIXEL_MAP_I_TO_R = $0C72;
1374   GL_PIXEL_MAP_I_TO_G = $0C73;
1375   GL_PIXEL_MAP_I_TO_B = $0C74;
1376   GL_PIXEL_MAP_I_TO_A = $0C75;
1377   GL_PIXEL_MAP_R_TO_R = $0C76;
1378   GL_PIXEL_MAP_G_TO_G = $0C77;
1379   GL_PIXEL_MAP_B_TO_B = $0C78;
1380   GL_PIXEL_MAP_A_TO_A = $0C79;
1381   GL_PIXEL_MAP_I_TO_I_SIZE = $0CB0;
1382   GL_PIXEL_MAP_S_TO_S_SIZE = $0CB1;
1383   GL_PIXEL_MAP_I_TO_R_SIZE = $0CB2;
1384   GL_PIXEL_MAP_I_TO_G_SIZE = $0CB3;
1385   GL_PIXEL_MAP_I_TO_B_SIZE = $0CB4;
1386   GL_PIXEL_MAP_I_TO_A_SIZE = $0CB5;
1387   GL_PIXEL_MAP_R_TO_R_SIZE = $0CB6;
1388   GL_PIXEL_MAP_G_TO_G_SIZE = $0CB7;
1389   GL_PIXEL_MAP_B_TO_B_SIZE = $0CB8;
1390   GL_PIXEL_MAP_A_TO_A_SIZE = $0CB9;
1391   GL_MAP_COLOR = $0D10;
1392   GL_MAP_STENCIL = $0D11;
1393   GL_INDEX_SHIFT = $0D12;
1394   GL_INDEX_OFFSET = $0D13;
1395   GL_RED_SCALE = $0D14;
1396   GL_RED_BIAS = $0D15;
1397   GL_ZOOM_X = $0D16;
1398   GL_ZOOM_Y = $0D17;
1399   GL_GREEN_SCALE = $0D18;
1400   GL_GREEN_BIAS = $0D19;
1401   GL_BLUE_SCALE = $0D1A;
1402   GL_BLUE_BIAS = $0D1B;
1403   GL_ALPHA_SCALE = $0D1C;
1404   GL_ALPHA_BIAS = $0D1D;
1405   GL_DEPTH_SCALE = $0D1E;
1406   GL_DEPTH_BIAS = $0D1F;
1407   GL_MAX_EVAL_ORDER = $0D30;
1408   GL_MAX_LIGHTS = $0D31;
1409   GL_MAX_CLIP_PLANES = $0D32;
1410   GL_MAX_PIXEL_MAP_TABLE = $0D34;
1411   GL_MAX_ATTRIB_STACK_DEPTH = $0D35;
1412   GL_MAX_MODELVIEW_STACK_DEPTH = $0D36;
1413   GL_MAX_NAME_STACK_DEPTH = $0D37;
1414   GL_MAX_PROJECTION_STACK_DEPTH = $0D38;
1415   GL_MAX_TEXTURE_STACK_DEPTH = $0D39;
1416   GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = $0D3B;
1417   GL_INDEX_BITS = $0D51;
1418   GL_RED_BITS = $0D52;
1419   GL_GREEN_BITS = $0D53;
1420   GL_BLUE_BITS = $0D54;
1421   GL_ALPHA_BITS = $0D55;
1422   GL_DEPTH_BITS = $0D56;
1423   GL_STENCIL_BITS = $0D57;
1424   GL_ACCUM_RED_BITS = $0D58;
1425   GL_ACCUM_GREEN_BITS = $0D59;
1426   GL_ACCUM_BLUE_BITS = $0D5A;
1427   GL_ACCUM_ALPHA_BITS = $0D5B;
1428   GL_NAME_STACK_DEPTH = $0D70;
1429   GL_AUTO_NORMAL = $0D80;
1430   GL_MAP1_COLOR_4 = $0D90;
1431   GL_MAP1_INDEX = $0D91;
1432   GL_MAP1_NORMAL = $0D92;
1433   GL_MAP1_TEXTURE_COORD_1 = $0D93;
1434   GL_MAP1_TEXTURE_COORD_2 = $0D94;
1435   GL_MAP1_TEXTURE_COORD_3 = $0D95;
1436   GL_MAP1_TEXTURE_COORD_4 = $0D96;
1437   GL_MAP1_VERTEX_3 = $0D97;
1438   GL_MAP1_VERTEX_4 = $0D98;
1439   GL_MAP2_COLOR_4 = $0DB0;
1440   GL_MAP2_INDEX = $0DB1;
1441   GL_MAP2_NORMAL = $0DB2;
1442   GL_MAP2_TEXTURE_COORD_1 = $0DB3;
1443   GL_MAP2_TEXTURE_COORD_2 = $0DB4;
1444   GL_MAP2_TEXTURE_COORD_3 = $0DB5;
1445   GL_MAP2_TEXTURE_COORD_4 = $0DB6;
1446   GL_MAP2_VERTEX_3 = $0DB7;
1447   GL_MAP2_VERTEX_4 = $0DB8;
1448   GL_MAP1_GRID_DOMAIN = $0DD0;
1449   GL_MAP1_GRID_SEGMENTS = $0DD1;
1450   GL_MAP2_GRID_DOMAIN = $0DD2;
1451   GL_MAP2_GRID_SEGMENTS = $0DD3;
1452   GL_FEEDBACK_BUFFER_POINTER = $0DF0;
1453   GL_FEEDBACK_BUFFER_SIZE = $0DF1;
1454   GL_FEEDBACK_BUFFER_TYPE = $0DF2;
1455   GL_SELECTION_BUFFER_POINTER = $0DF3;
1456   GL_SELECTION_BUFFER_SIZE = $0DF4;
1457   GL_LIGHT0 = $4000;
1458   GL_LIGHT1 = $4001;
1459   GL_LIGHT2 = $4002;
1460   GL_LIGHT3 = $4003;
1461   GL_LIGHT4 = $4004;
1462   GL_LIGHT5 = $4005;
1463   GL_LIGHT6 = $4006;
1464   GL_LIGHT7 = $4007;
1465   GL_AMBIENT = $1200;
1466   GL_DIFFUSE = $1201;
1467   GL_SPECULAR = $1202;
1468   GL_POSITION = $1203;
1469   GL_SPOT_DIRECTION = $1204;
1470   GL_SPOT_EXPONENT = $1205;
1471   GL_SPOT_CUTOFF = $1206;
1472   GL_CONSTANT_ATTENUATION = $1207;
1473   GL_LINEAR_ATTENUATION = $1208;
1474   GL_QUADRATIC_ATTENUATION = $1209;
1475   GL_COMPILE = $1300;
1476   GL_COMPILE_AND_EXECUTE = $1301;
1477   GL_EMISSION = $1600;
1478   GL_SHININESS = $1601;
1479   GL_AMBIENT_AND_DIFFUSE = $1602;
1480   GL_COLOR_INDEXES = $1603;
1481   GL_MODELVIEW = $1700;
1482   GL_PROJECTION = $1701;
1483   GL_COLOR_INDEX = $1900;
1484   GL_LUMINANCE = $1909;
1485   GL_LUMINANCE_ALPHA = $190A;
1486   GL_BITMAP = $1A00;
1487   GL_RENDER = $1C00;
1488   GL_FEEDBACK = $1C01;
1489   GL_SELECT = $1C02;
1490   GL_FLAT = $1D00;
1491   GL_SMOOTH = $1D01;
1492   GL_S = $2000;
1493   GL_T = $2001;
1494   GL_R = $2002;
1495   GL_Q = $2003;
1496   GL_MODULATE = $2100;
1497   GL_DECAL = $2101;
1498   GL_TEXTURE_ENV_MODE = $2200;
1499   GL_TEXTURE_ENV_COLOR = $2201;
1500   GL_TEXTURE_ENV = $2300;
1501   GL_EYE_LINEAR = $2400;
1502   GL_OBJECT_LINEAR = $2401;
1503   GL_SPHERE_MAP = $2402;
1504   GL_TEXTURE_GEN_MODE = $2500;
1505   GL_OBJECT_PLANE = $2501;
1506   GL_EYE_PLANE = $2502;
1507   GL_CLAMP = $2900;
1508   GL_CLIENT_PIXEL_STORE_BIT = $00000001;
1509   GL_CLIENT_VERTEX_ARRAY_BIT = $00000002;
1510   GL_CLIENT_ALL_ATTRIB_BITS = $FFFFFFFF;
1511   GL_ALPHA4 = $803B;
1512   GL_ALPHA8 = $803C;
1513   GL_ALPHA12 = $803D;
1514   GL_ALPHA16 = $803E;
1515   GL_LUMINANCE4 = $803F;
1516   GL_LUMINANCE8 = $8040;
1517   GL_LUMINANCE12 = $8041;
1518   GL_LUMINANCE16 = $8042;
1519   GL_LUMINANCE4_ALPHA4 = $8043;
1520   GL_LUMINANCE6_ALPHA2 = $8044;
1521   GL_LUMINANCE8_ALPHA8 = $8045;
1522   GL_LUMINANCE12_ALPHA4 = $8046;
1523   GL_LUMINANCE12_ALPHA12 = $8047;
1524   GL_LUMINANCE16_ALPHA16 = $8048;
1525   GL_INTENSITY = $8049;
1526   GL_INTENSITY4 = $804A;
1527   GL_INTENSITY8 = $804B;
1528   GL_INTENSITY12 = $804C;
1529   GL_INTENSITY16 = $804D;
1530   GL_TEXTURE_LUMINANCE_SIZE = $8060;
1531   GL_TEXTURE_INTENSITY_SIZE = $8061;
1532   GL_TEXTURE_PRIORITY = $8066;
1533   GL_TEXTURE_RESIDENT = $8067;
1534   GL_VERTEX_ARRAY = $8074;
1535   GL_NORMAL_ARRAY = $8075;
1536   GL_COLOR_ARRAY = $8076;
1537   GL_INDEX_ARRAY = $8077;
1538   GL_TEXTURE_COORD_ARRAY = $8078;
1539   GL_EDGE_FLAG_ARRAY = $8079;
1540   GL_VERTEX_ARRAY_SIZE = $807A;
1541   GL_VERTEX_ARRAY_TYPE = $807B;
1542   GL_VERTEX_ARRAY_STRIDE = $807C;
1543   GL_NORMAL_ARRAY_TYPE = $807E;
1544   GL_NORMAL_ARRAY_STRIDE = $807F;
1545   GL_COLOR_ARRAY_SIZE = $8081;
1546   GL_COLOR_ARRAY_TYPE = $8082;
1547   GL_COLOR_ARRAY_STRIDE = $8083;
1548   GL_INDEX_ARRAY_TYPE = $8085;
1549   GL_INDEX_ARRAY_STRIDE = $8086;
1550   GL_TEXTURE_COORD_ARRAY_SIZE = $8088;
1551   GL_TEXTURE_COORD_ARRAY_TYPE = $8089;
1552   GL_TEXTURE_COORD_ARRAY_STRIDE = $808A;
1553   GL_EDGE_FLAG_ARRAY_STRIDE = $808C;
1554   GL_VERTEX_ARRAY_POINTER = $808E;
1555   GL_NORMAL_ARRAY_POINTER = $808F;
1556   GL_COLOR_ARRAY_POINTER = $8090;
1557   GL_INDEX_ARRAY_POINTER = $8091;
1558   GL_TEXTURE_COORD_ARRAY_POINTER = $8092;
1559   GL_EDGE_FLAG_ARRAY_POINTER = $8093;
1560   GL_V2F = $2A20;
1561   GL_V3F = $2A21;
1562   GL_C4UB_V2F = $2A22;
1563   GL_C4UB_V3F = $2A23;
1564   GL_C3F_V3F = $2A24;
1565   GL_N3F_V3F = $2A25;
1566   GL_C4F_N3F_V3F = $2A26;
1567   GL_T2F_V3F = $2A27;
1568   GL_T4F_V4F = $2A28;
1569   GL_T2F_C4UB_V3F = $2A29;
1570   GL_T2F_C3F_V3F = $2A2A;
1571   GL_T2F_N3F_V3F = $2A2B;
1572   GL_T2F_C4F_N3F_V3F = $2A2C;
1573   GL_T4F_C4F_N3F_V4F = $2A2D;
1574   GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1575   GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1576   GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1577   GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1578   GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1579   GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1580   GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1581   GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1582   GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
1583   GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
1584 {$endif}
1585
1586   // GL_VERSION_1_2
1587   GL_UNSIGNED_BYTE_3_3_2 = $8032;
1588   GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
1589   GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
1590   GL_UNSIGNED_INT_8_8_8_8 = $8035;
1591   GL_UNSIGNED_INT_10_10_10_2 = $8036;
1592   GL_TEXTURE_BINDING_3D = $806A;
1593   GL_PACK_SKIP_IMAGES = $806B;
1594   GL_PACK_IMAGE_HEIGHT = $806C;
1595   GL_UNPACK_SKIP_IMAGES = $806D;
1596   GL_UNPACK_IMAGE_HEIGHT = $806E;
1597   GL_TEXTURE_3D = $806F;
1598   GL_PROXY_TEXTURE_3D = $8070;
1599   GL_TEXTURE_DEPTH = $8071;
1600   GL_TEXTURE_WRAP_R = $8072;
1601   GL_MAX_3D_TEXTURE_SIZE = $8073;
1602   GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
1603   GL_UNSIGNED_SHORT_5_6_5 = $8363;
1604   GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
1605   GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
1606   GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
1607   GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
1608   GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
1609   GL_BGR = $80E0;
1610   GL_BGRA = $80E1;
1611   GL_MAX_ELEMENTS_VERTICES = $80E8;
1612   GL_MAX_ELEMENTS_INDICES = $80E9;
1613   GL_CLAMP_TO_EDGE = $812F;
1614   GL_TEXTURE_MIN_LOD = $813A;
1615   GL_TEXTURE_MAX_LOD = $813B;
1616   GL_TEXTURE_BASE_LEVEL = $813C;
1617   GL_TEXTURE_MAX_LEVEL = $813D;
1618   GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
1619   GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
1620   GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
1621   GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
1622   GL_ALIASED_LINE_WIDTH_RANGE = $846E;
1623 {$ifdef DGL_DEPRECATED}
1624   GL_RESCALE_NORMAL = $803A;
1625   GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
1626   GL_SINGLE_COLOR = $81F9;
1627   GL_SEPARATE_SPECULAR_COLOR = $81FA;
1628   GL_ALIASED_POINT_SIZE_RANGE = $846D;
1629 {$endif}
1630
1631   // GL_VERSION_1_3
1632   GL_TEXTURE0 = $84C0;
1633   GL_TEXTURE1 = $84C1;
1634   GL_TEXTURE2 = $84C2;
1635   GL_TEXTURE3 = $84C3;
1636   GL_TEXTURE4 = $84C4;
1637   GL_TEXTURE5 = $84C5;
1638   GL_TEXTURE6 = $84C6;
1639   GL_TEXTURE7 = $84C7;
1640   GL_TEXTURE8 = $84C8;
1641   GL_TEXTURE9 = $84C9;
1642   GL_TEXTURE10 = $84CA;
1643   GL_TEXTURE11 = $84CB;
1644   GL_TEXTURE12 = $84CC;
1645   GL_TEXTURE13 = $84CD;
1646   GL_TEXTURE14 = $84CE;
1647   GL_TEXTURE15 = $84CF;
1648   GL_TEXTURE16 = $84D0;
1649   GL_TEXTURE17 = $84D1;
1650   GL_TEXTURE18 = $84D2;
1651   GL_TEXTURE19 = $84D3;
1652   GL_TEXTURE20 = $84D4;
1653   GL_TEXTURE21 = $84D5;
1654   GL_TEXTURE22 = $84D6;
1655   GL_TEXTURE23 = $84D7;
1656   GL_TEXTURE24 = $84D8;
1657   GL_TEXTURE25 = $84D9;
1658   GL_TEXTURE26 = $84DA;
1659   GL_TEXTURE27 = $84DB;
1660   GL_TEXTURE28 = $84DC;
1661   GL_TEXTURE29 = $84DD;
1662   GL_TEXTURE30 = $84DE;
1663   GL_TEXTURE31 = $84DF;
1664   GL_ACTIVE_TEXTURE = $84E0;
1665   GL_MULTISAMPLE = $809D;
1666   GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
1667   GL_SAMPLE_ALPHA_TO_ONE = $809F;
1668   GL_SAMPLE_COVERAGE = $80A0;
1669   GL_SAMPLE_BUFFERS = $80A8;
1670   GL_SAMPLES = $80A9;
1671   GL_SAMPLE_COVERAGE_VALUE = $80AA;
1672   GL_SAMPLE_COVERAGE_INVERT = $80AB;
1673   GL_TEXTURE_CUBE_MAP = $8513;
1674   GL_TEXTURE_BINDING_CUBE_MAP = $8514;
1675   GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
1676   GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
1677   GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
1678   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
1679   GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
1680   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
1681   GL_PROXY_TEXTURE_CUBE_MAP = $851B;
1682   GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
1683   GL_COMPRESSED_RGB = $84ED;
1684   GL_COMPRESSED_RGBA = $84EE;
1685   GL_TEXTURE_COMPRESSION_HINT = $84EF;
1686   GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
1687   GL_TEXTURE_COMPRESSED = $86A1;
1688   GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
1689   GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
1690   GL_CLAMP_TO_BORDER = $812D;
1691 {$ifdef DGL_DEPRECATED}
1692   GL_CLIENT_ACTIVE_TEXTURE = $84E1;
1693   GL_MAX_TEXTURE_UNITS = $84E2;
1694   GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
1695   GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
1696   GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
1697   GL_TRANSPOSE_COLOR_MATRIX = $84E6;
1698   GL_MULTISAMPLE_BIT = $20000000;
1699   GL_NORMAL_MAP = $8511;
1700   GL_REFLECTION_MAP = $8512;
1701   GL_COMPRESSED_ALPHA = $84E9;
1702   GL_COMPRESSED_LUMINANCE = $84EA;
1703   GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
1704   GL_COMPRESSED_INTENSITY = $84EC;
1705   GL_COMBINE = $8570;
1706   GL_COMBINE_RGB = $8571;
1707   GL_COMBINE_ALPHA = $8572;
1708   GL_SOURCE0_RGB = $8580;
1709   GL_SOURCE1_RGB = $8581;
1710   GL_SOURCE2_RGB = $8582;
1711   GL_SOURCE0_ALPHA = $8588;
1712   GL_SOURCE1_ALPHA = $8589;
1713   GL_SOURCE2_ALPHA = $858A;
1714   GL_OPERAND0_RGB = $8590;
1715   GL_OPERAND1_RGB = $8591;
1716   GL_OPERAND2_RGB = $8592;
1717   GL_OPERAND0_ALPHA = $8598;
1718   GL_OPERAND1_ALPHA = $8599;
1719   GL_OPERAND2_ALPHA = $859A;
1720   GL_RGB_SCALE = $8573;
1721   GL_ADD_SIGNED = $8574;
1722   GL_INTERPOLATE = $8575;
1723   GL_SUBTRACT = $84E7;
1724   GL_CONSTANT = $8576;
1725   GL_PRIMARY_COLOR = $8577;
1726   GL_PREVIOUS = $8578;
1727   GL_DOT3_RGB = $86AE;
1728   GL_DOT3_RGBA = $86AF;
1729 {$endif}
1730
1731   // GL_VERSION_1_4
1732   GL_BLEND_DST_RGB = $80C8;
1733   GL_BLEND_SRC_RGB = $80C9;
1734   GL_BLEND_DST_ALPHA = $80CA;
1735   GL_BLEND_SRC_ALPHA = $80CB;
1736   GL_POINT_FADE_THRESHOLD_SIZE = $8128;
1737   GL_DEPTH_COMPONENT16 = $81A5;
1738   GL_DEPTH_COMPONENT24 = $81A6;
1739   GL_DEPTH_COMPONENT32 = $81A7;
1740   GL_MIRRORED_REPEAT = $8370;
1741   GL_MAX_TEXTURE_LOD_BIAS = $84FD;
1742   GL_TEXTURE_LOD_BIAS = $8501;
1743   GL_INCR_WRAP = $8507;
1744   GL_DECR_WRAP = $8508;
1745   GL_TEXTURE_DEPTH_SIZE = $884A;
1746   GL_TEXTURE_COMPARE_MODE = $884C;
1747   GL_TEXTURE_COMPARE_FUNC = $884D;
1748 {$ifdef DGL_DEPRECATED}
1749   GL_POINT_SIZE_MIN = $8126;
1750   GL_POINT_SIZE_MAX = $8127;
1751   GL_POINT_DISTANCE_ATTENUATION = $8129;
1752   GL_GENERATE_MIPMAP = $8191;
1753   GL_GENERATE_MIPMAP_HINT = $8192;
1754   GL_FOG_COORDINATE_SOURCE = $8450;
1755   GL_FOG_COORDINATE = $8451;
1756   GL_FRAGMENT_DEPTH = $8452;
1757   GL_CURRENT_FOG_COORDINATE = $8453;
1758   GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
1759   GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
1760   GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
1761   GL_FOG_COORDINATE_ARRAY = $8457;
1762   GL_COLOR_SUM = $8458;
1763   GL_CURRENT_SECONDARY_COLOR = $8459;
1764   GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
1765   GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
1766   GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
1767   GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
1768   GL_SECONDARY_COLOR_ARRAY = $845E;
1769   GL_TEXTURE_FILTER_CONTROL = $8500;
1770   GL_DEPTH_TEXTURE_MODE = $884B;
1771   GL_COMPARE_R_TO_TEXTURE = $884E;
1772 {$endif}
1773
1774   // GL_VERSION_1_5
1775   GL_BUFFER_SIZE = $8764;
1776   GL_BUFFER_USAGE = $8765;
1777   GL_QUERY_COUNTER_BITS = $8864;
1778   GL_CURRENT_QUERY = $8865;
1779   GL_QUERY_RESULT = $8866;
1780   GL_QUERY_RESULT_AVAILABLE = $8867;
1781   GL_ARRAY_BUFFER = $8892;
1782   GL_ELEMENT_ARRAY_BUFFER = $8893;
1783   GL_ARRAY_BUFFER_BINDING = $8894;
1784   GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
1785   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
1786   GL_READ_ONLY = $88B8;
1787   GL_WRITE_ONLY = $88B9;
1788   GL_READ_WRITE = $88BA;
1789   GL_BUFFER_ACCESS = $88BB;
1790   GL_BUFFER_MAPPED = $88BC;
1791   GL_BUFFER_MAP_POINTER = $88BD;
1792   GL_STREAM_DRAW = $88E0;
1793   GL_STREAM_READ = $88E1;
1794   GL_STREAM_COPY = $88E2;
1795   GL_STATIC_DRAW = $88E4;
1796   GL_STATIC_READ = $88E5;
1797   GL_STATIC_COPY = $88E6;
1798   GL_DYNAMIC_DRAW = $88E8;
1799   GL_DYNAMIC_READ = $88E9;
1800   GL_DYNAMIC_COPY = $88EA;
1801   GL_SAMPLES_PASSED = $8914;
1802 {$ifdef DGL_DEPRECATED}
1803   GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
1804   GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
1805   GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
1806   GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
1807   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
1808   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
1809   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
1810   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
1811   GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
1812   GL_FOG_COORD_SRC = $8450;
1813   GL_FOG_COORD = $8451;
1814   GL_CURRENT_FOG_COORD = $8453;
1815   GL_FOG_COORD_ARRAY_TYPE = $8454;
1816   GL_FOG_COORD_ARRAY_STRIDE = $8455;
1817   GL_FOG_COORD_ARRAY_POINTER = $8456;
1818   GL_FOG_COORD_ARRAY = $8457;
1819   GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
1820   GL_SRC0_RGB = $8580;
1821   GL_SRC1_RGB = $8581;
1822   GL_SRC2_RGB = $8582;
1823   GL_SRC0_ALPHA = $8588;
1824   GL_SRC1_ALPHA = $8589;
1825   GL_SRC2_ALPHA = $858A;
1826 {$endif}
1827
1828   // GL_VERSION_2_0
1829   GL_BLEND_EQUATION_RGB = $8009;
1830   GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
1831   GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
1832   GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
1833   GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
1834   GL_CURRENT_VERTEX_ATTRIB = $8626;
1835   GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
1836   GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
1837   GL_STENCIL_BACK_FUNC = $8800;
1838   GL_STENCIL_BACK_FAIL = $8801;
1839   GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
1840   GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
1841   GL_MAX_DRAW_BUFFERS = $8824;
1842   GL_DRAW_BUFFER0 = $8825;
1843   GL_DRAW_BUFFER1 = $8826;
1844   GL_DRAW_BUFFER2 = $8827;
1845   GL_DRAW_BUFFER3 = $8828;
1846   GL_DRAW_BUFFER4 = $8829;
1847   GL_DRAW_BUFFER5 = $882A;
1848   GL_DRAW_BUFFER6 = $882B;
1849   GL_DRAW_BUFFER7 = $882C;
1850   GL_DRAW_BUFFER8 = $882D;
1851   GL_DRAW_BUFFER9 = $882E;
1852   GL_DRAW_BUFFER10 = $882F;
1853   GL_DRAW_BUFFER11 = $8830;
1854   GL_DRAW_BUFFER12 = $8831;
1855   GL_DRAW_BUFFER13 = $8832;
1856   GL_DRAW_BUFFER14 = $8833;
1857   GL_DRAW_BUFFER15 = $8834;
1858   GL_BLEND_EQUATION_ALPHA = $883D;
1859   GL_MAX_VERTEX_ATTRIBS = $8869;
1860   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
1861   GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
1862   GL_FRAGMENT_SHADER = $8B30;
1863   GL_VERTEX_SHADER = $8B31;
1864   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
1865   GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
1866   GL_MAX_VARYING_FLOATS = $8B4B;
1867   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
1868   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
1869   GL_SHADER_TYPE = $8B4F;
1870   GL_FLOAT_VEC2 = $8B50;
1871   GL_FLOAT_VEC3 = $8B51;
1872   GL_FLOAT_VEC4 = $8B52;
1873   GL_INT_VEC2 = $8B53;
1874   GL_INT_VEC3 = $8B54;
1875   GL_INT_VEC4 = $8B55;
1876   GL_BOOL = $8B56;
1877   GL_BOOL_VEC2 = $8B57;
1878   GL_BOOL_VEC3 = $8B58;
1879   GL_BOOL_VEC4 = $8B59;
1880   GL_FLOAT_MAT2 = $8B5A;
1881   GL_FLOAT_MAT3 = $8B5B;
1882   GL_FLOAT_MAT4 = $8B5C;
1883   GL_SAMPLER_1D = $8B5D;
1884   GL_SAMPLER_2D = $8B5E;
1885   GL_SAMPLER_3D = $8B5F;
1886   GL_SAMPLER_CUBE = $8B60;
1887   GL_SAMPLER_1D_SHADOW = $8B61;
1888   GL_SAMPLER_2D_SHADOW = $8B62;
1889   GL_DELETE_STATUS = $8B80;
1890   GL_COMPILE_STATUS = $8B81;
1891   GL_LINK_STATUS = $8B82;
1892   GL_VALIDATE_STATUS = $8B83;
1893   GL_INFO_LOG_LENGTH = $8B84;
1894   GL_ATTACHED_SHADERS = $8B85;
1895   GL_ACTIVE_UNIFORMS = $8B86;
1896   GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
1897   GL_SHADER_SOURCE_LENGTH = $8B88;
1898   GL_ACTIVE_ATTRIBUTES = $8B89;
1899   GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
1900   GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
1901   GL_SHADING_LANGUAGE_VERSION = $8B8C;
1902   GL_CURRENT_PROGRAM = $8B8D;
1903   GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
1904   GL_LOWER_LEFT = $8CA1;
1905   GL_UPPER_LEFT = $8CA2;
1906   GL_STENCIL_BACK_REF = $8CA3;
1907   GL_STENCIL_BACK_VALUE_MASK = $8CA4;
1908   GL_STENCIL_BACK_WRITEMASK = $8CA5;
1909 {$ifdef DGL_DEPRECATED}
1910   GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
1911   GL_POINT_SPRITE = $8861;
1912   GL_COORD_REPLACE = $8862;
1913   GL_MAX_TEXTURE_COORDS = $8871;
1914 {$endif}
1915
1916   // GL_VERSION_2_1
1917   GL_PIXEL_PACK_BUFFER = $88EB;
1918   GL_PIXEL_UNPACK_BUFFER = $88EC;
1919   GL_PIXEL_PACK_BUFFER_BINDING = $88ED;
1920   GL_PIXEL_UNPACK_BUFFER_BINDING = $88EF;
1921   GL_FLOAT_MAT2x3 = $8B65;
1922   GL_FLOAT_MAT2x4 = $8B66;
1923   GL_FLOAT_MAT3x2 = $8B67;
1924   GL_FLOAT_MAT3x4 = $8B68;
1925   GL_FLOAT_MAT4x2 = $8B69;
1926   GL_FLOAT_MAT4x3 = $8B6A;
1927   GL_SRGB = $8C40;
1928   GL_SRGB8 = $8C41;
1929   GL_SRGB_ALPHA = $8C42;
1930   GL_SRGB8_ALPHA8 = $8C43;
1931   GL_COMPRESSED_SRGB = $8C48;
1932   GL_COMPRESSED_SRGB_ALPHA = $8C49;
1933 {$ifdef DGL_DEPRECATED}
1934   GL_CURRENT_RASTER_SECONDARY_COLOR = $845F;
1935   GL_SLUMINANCE_ALPHA = $8C44;
1936   GL_SLUMINANCE8_ALPHA8 = $8C45;
1937   GL_SLUMINANCE = $8C46;
1938   GL_SLUMINANCE8 = $8C47;
1939   GL_COMPRESSED_SLUMINANCE = $8C4A;
1940   GL_COMPRESSED_SLUMINANCE_ALPHA = $8C4B;
1941 {$endif}
1942
1943   // GL_VERSION_3_0
1944   GL_COMPARE_REF_TO_TEXTURE = $884E;
1945   GL_CLIP_DISTANCE0 = $3000;
1946   GL_CLIP_DISTANCE1 = $3001;
1947   GL_CLIP_DISTANCE2 = $3002;
1948   GL_CLIP_DISTANCE3 = $3003;
1949   GL_CLIP_DISTANCE4 = $3004;
1950   GL_CLIP_DISTANCE5 = $3005;
1951   GL_CLIP_DISTANCE6 = $3006;
1952   GL_CLIP_DISTANCE7 = $3007;
1953   GL_MAX_CLIP_DISTANCES = $0D32;
1954   GL_MAJOR_VERSION = $821B;
1955   GL_MINOR_VERSION = $821C;
1956   GL_NUM_EXTENSIONS = $821D;
1957   GL_CONTEXT_FLAGS = $821E;
1958   GL_DEPTH_BUFFER = $8223;
1959   GL_STENCIL_BUFFER = $8224;
1960   GL_COMPRESSED_RED = $8225;
1961   GL_COMPRESSED_RG = $8226;
1962   GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = $0001;
1963   GL_RGBA32F = $8814;
1964   GL_RGB32F = $8815;
1965   GL_RGBA16F = $881A;
1966   GL_RGB16F = $881B;
1967   GL_VERTEX_ATTRIB_ARRAY_INTEGER = $88FD;
1968   GL_MAX_ARRAY_TEXTURE_LAYERS = $88FF;
1969   GL_MIN_PROGRAM_TEXEL_OFFSET = $8904;
1970   GL_MAX_PROGRAM_TEXEL_OFFSET = $8905;
1971   GL_CLAMP_READ_COLOR = $891C;
1972   GL_FIXED_ONLY = $891D;
1973   GL_MAX_VARYING_COMPONENTS = $8B4B;
1974   GL_TEXTURE_1D_ARRAY = $8C18;
1975   GL_PROXY_TEXTURE_1D_ARRAY = $8C19;
1976   GL_TEXTURE_2D_ARRAY = $8C1A;
1977   GL_PROXY_TEXTURE_2D_ARRAY = $8C1B;
1978   GL_TEXTURE_BINDING_1D_ARRAY = $8C1C;
1979   GL_TEXTURE_BINDING_2D_ARRAY = $8C1D;
1980   GL_R11F_G11F_B10F = $8C3A;
1981   GL_UNSIGNED_INT_10F_11F_11F_REV = $8C3B;
1982   GL_RGB9_E5 = $8C3D;
1983   GL_UNSIGNED_INT_5_9_9_9_REV = $8C3E;
1984   GL_TEXTURE_SHARED_SIZE = $8C3F;
1985   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = $8C76;
1986   GL_TRANSFORM_FEEDBACK_BUFFER_MODE = $8C7F;
1987   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = $8C80;
1988   GL_TRANSFORM_FEEDBACK_VARYINGS = $8C83;
1989   GL_TRANSFORM_FEEDBACK_BUFFER_START = $8C84;
1990   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = $8C85;
1991   GL_PRIMITIVES_GENERATED = $8C87;
1992   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = $8C88;
1993   GL_RASTERIZER_DISCARD = $8C89;
1994   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = $8C8A;
1995   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = $8C8B;
1996   GL_INTERLEAVED_ATTRIBS = $8C8C;
1997   GL_SEPARATE_ATTRIBS = $8C8D;
1998   GL_TRANSFORM_FEEDBACK_BUFFER = $8C8E;
1999   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = $8C8F;
2000   GL_RGBA32UI = $8D70;
2001   GL_RGB32UI = $8D71;
2002   GL_RGBA16UI = $8D76;
2003   GL_RGB16UI = $8D77;
2004   GL_RGBA8UI = $8D7C;
2005   GL_RGB8UI = $8D7D;
2006   GL_RGBA32I = $8D82;
2007   GL_RGB32I = $8D83;
2008   GL_RGBA16I = $8D88;
2009   GL_RGB16I = $8D89;
2010   GL_RGBA8I = $8D8E;
2011   GL_RGB8I = $8D8F;
2012   GL_RED_INTEGER = $8D94;
2013   GL_GREEN_INTEGER = $8D95;
2014   GL_BLUE_INTEGER = $8D96;
2015   GL_RGB_INTEGER = $8D98;
2016   GL_RGBA_INTEGER = $8D99;
2017   GL_BGR_INTEGER = $8D9A;
2018   GL_BGRA_INTEGER = $8D9B;
2019   GL_SAMPLER_1D_ARRAY = $8DC0;
2020   GL_SAMPLER_2D_ARRAY = $8DC1;
2021   GL_SAMPLER_1D_ARRAY_SHADOW = $8DC3;
2022   GL_SAMPLER_2D_ARRAY_SHADOW = $8DC4;
2023   GL_SAMPLER_CUBE_SHADOW = $8DC5;
2024   GL_UNSIGNED_INT_VEC2 = $8DC6;
2025   GL_UNSIGNED_INT_VEC3 = $8DC7;
2026   GL_UNSIGNED_INT_VEC4 = $8DC8;
2027   GL_INT_SAMPLER_1D = $8DC9;
2028   GL_INT_SAMPLER_2D = $8DCA;
2029   GL_INT_SAMPLER_3D = $8DCB;
2030   GL_INT_SAMPLER_CUBE = $8DCC;
2031   GL_INT_SAMPLER_1D_ARRAY = $8DCE;
2032   GL_INT_SAMPLER_2D_ARRAY = $8DCF;
2033   GL_UNSIGNED_INT_SAMPLER_1D = $8DD1;
2034   GL_UNSIGNED_INT_SAMPLER_2D = $8DD2;
2035   GL_UNSIGNED_INT_SAMPLER_3D = $8DD3;
2036   GL_UNSIGNED_INT_SAMPLER_CUBE = $8DD4;
2037   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = $8DD6;
2038   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = $8DD7;
2039   GL_QUERY_WAIT = $8E13;
2040   GL_QUERY_NO_WAIT = $8E14;
2041   GL_QUERY_BY_REGION_WAIT = $8E15;
2042   GL_QUERY_BY_REGION_NO_WAIT = $8E16;
2043   GL_BUFFER_ACCESS_FLAGS = $911F;
2044   GL_BUFFER_MAP_LENGTH = $9120;
2045   GL_BUFFER_MAP_OFFSET = $9121;
2046   { Reuse tokens from ARB_depth_buffer_float }
2047   { reuse GL_DEPTH_COMPONENT32F }
2048   { reuse GL_DEPTH32F_STENCIL8 }
2049   { reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV }
2050   { Reuse tokens from ARB_framebuffer_object }
2051   { reuse GL_INVALID_FRAMEBUFFER_OPERATION }
2052   { reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING }
2053   { reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE }
2054   { reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE }
2055   { reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE }
2056   { reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE }
2057   { reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE }
2058   { reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE }
2059   { reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE }
2060   { reuse GL_FRAMEBUFFER_DEFAULT }
2061   { reuse GL_FRAMEBUFFER_UNDEFINED }
2062   { reuse GL_DEPTH_STENCIL_ATTACHMENT }
2063   { reuse GL_INDEX }
2064   { reuse GL_MAX_RENDERBUFFER_SIZE }
2065   { reuse GL_DEPTH_STENCIL }
2066   { reuse GL_UNSIGNED_INT_24_8 }
2067   { reuse GL_DEPTH24_STENCIL8 }
2068   { reuse GL_TEXTURE_STENCIL_SIZE }
2069   { reuse GL_TEXTURE_RED_TYPE }
2070   { reuse GL_TEXTURE_GREEN_TYPE }
2071   { reuse GL_TEXTURE_BLUE_TYPE }
2072   { reuse GL_TEXTURE_ALPHA_TYPE }
2073   { reuse GL_TEXTURE_DEPTH_TYPE }
2074   { reuse GL_UNSIGNED_NORMALIZED }
2075   { reuse GL_FRAMEBUFFER_BINDING }
2076   { reuse GL_DRAW_FRAMEBUFFER_BINDING }
2077   { reuse GL_RENDERBUFFER_BINDING }
2078   { reuse GL_READ_FRAMEBUFFER }
2079   { reuse GL_DRAW_FRAMEBUFFER }
2080   { reuse GL_READ_FRAMEBUFFER_BINDING }
2081   { reuse GL_RENDERBUFFER_SAMPLES }
2082   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE }
2083   { reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME }
2084   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL }
2085   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE }
2086   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2087   { reuse GL_FRAMEBUFFER_COMPLETE }
2088   { reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT }
2089   { reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT }
2090   { reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER }
2091   { reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER }
2092   { reuse GL_FRAMEBUFFER_UNSUPPORTED }
2093   { reuse GL_MAX_COLOR_ATTACHMENTS }
2094   { reuse GL_COLOR_ATTACHMENT0 }
2095   { reuse GL_COLOR_ATTACHMENT1 }
2096   { reuse GL_COLOR_ATTACHMENT2 }
2097   { reuse GL_COLOR_ATTACHMENT3 }
2098   { reuse GL_COLOR_ATTACHMENT4 }
2099   { reuse GL_COLOR_ATTACHMENT5 }
2100   { reuse GL_COLOR_ATTACHMENT6 }
2101   { reuse GL_COLOR_ATTACHMENT7 }
2102   { reuse GL_COLOR_ATTACHMENT8 }
2103   { reuse GL_COLOR_ATTACHMENT9 }
2104   { reuse GL_COLOR_ATTACHMENT10 }
2105   { reuse GL_COLOR_ATTACHMENT11 }
2106   { reuse GL_COLOR_ATTACHMENT12 }
2107   { reuse GL_COLOR_ATTACHMENT13 }
2108   { reuse GL_COLOR_ATTACHMENT14 }
2109   { reuse GL_COLOR_ATTACHMENT15 }
2110   { reuse GL_DEPTH_ATTACHMENT }
2111   { reuse GL_STENCIL_ATTACHMENT }
2112   { reuse GL_FRAMEBUFFER }
2113   { reuse GL_RENDERBUFFER }
2114   { reuse GL_RENDERBUFFER_WIDTH }
2115   { reuse GL_RENDERBUFFER_HEIGHT }
2116   { reuse GL_RENDERBUFFER_INTERNAL_FORMAT }
2117   { reuse GL_STENCIL_INDEX1 }
2118   { reuse GL_STENCIL_INDEX4 }
2119   { reuse GL_STENCIL_INDEX8 }
2120   { reuse GL_STENCIL_INDEX16 }
2121   { reuse GL_RENDERBUFFER_RED_SIZE }
2122   { reuse GL_RENDERBUFFER_GREEN_SIZE }
2123   { reuse GL_RENDERBUFFER_BLUE_SIZE }
2124   { reuse GL_RENDERBUFFER_ALPHA_SIZE }
2125   { reuse GL_RENDERBUFFER_DEPTH_SIZE }
2126   { reuse GL_RENDERBUFFER_STENCIL_SIZE }
2127   { reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE }
2128   { reuse GL_MAX_SAMPLES }
2129   { Reuse tokens from ARB_framebuffer_sRGB }
2130   { reuse GL_FRAMEBUFFER_SRGB }
2131   { Reuse tokens from ARB_half_float_vertex }
2132   { reuse GL_HALF_FLOAT }
2133   { Reuse tokens from ARB_map_buffer_range }
2134   { reuse GL_MAP_READ_BIT }
2135   { reuse GL_MAP_WRITE_BIT }
2136   { reuse GL_MAP_INVALIDATE_RANGE_BIT }
2137   { reuse GL_MAP_INVALIDATE_BUFFER_BIT }
2138   { reuse GL_MAP_FLUSH_EXPLICIT_BIT }
2139   { reuse GL_MAP_UNSYNCHRONIZED_BIT }
2140   { Reuse tokens from ARB_texture_compression_rgtc }
2141   { reuse GL_COMPRESSED_RED_RGTC1 }
2142   { reuse GL_COMPRESSED_SIGNED_RED_RGTC1 }
2143   { reuse GL_COMPRESSED_RG_RGTC2 }
2144   { reuse GL_COMPRESSED_SIGNED_RG_RGTC2 }
2145   { Reuse tokens from ARB_texture_rg }
2146   { reuse GL_RG }
2147   { reuse GL_RG_INTEGER }
2148   { reuse GL_R8 }
2149   { reuse GL_R16 }
2150   { reuse GL_RG8 }
2151   { reuse GL_RG16 }
2152   { reuse GL_R16F }
2153   { reuse GL_R32F }
2154   { reuse GL_RG16F }
2155   { reuse GL_RG32F }
2156   { reuse GL_R8I }
2157   { reuse GL_R8UI }
2158   { reuse GL_R16I }
2159   { reuse GL_R16UI }
2160   { reuse GL_R32I }
2161   { reuse GL_R32UI }
2162   { reuse GL_RG8I }
2163   { reuse GL_RG8UI }
2164   { reuse GL_RG16I }
2165   { reuse GL_RG16UI }
2166   { reuse GL_RG32I }
2167   { reuse GL_RG32UI }
2168   { Reuse tokens from ARB_vertex_array_object }
2169   { reuse GL_VERTEX_ARRAY_BINDING }
2170 {$ifdef DGL_DEPRECATED}
2171   GL_CLAMP_VERTEX_COLOR = $891A;
2172   GL_CLAMP_FRAGMENT_COLOR = $891B;
2173   GL_ALPHA_INTEGER = $8D97;
2174   { Reuse tokens from ARB_framebuffer_object }
2175   { reuse GL_TEXTURE_LUMINANCE_TYPE }
2176   { reuse GL_TEXTURE_INTENSITY_TYPE }
2177 {$endif}
2178
2179   // GL_VERSION_3_1
2180   GL_SAMPLER_2D_RECT = $8B63;
2181   GL_SAMPLER_2D_RECT_SHADOW = $8B64;
2182   GL_SAMPLER_BUFFER = $8DC2;
2183   GL_INT_SAMPLER_2D_RECT = $8DCD;
2184   GL_INT_SAMPLER_BUFFER = $8DD0;
2185   GL_UNSIGNED_INT_SAMPLER_2D_RECT = $8DD5;
2186   GL_UNSIGNED_INT_SAMPLER_BUFFER = $8DD8;
2187   GL_TEXTURE_BUFFER = $8C2A;
2188   GL_MAX_TEXTURE_BUFFER_SIZE = $8C2B;
2189   GL_TEXTURE_BINDING_BUFFER = $8C2C;
2190   GL_TEXTURE_BUFFER_DATA_STORE_BINDING = $8C2D;
2191   GL_TEXTURE_BUFFER_FORMAT = $8C2E;
2192   GL_TEXTURE_RECTANGLE = $84F5;
2193   GL_TEXTURE_BINDING_RECTANGLE = $84F6;
2194   GL_PROXY_TEXTURE_RECTANGLE = $84F7;
2195   GL_MAX_RECTANGLE_TEXTURE_SIZE = $84F8;
2196   GL_RED_SNORM = $8F90;
2197   GL_RG_SNORM = $8F91;
2198   GL_RGB_SNORM = $8F92;
2199   GL_RGBA_SNORM = $8F93;
2200   GL_R8_SNORM = $8F94;
2201   GL_RG8_SNORM = $8F95;
2202   GL_RGB8_SNORM = $8F96;
2203   GL_RGBA8_SNORM = $8F97;
2204   GL_R16_SNORM = $8F98;
2205   GL_RG16_SNORM = $8F99;
2206   GL_RGB16_SNORM = $8F9A;
2207   GL_RGBA16_SNORM = $8F9B;
2208   GL_SIGNED_NORMALIZED = $8F9C;
2209   GL_PRIMITIVE_RESTART = $8F9D;
2210   GL_PRIMITIVE_RESTART_INDEX = $8F9E;
2211   { Reuse tokens from ARB_copy_buffer }
2212   { reuse GL_COPY_READ_BUFFER }
2213   { reuse GL_COPY_WRITE_BUFFER }
2214   { Reuse tokens from ARB_draw_instanced (none) }
2215   { Reuse tokens from ARB_uniform_buffer_object }
2216   { reuse GL_UNIFORM_BUFFER }
2217   { reuse GL_UNIFORM_BUFFER_BINDING }
2218   { reuse GL_UNIFORM_BUFFER_START }
2219   { reuse GL_UNIFORM_BUFFER_SIZE }
2220   { reuse GL_MAX_VERTEX_UNIFORM_BLOCKS }
2221   { reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS }
2222   { reuse GL_MAX_COMBINED_UNIFORM_BLOCKS }
2223   { reuse GL_MAX_UNIFORM_BUFFER_BINDINGS }
2224   { reuse GL_MAX_UNIFORM_BLOCK_SIZE }
2225   { reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS }
2226   { reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS }
2227   { reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT }
2228   { reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH }
2229   { reuse GL_ACTIVE_UNIFORM_BLOCKS }
2230   { reuse GL_UNIFORM_TYPE }
2231   { reuse GL_UNIFORM_SIZE }
2232   { reuse GL_UNIFORM_NAME_LENGTH }
2233   { reuse GL_UNIFORM_BLOCK_INDEX }
2234   { reuse GL_UNIFORM_OFFSET }
2235   { reuse GL_UNIFORM_ARRAY_STRIDE }
2236   { reuse GL_UNIFORM_MATRIX_STRIDE }
2237   { reuse GL_UNIFORM_IS_ROW_MAJOR }
2238   { reuse GL_UNIFORM_BLOCK_BINDING }
2239   { reuse GL_UNIFORM_BLOCK_DATA_SIZE }
2240   { reuse GL_UNIFORM_BLOCK_NAME_LENGTH }
2241   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS }
2242   { reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES }
2243   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER }
2244   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER }
2245   { reuse GL_INVALID_INDEX }
2246
2247   // GL_VERSION_3_2
2248   GL_CONTEXT_CORE_PROFILE_BIT = $00000001;
2249   GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = $00000002;
2250   GL_LINES_ADJACENCY = $000A;
2251   GL_LINE_STRIP_ADJACENCY = $000B;
2252   GL_TRIANGLES_ADJACENCY = $000C;
2253   GL_TRIANGLE_STRIP_ADJACENCY = $000D;
2254   GL_PROGRAM_POINT_SIZE = $8642;
2255   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = $8C29;
2256   GL_FRAMEBUFFER_ATTACHMENT_LAYERED = $8DA7;
2257   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = $8DA8;
2258   GL_GEOMETRY_SHADER = $8DD9;
2259   GL_GEOMETRY_VERTICES_OUT = $8916;
2260   GL_GEOMETRY_INPUT_TYPE = $8917;
2261   GL_GEOMETRY_OUTPUT_TYPE = $8918;
2262   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = $8DDF;
2263   GL_MAX_GEOMETRY_OUTPUT_VERTICES = $8DE0;
2264   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = $8DE1;
2265   GL_MAX_VERTEX_OUTPUT_COMPONENTS = $9122;
2266   GL_MAX_GEOMETRY_INPUT_COMPONENTS = $9123;
2267   GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = $9124;
2268   GL_MAX_FRAGMENT_INPUT_COMPONENTS = $9125;
2269   GL_CONTEXT_PROFILE_MASK = $9126;
2270   { reuse GL_MAX_VARYING_COMPONENTS }
2271   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
2272   { Reuse tokens from ARB_depth_clamp }
2273   { reuse GL_DEPTH_CLAMP }
2274   { Reuse tokens from ARB_draw_elements_base_vertex (none) }
2275   { Reuse tokens from ARB_fragment_coord_conventions (none) }
2276   { Reuse tokens from ARB_provoking_vertex }
2277   { reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION }
2278   { reuse GL_FIRST_VERTEX_CONVENTION }
2279   { reuse GL_LAST_VERTEX_CONVENTION }
2280   { reuse GL_PROVOKING_VERTEX }
2281   { Reuse tokens from ARB_seamless_cube_map }
2282   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
2283   { Reuse tokens from ARB_sync }
2284   { reuse GL_MAX_SERVER_WAIT_TIMEOUT }
2285   { reuse GL_OBJECT_TYPE }
2286   { reuse GL_SYNC_CONDITION }
2287   { reuse GL_SYNC_STATUS }
2288   { reuse GL_SYNC_FLAGS }
2289   { reuse GL_SYNC_FENCE }
2290   { reuse GL_SYNC_GPU_COMMANDS_COMPLETE }
2291   { reuse GL_UNSIGNALED }
2292   { reuse GL_SIGNALED }
2293   { reuse GL_ALREADY_SIGNALED }
2294   { reuse GL_TIMEOUT_EXPIRED }
2295   { reuse GL_CONDITION_SATISFIED }
2296   { reuse GL_WAIT_FAILED }
2297   { reuse GL_TIMEOUT_IGNORED }
2298   { reuse GL_SYNC_FLUSH_COMMANDS_BIT }
2299   { reuse GL_TIMEOUT_IGNORED }
2300   { Reuse tokens from ARB_texture_multisample }
2301   { reuse GL_SAMPLE_POSITION }
2302   { reuse GL_SAMPLE_MASK }
2303   { reuse GL_SAMPLE_MASK_VALUE }
2304   { reuse GL_MAX_SAMPLE_MASK_WORDS }
2305   { reuse GL_TEXTURE_2D_MULTISAMPLE }
2306   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE }
2307   { reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY }
2308   { reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY }
2309   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE }
2310   { reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY }
2311   { reuse GL_TEXTURE_SAMPLES }
2312   { reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS }
2313   { reuse GL_SAMPLER_2D_MULTISAMPLE }
2314   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE }
2315   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE }
2316   { reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY }
2317   { reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2318   { reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY }
2319   { reuse GL_MAX_COLOR_TEXTURE_SAMPLES }
2320   { reuse GL_MAX_DEPTH_TEXTURE_SAMPLES }
2321   { reuse GL_MAX_INTEGER_SAMPLES }
2322   { Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core }
2323
2324   // GL_VERSION_3_3
2325   GL_VERTEX_ATTRIB_ARRAY_DIVISOR = $88FE;
2326   { Reuse tokens from ARB_blend_func_extended }
2327   { reuse GL_SRC1_COLOR }
2328   { reuse GL_ONE_MINUS_SRC1_COLOR }
2329   { reuse GL_ONE_MINUS_SRC1_ALPHA }
2330   { reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS }
2331   { Reuse tokens from ARB_explicit_attrib_location (none) }
2332   { Reuse tokens from ARB_occlusion_query2 }
2333   { reuse GL_ANY_SAMPLES_PASSED }
2334   { Reuse tokens from ARB_sampler_objects }
2335   { reuse GL_SAMPLER_BINDING }
2336   { Reuse tokens from ARB_shader_bit_encoding (none) }
2337   { Reuse tokens from ARB_texture_rgb10_a2ui }
2338   { reuse GL_RGB10_A2UI }
2339   { Reuse tokens from ARB_texture_swizzle }
2340   { reuse GL_TEXTURE_SWIZZLE_R }
2341   { reuse GL_TEXTURE_SWIZZLE_G }
2342   { reuse GL_TEXTURE_SWIZZLE_B }
2343   { reuse GL_TEXTURE_SWIZZLE_A }
2344   { reuse GL_TEXTURE_SWIZZLE_RGBA }
2345   { Reuse tokens from ARB_timer_query }
2346   { reuse GL_TIME_ELAPSED }
2347   { reuse GL_TIMESTAMP }
2348   { Reuse tokens from ARB_vertex_type_2_10_10_10_rev }
2349   { reuse GL_INT_2_10_10_10_REV }
2350
2351   // GL_VERSION_4_0
2352   GL_SAMPLE_SHADING = $8C36;
2353   GL_MIN_SAMPLE_SHADING_VALUE = $8C37;
2354   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5E;
2355   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = $8E5F;
2356   GL_TEXTURE_CUBE_MAP_ARRAY = $9009;
2357   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = $900A;
2358   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = $900B;
2359   GL_SAMPLER_CUBE_MAP_ARRAY = $900C;
2360   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = $900D;
2361   GL_INT_SAMPLER_CUBE_MAP_ARRAY = $900E;
2362   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = $900F;
2363   { Reuse tokens from ARB_texture_query_lod (none) }
2364   { Reuse tokens from ARB_draw_buffers_blend (none) }
2365   { Reuse tokens from ARB_draw_indirect }
2366   { reuse GL_DRAW_INDIRECT_BUFFER }
2367   { reuse GL_DRAW_INDIRECT_BUFFER_BINDING }
2368   { Reuse tokens from ARB_gpu_shader5 }
2369   { reuse GL_GEOMETRY_SHADER_INVOCATIONS }
2370   { reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS }
2371   { reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET }
2372   { reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET }
2373   { reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS }
2374   { reuse GL_MAX_VERTEX_STREAMS }
2375   { Reuse tokens from ARB_gpu_shader_fp64 }
2376   { reuse GL_DOUBLE_VEC2 }
2377   { reuse GL_DOUBLE_VEC3 }
2378   { reuse GL_DOUBLE_VEC4 }
2379   { reuse GL_DOUBLE_MAT2 }
2380   { reuse GL_DOUBLE_MAT3 }
2381   { reuse GL_DOUBLE_MAT4 }
2382   { reuse GL_DOUBLE_MAT2x3 }
2383   { reuse GL_DOUBLE_MAT2x4 }
2384   { reuse GL_DOUBLE_MAT3x2 }
2385   { reuse GL_DOUBLE_MAT3x4 }
2386   { reuse GL_DOUBLE_MAT4x2 }
2387   { reuse GL_DOUBLE_MAT4x3 }
2388   { Reuse tokens from ARB_shader_subroutine }
2389   { reuse GL_ACTIVE_SUBROUTINES }
2390   { reuse GL_ACTIVE_SUBROUTINE_UNIFORMS }
2391   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS }
2392   { reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH }
2393   { reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH }
2394   { reuse GL_MAX_SUBROUTINES }
2395   { reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS }
2396   { reuse GL_NUM_COMPATIBLE_SUBROUTINES }
2397   { reuse GL_COMPATIBLE_SUBROUTINES }
2398   { Reuse tokens from ARB_tessellation_shader }
2399   { reuse GL_PATCHES }
2400   { reuse GL_PATCH_VERTICES }
2401   { reuse GL_PATCH_DEFAULT_INNER_LEVEL }
2402   { reuse GL_PATCH_DEFAULT_OUTER_LEVEL }
2403   { reuse GL_TESS_CONTROL_OUTPUT_VERTICES }
2404   { reuse GL_TESS_GEN_MODE }
2405   { reuse GL_TESS_GEN_SPACING }
2406   { reuse GL_TESS_GEN_VERTEX_ORDER }
2407   { reuse GL_TESS_GEN_POINT_MODE }
2408   { reuse GL_ISOLINES }
2409   { reuse GL_FRACTIONAL_ODD }
2410   { reuse GL_FRACTIONAL_EVEN }
2411   { reuse GL_MAX_PATCH_VERTICES }
2412   { reuse GL_MAX_TESS_GEN_LEVEL }
2413   { reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS }
2414   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS }
2415   { reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS }
2416   { reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS }
2417   { reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS }
2418   { reuse GL_MAX_TESS_PATCH_COMPONENTS }
2419   { reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS }
2420   { reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS }
2421   { reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS }
2422   { reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS }
2423   { reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS }
2424   { reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS }
2425   { reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS }
2426   { reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS }
2427   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER }
2428   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER }
2429   { reuse GL_TESS_EVALUATION_SHADER }
2430   { reuse GL_TESS_CONTROL_SHADER }
2431   { Reuse tokens from ARB_texture_buffer_object_rgb32 (none) }
2432   { Reuse tokens from ARB_transform_feedback2 }
2433   { reuse GL_TRANSFORM_FEEDBACK }
2434   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED }
2435   { reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE }
2436   { reuse GL_TRANSFORM_FEEDBACK_BINDING }
2437   { Reuse tokens from ARB_transform_feedback3 }
2438   { reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS }
2439   { reuse GL_MAX_VERTEX_STREAMS }
2440
2441   // GL_VERSION_4_1
2442   { Reuse tokens from ARB_ES2_compatibility }
2443   { reuse GL_FIXED }
2444   { reuse GL_IMPLEMENTATION_COLOR_READ_TYPE }
2445   { reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT }
2446   { reuse GL_LOW_FLOAT }
2447   { reuse GL_MEDIUM_FLOAT }
2448   { reuse GL_HIGH_FLOAT }
2449   { reuse GL_LOW_INT }
2450   { reuse GL_MEDIUM_INT }
2451   { reuse GL_HIGH_INT }
2452   { reuse GL_SHADER_COMPILER }
2453   { reuse GL_NUM_SHADER_BINARY_FORMATS }
2454   { reuse GL_MAX_VERTEX_UNIFORM_VECTORS }
2455   { reuse GL_MAX_VARYING_VECTORS }
2456   { reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS }
2457   { reuse GL_RGB565 }
2458   { Reuse tokens from ARB_get_program_binary }
2459   { reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT }
2460   { reuse GL_PROGRAM_BINARY_LENGTH }
2461   { reuse GL_NUM_PROGRAM_BINARY_FORMATS }
2462   { reuse GL_PROGRAM_BINARY_FORMATS }
2463   { Reuse tokens from ARB_separate_shader_objects }
2464   { reuse GL_VERTEX_SHADER_BIT }
2465   { reuse GL_FRAGMENT_SHADER_BIT }
2466   { reuse GL_GEOMETRY_SHADER_BIT }
2467   { reuse GL_TESS_CONTROL_SHADER_BIT }
2468   { reuse GL_TESS_EVALUATION_SHADER_BIT }
2469   { reuse GL_ALL_SHADER_BITS }
2470   { reuse GL_PROGRAM_SEPARABLE }
2471   { reuse GL_ACTIVE_PROGRAM }
2472   { reuse GL_PROGRAM_PIPELINE_BINDING }
2473   { Reuse tokens from ARB_shader_precision (none) }
2474   { Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already }
2475   { Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already }
2476   { reuse GL_MAX_VIEWPORTS }
2477   { reuse GL_VIEWPORT_SUBPIXEL_BITS }
2478   { reuse GL_VIEWPORT_BOUNDS_RANGE }
2479   { reuse GL_LAYER_PROVOKING_VERTEX }
2480   { reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX }
2481   { reuse GL_UNDEFINED_VERTEX }
2482
2483   // GL_VERSION_4_2
2484   { Reuse tokens from ARB_base_instance (none) }
2485   { Reuse tokens from ARB_shading_language_420pack (none) }
2486   { Reuse tokens from ARB_transform_feedback_instanced (none) }
2487   { Reuse tokens from ARB_compressed_texture_pixel_storage }
2488   { reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH }
2489   { reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT }
2490   { reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH }
2491   { reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE }
2492   { reuse GL_PACK_COMPRESSED_BLOCK_WIDTH }
2493   { reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT }
2494   { reuse GL_PACK_COMPRESSED_BLOCK_DEPTH }
2495   { reuse GL_PACK_COMPRESSED_BLOCK_SIZE }
2496   { Reuse tokens from ARB_conservative_depth (none) }
2497   { Reuse tokens from ARB_internalformat_query }
2498   { reuse GL_NUM_SAMPLE_COUNTS }
2499   { Reuse tokens from ARB_map_buffer_alignment }
2500   { reuse GL_MIN_MAP_BUFFER_ALIGNMENT }
2501   { Reuse tokens from ARB_shader_atomic_counters }
2502   { reuse GL_ATOMIC_COUNTER_BUFFER }
2503   { reuse GL_ATOMIC_COUNTER_BUFFER_BINDING }
2504   { reuse GL_ATOMIC_COUNTER_BUFFER_START }
2505   { reuse GL_ATOMIC_COUNTER_BUFFER_SIZE }
2506   { reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE }
2507   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS }
2508   { reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES }
2509   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER }
2510   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER }
2511   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER }
2512   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER }
2513   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER }
2514   { reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS }
2515   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS }
2516   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS }
2517   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS }
2518   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS }
2519   { reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS }
2520   { reuse GL_MAX_VERTEX_ATOMIC_COUNTERS }
2521   { reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS }
2522   { reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS }
2523   { reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS }
2524   { reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS }
2525   { reuse GL_MAX_COMBINED_ATOMIC_COUNTERS }
2526   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE }
2527   { reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS }
2528   { reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS }
2529   { reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX }
2530   { reuse GL_UNSIGNED_INT_ATOMIC_COUNTER }
2531   { Reuse tokens from ARB_shader_image_load_store }
2532   { reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT }
2533   { reuse GL_ELEMENT_ARRAY_BARRIER_BIT }
2534   { reuse GL_UNIFORM_BARRIER_BIT }
2535   { reuse GL_TEXTURE_FETCH_BARRIER_BIT }
2536   { reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT }
2537   { reuse GL_COMMAND_BARRIER_BIT }
2538   { reuse GL_PIXEL_BUFFER_BARRIER_BIT }
2539   { reuse GL_TEXTURE_UPDATE_BARRIER_BIT }
2540   { reuse GL_BUFFER_UPDATE_BARRIER_BIT }
2541   { reuse GL_FRAMEBUFFER_BARRIER_BIT }
2542   { reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT }
2543   { reuse GL_ATOMIC_COUNTER_BARRIER_BIT }
2544   { reuse GL_ALL_BARRIER_BITS }
2545   { reuse GL_MAX_IMAGE_UNITS }
2546   { reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS }
2547   { reuse GL_IMAGE_BINDING_NAME }
2548   { reuse GL_IMAGE_BINDING_LEVEL }
2549   { reuse GL_IMAGE_BINDING_LAYERED }
2550   { reuse GL_IMAGE_BINDING_LAYER }
2551   { reuse GL_IMAGE_BINDING_ACCESS }
2552   { reuse GL_IMAGE_1D }
2553   { reuse GL_IMAGE_2D }
2554   { reuse GL_IMAGE_3D }
2555   { reuse GL_IMAGE_2D_RECT }
2556   { reuse GL_IMAGE_CUBE }
2557   { reuse GL_IMAGE_BUFFER }
2558   { reuse GL_IMAGE_1D_ARRAY }
2559   { reuse GL_IMAGE_2D_ARRAY }
2560   { reuse GL_IMAGE_CUBE_MAP_ARRAY }
2561   { reuse GL_IMAGE_2D_MULTISAMPLE }
2562   { reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY }
2563   { reuse GL_INT_IMAGE_1D }
2564   { reuse GL_INT_IMAGE_2D }
2565   { reuse GL_INT_IMAGE_3D }
2566   { reuse GL_INT_IMAGE_2D_RECT }
2567   { reuse GL_INT_IMAGE_CUBE }
2568   { reuse GL_INT_IMAGE_BUFFER }
2569   { reuse GL_INT_IMAGE_1D_ARRAY }
2570   { reuse GL_INT_IMAGE_2D_ARRAY }
2571   { reuse GL_INT_IMAGE_CUBE_MAP_ARRAY }
2572   { reuse GL_INT_IMAGE_2D_MULTISAMPLE }
2573   { reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2574   { reuse GL_UNSIGNED_INT_IMAGE_1D }
2575   { reuse GL_UNSIGNED_INT_IMAGE_2D }
2576   { reuse GL_UNSIGNED_INT_IMAGE_3D }
2577   { reuse GL_UNSIGNED_INT_IMAGE_2D_RECT }
2578   { reuse GL_UNSIGNED_INT_IMAGE_CUBE }
2579   { reuse GL_UNSIGNED_INT_IMAGE_BUFFER }
2580   { reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY }
2581   { reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY }
2582   { reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY }
2583   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE }
2584   { reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY }
2585   { reuse GL_MAX_IMAGE_SAMPLES }
2586   { reuse GL_IMAGE_BINDING_FORMAT }
2587   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE }
2588   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE }
2589   { reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS }
2590   { reuse GL_MAX_VERTEX_IMAGE_UNIFORMS }
2591   { reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS }
2592   { reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS }
2593   { reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS }
2594   { reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS }
2595   { reuse GL_MAX_COMBINED_IMAGE_UNIFORMS }
2596   { Reuse tokens from ARB_shading_language_packing (none) }
2597   { Reuse tokens from ARB_texture_storage }
2598   { reuse GL_TEXTURE_IMMUTABLE_FORMAT }
2599
2600   // GL_VERSION_4_3
2601   GL_NUM_SHADING_LANGUAGE_VERSIONS  = $82E9;
2602   GL_VERTEX_ATTRIB_ARRAY_LONG = $874E;
2603   { Reuse tokens from ARB_arrays_of_arrays (none, GLSL only) }
2604   { Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only) }
2605   { Reuse tokens from ARB_shader_image_size (none, GLSL only) }
2606   { Reuse tokens from ARB_ES3_compatibility }
2607   { reuse GL_COMPRESSED_RGB8_ETC2 }
2608   { reuse GL_COMPRESSED_SRGB8_ETC2 }
2609   { reuse GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2610   { reuse GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 }
2611   { reuse GL_COMPRESSED_RGBA8_ETC2_EAC }
2612   { reuse GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC }
2613   { reuse GL_COMPRESSED_R11_EAC }
2614   { reuse GL_COMPRESSED_SIGNED_R11_EAC }
2615   { reuse GL_COMPRESSED_RG11_EAC }
2616   { reuse GL_COMPRESSED_SIGNED_RG11_EAC }
2617   { reuse GL_PRIMITIVE_RESTART_FIXED_INDEX }
2618   { reuse GL_ANY_SAMPLES_PASSED_CONSERVATIVE }
2619   { reuse GL_MAX_ELEMENT_INDEX }
2620   { Reuse tokens from ARB_clear_buffer_object (none) }
2621   { Reuse tokens from ARB_compute_shader }
2622   { reuse GL_COMPUTE_SHADER }
2623   { reuse GL_MAX_COMPUTE_UNIFORM_BLOCKS }
2624   { reuse GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS }
2625   { reuse GL_MAX_COMPUTE_IMAGE_UNIFORMS }
2626   { reuse GL_MAX_COMPUTE_SHARED_MEMORY_SIZE }
2627   { reuse GL_MAX_COMPUTE_UNIFORM_COMPONENTS }
2628   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS }
2629   { reuse GL_MAX_COMPUTE_ATOMIC_COUNTERS }
2630   { reuse GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS }
2631   { reuse GL_MAX_COMPUTE_LOCAL_INVOCATIONS }
2632   { reuse GL_MAX_COMPUTE_WORK_GROUP_COUNT }
2633   { reuse GL_MAX_COMPUTE_WORK_GROUP_SIZE }
2634   { reuse GL_COMPUTE_LOCAL_WORK_SIZE }
2635   { reuse GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER }
2636   { reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER }
2637   { reuse GL_DISPATCH_INDIRECT_BUFFER }
2638   { reuse GL_DISPATCH_INDIRECT_BUFFER_BINDING }
2639   { Reuse tokens from ARB_copy_image (none) }
2640   { Reuse tokens from KHR_debug }
2641   { reuse GL_DEBUG_OUTPUT_SYNCHRONOUS }
2642   { reuse GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH }
2643   { reuse GL_DEBUG_CALLBACK_FUNCTION }
2644   { reuse GL_DEBUG_CALLBACK_USER_PARAM }
2645   { reuse GL_DEBUG_SOURCE_API }
2646   { reuse GL_DEBUG_SOURCE_WINDOW_SYSTEM }
2647   { reuse GL_DEBUG_SOURCE_SHADER_COMPILER }
2648   { reuse GL_DEBUG_SOURCE_THIRD_PARTY }
2649   { reuse GL_DEBUG_SOURCE_APPLICATION }
2650   { reuse GL_DEBUG_SOURCE_OTHER }
2651   { reuse GL_DEBUG_TYPE_ERROR }
2652   { reuse GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR }
2653   { reuse GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR }
2654   { reuse GL_DEBUG_TYPE_PORTABILITY }
2655   { reuse GL_DEBUG_TYPE_PERFORMANCE }
2656   { reuse GL_DEBUG_TYPE_OTHER }
2657   { reuse GL_MAX_DEBUG_MESSAGE_LENGTH }
2658   { reuse GL_MAX_DEBUG_LOGGED_MESSAGES }
2659   { reuse GL_DEBUG_LOGGED_MESSAGES }
2660   { reuse GL_DEBUG_SEVERITY_HIGH }
2661   { reuse GL_DEBUG_SEVERITY_MEDIUM }
2662   { reuse GL_DEBUG_SEVERITY_LOW }
2663   { reuse GL_DEBUG_TYPE_MARKER }
2664   { reuse GL_DEBUG_TYPE_PUSH_GROUP }
2665   { reuse GL_DEBUG_TYPE_POP_GROUP }
2666   { reuse GL_DEBUG_SEVERITY_NOTIFICATION }
2667   { reuse GL_MAX_DEBUG_GROUP_STACK_DEPTH }
2668   { reuse GL_DEBUG_GROUP_STACK_DEPTH }
2669   { reuse GL_BUFFER }
2670   { reuse GL_SHADER }
2671   { reuse GL_PROGRAM }
2672   { reuse GL_QUERY }
2673   { reuse GL_PROGRAM_PIPELINE }
2674   { reuse GL_SAMPLER }
2675   { reuse GL_DISPLAY_LIST }
2676   { reuse GL_MAX_LABEL_LENGTH }
2677   { reuse GL_DEBUG_OUTPUT }
2678   { reuse GL_CONTEXT_FLAG_DEBUG_BIT }
2679   { reuse GL_STACK_UNDERFLOW }
2680   { reuse GL_STACK_OVERFLOW }
2681   { Reuse tokens from ARB_explicit_uniform_location }
2682   { reuse GL_MAX_UNIFORM_LOCATIONS }
2683   { Reuse tokens from ARB_framebuffer_no_attachments }
2684   { reuse GL_FRAMEBUFFER_DEFAULT_WIDTH }
2685   { reuse GL_FRAMEBUFFER_DEFAULT_HEIGHT }
2686   { reuse GL_FRAMEBUFFER_DEFAULT_LAYERS }
2687   { reuse GL_FRAMEBUFFER_DEFAULT_SAMPLES }
2688   { reuse GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS }
2689   { reuse GL_MAX_FRAMEBUFFER_WIDTH }
2690   { reuse GL_MAX_FRAMEBUFFER_HEIGHT }
2691   { reuse GL_MAX_FRAMEBUFFER_LAYERS }
2692   { reuse GL_MAX_FRAMEBUFFER_SAMPLES }
2693   { Reuse tokens from ARB_internalformat_query2 }
2694   { reuse GL_INTERNALFORMAT_SUPPORTED }
2695   { reuse GL_INTERNALFORMAT_PREFERRED }
2696   { reuse GL_INTERNALFORMAT_RED_SIZE }
2697   { reuse GL_INTERNALFORMAT_GREEN_SIZE }
2698   { reuse GL_INTERNALFORMAT_BLUE_SIZE }
2699   { reuse GL_INTERNALFORMAT_ALPHA_SIZE }
2700   { reuse GL_INTERNALFORMAT_DEPTH_SIZE }
2701   { reuse GL_INTERNALFORMAT_STENCIL_SIZE }
2702   { reuse GL_INTERNALFORMAT_SHARED_SIZE }
2703   { reuse GL_INTERNALFORMAT_RED_TYPE }
2704   { reuse GL_INTERNALFORMAT_GREEN_TYPE }
2705   { reuse GL_INTERNALFORMAT_BLUE_TYPE }
2706   { reuse GL_INTERNALFORMAT_ALPHA_TYPE }
2707   { reuse GL_INTERNALFORMAT_DEPTH_TYPE }
2708   { reuse GL_INTERNALFORMAT_STENCIL_TYPE }
2709   { reuse GL_MAX_WIDTH }
2710   { reuse GL_MAX_HEIGHT }
2711   { reuse GL_MAX_DEPTH }
2712   { reuse GL_MAX_LAYERS }
2713   { reuse GL_MAX_COMBINED_DIMENSIONS }
2714   { reuse GL_COLOR_COMPONENTS }
2715   { reuse GL_DEPTH_COMPONENTS }
2716   { reuse GL_STENCIL_COMPONENTS }
2717   { reuse GL_COLOR_RENDERABLE }
2718   { reuse GL_DEPTH_RENDERABLE }
2719   { reuse GL_STENCIL_RENDERABLE }
2720   { reuse GL_FRAMEBUFFER_RENDERABLE }
2721   { reuse GL_FRAMEBUFFER_RENDERABLE_LAYERED }
2722   { reuse GL_FRAMEBUFFER_BLEND }
2723   { reuse GL_READ_PIXELS }
2724   { reuse GL_READ_PIXELS_FORMAT }
2725   { reuse GL_READ_PIXELS_TYPE }
2726   { reuse GL_TEXTURE_IMAGE_FORMAT }
2727   { reuse GL_TEXTURE_IMAGE_TYPE }
2728   { reuse GL_GET_TEXTURE_IMAGE_FORMAT }
2729   { reuse GL_GET_TEXTURE_IMAGE_TYPE }
2730   { reuse GL_MIPMAP }
2731   { reuse GL_MANUAL_GENERATE_MIPMAP }
2732   { reuse GL_AUTO_GENERATE_MIPMAP }
2733   { reuse GL_COLOR_ENCODING }
2734   { reuse GL_SRGB_READ }
2735   { reuse GL_SRGB_WRITE }
2736   { reuse GL_FILTER }
2737   { reuse GL_VERTEX_TEXTURE }
2738   { reuse GL_TESS_CONTROL_TEXTURE }
2739   { reuse GL_TESS_EVALUATION_TEXTURE }
2740   { reuse GL_GEOMETRY_TEXTURE }
2741   { reuse GL_FRAGMENT_TEXTURE }
2742   { reuse GL_COMPUTE_TEXTURE }
2743   { reuse GL_TEXTURE_SHADOW }
2744   { reuse GL_TEXTURE_GATHER }
2745   { reuse GL_TEXTURE_GATHER_SHADOW }
2746   { reuse GL_SHADER_IMAGE_LOAD }
2747   { reuse GL_SHADER_IMAGE_STORE }
2748   { reuse GL_SHADER_IMAGE_ATOMIC }
2749   { reuse GL_IMAGE_TEXEL_SIZE }
2750   { reuse GL_IMAGE_COMPATIBILITY_CLASS }
2751   { reuse GL_IMAGE_PIXEL_FORMAT }
2752   { reuse GL_IMAGE_PIXEL_TYPE }
2753   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST }
2754   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST }
2755   { reuse GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE }
2756   { reuse GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE }
2757   { reuse GL_TEXTURE_COMPRESSED_BLOCK_WIDTH }
2758   { reuse GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT }
2759   { reuse GL_TEXTURE_COMPRESSED_BLOCK_SIZE }
2760   { reuse GL_CLEAR_BUFFER }
2761   { reuse GL_TEXTURE_VIEW }
2762   { reuse GL_VIEW_COMPATIBILITY_CLASS }
2763   { reuse GL_FULL_SUPPORT }
2764   { reuse GL_CAVEAT_SUPPORT }
2765   { reuse GL_IMAGE_CLASS_4_X_32 }
2766   { reuse GL_IMAGE_CLASS_2_X_32 }
2767   { reuse GL_IMAGE_CLASS_1_X_32 }
2768   { reuse GL_IMAGE_CLASS_4_X_16 }
2769   { reuse GL_IMAGE_CLASS_2_X_16 }
2770   { reuse GL_IMAGE_CLASS_1_X_16 }
2771   { reuse GL_IMAGE_CLASS_4_X_8 }
2772   { reuse GL_IMAGE_CLASS_2_X_8 }
2773   { reuse GL_IMAGE_CLASS_1_X_8 }
2774   { reuse GL_IMAGE_CLASS_11_11_10 }
2775   { reuse GL_IMAGE_CLASS_10_10_10_2 }
2776   { reuse GL_VIEW_CLASS_128_BITS }
2777   { reuse GL_VIEW_CLASS_96_BITS }
2778   { reuse GL_VIEW_CLASS_64_BITS }
2779   { reuse GL_VIEW_CLASS_48_BITS }
2780   { reuse GL_VIEW_CLASS_32_BITS }
2781   { reuse GL_VIEW_CLASS_24_BITS }
2782   { reuse GL_VIEW_CLASS_16_BITS }
2783   { reuse GL_VIEW_CLASS_8_BITS }
2784   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGB }
2785   { reuse GL_VIEW_CLASS_S3TC_DXT1_RGBA }
2786   { reuse GL_VIEW_CLASS_S3TC_DXT3_RGBA }
2787   { reuse GL_VIEW_CLASS_S3TC_DXT5_RGBA }
2788   { reuse GL_VIEW_CLASS_RGTC1_RED }
2789   { reuse GL_VIEW_CLASS_RGTC2_RG }
2790   { reuse GL_VIEW_CLASS_BPTC_UNORM }
2791   { reuse GL_VIEW_CLASS_BPTC_FLOAT }
2792   { Reuse tokens from ARB_invalidate_subdata (none) }
2793   { Reuse tokens from ARB_multi_draw_indirect (none) }
2794   { Reuse tokens from ARB_program_interface_query }
2795   { reuse GL_UNIFORM }
2796   { reuse GL_UNIFORM_BLOCK }
2797   { reuse GL_PROGRAM_INPUT }
2798   { reuse GL_PROGRAM_OUTPUT }
2799   { reuse GL_BUFFER_VARIABLE }
2800   { reuse GL_SHADER_STORAGE_BLOCK }
2801   { reuse GL_VERTEX_SUBROUTINE }
2802   { reuse GL_TESS_CONTROL_SUBROUTINE }
2803   { reuse GL_TESS_EVALUATION_SUBROUTINE }
2804   { reuse GL_GEOMETRY_SUBROUTINE }
2805   { reuse GL_FRAGMENT_SUBROUTINE }
2806   { reuse GL_COMPUTE_SUBROUTINE }
2807   { reuse GL_VERTEX_SUBROUTINE_UNIFORM }
2808   { reuse GL_TESS_CONTROL_SUBROUTINE_UNIFORM }
2809   { reuse GL_TESS_EVALUATION_SUBROUTINE_UNIFORM }
2810   { reuse GL_GEOMETRY_SUBROUTINE_UNIFORM }
2811   { reuse GL_FRAGMENT_SUBROUTINE_UNIFORM }
2812   { reuse GL_COMPUTE_SUBROUTINE_UNIFORM }
2813   { reuse GL_TRANSFORM_FEEDBACK_VARYING }
2814   { reuse GL_ACTIVE_RESOURCES }
2815   { reuse GL_MAX_NAME_LENGTH }
2816   { reuse GL_MAX_NUM_ACTIVE_VARIABLES }
2817   { reuse GL_MAX_NUM_COMPATIBLE_SUBROUTINES }
2818   { reuse GL_NAME_LENGTH }
2819   { reuse GL_TYPE }
2820   { reuse GL_ARRAY_SIZE }
2821   { reuse GL_OFFSET }
2822   { reuse GL_BLOCK_INDEX }
2823   { reuse GL_ARRAY_STRIDE }
2824   { reuse GL_MATRIX_STRIDE }
2825   { reuse GL_IS_ROW_MAJOR }
2826   { reuse GL_ATOMIC_COUNTER_BUFFER_INDEX }
2827   { reuse GL_BUFFER_BINDING }
2828   { reuse GL_BUFFER_DATA_SIZE }
2829   { reuse GL_NUM_ACTIVE_VARIABLES }
2830   { reuse GL_ACTIVE_VARIABLES }
2831   { reuse GL_REFERENCED_BY_VERTEX_SHADER }
2832   { reuse GL_REFERENCED_BY_TESS_CONTROL_SHADER }
2833   { reuse GL_REFERENCED_BY_TESS_EVALUATION_SHADER }
2834   { reuse GL_REFERENCED_BY_GEOMETRY_SHADER }
2835   { reuse GL_REFERENCED_BY_FRAGMENT_SHADER }
2836   { reuse GL_REFERENCED_BY_COMPUTE_SHADER }
2837   { reuse GL_TOP_LEVEL_ARRAY_SIZE }
2838   { reuse GL_TOP_LEVEL_ARRAY_STRIDE }
2839   { reuse GL_LOCATION }
2840   { reuse GL_LOCATION_INDEX }
2841   { reuse GL_IS_PER_PATCH }
2842   { Reuse tokens from ARB_robust_buffer_access_behavior (none) }
2843   { Reuse tokens from ARB_shader_storage_buffer_object }
2844   { reuse GL_SHADER_STORAGE_BUFFER }
2845   { reuse GL_SHADER_STORAGE_BUFFER_BINDING }
2846   { reuse GL_SHADER_STORAGE_BUFFER_START }
2847   { reuse GL_SHADER_STORAGE_BUFFER_SIZE }
2848   { reuse GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS }
2849   { reuse GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS }
2850   { reuse GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS }
2851   { reuse GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS }
2852   { reuse GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS }
2853   { reuse GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS }
2854   { reuse GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS }
2855   { reuse GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS }
2856   { reuse GL_MAX_SHADER_STORAGE_BLOCK_SIZE }
2857   { reuse GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT }
2858   { reuse GL_SHADER_STORAGE_BARRIER_BIT }
2859   { reuse GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES }
2860   { Reuse tokens from ARB_stencil_texturing }
2861   { reuse GL_DEPTH_STENCIL_TEXTURE_MODE }
2862   { Reuse tokens from ARB_texture_buffer_range }
2863   { reuse GL_TEXTURE_BUFFER_OFFSET }
2864   { reuse GL_TEXTURE_BUFFER_SIZE }
2865   { reuse GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT }
2866   { Reuse tokens from ARB_texture_query_levels (none) }
2867   { Reuse tokens from ARB_texture_storage_multisample (none) }
2868   { Reuse tokens from ARB_texture_view }
2869   { reuse GL_TEXTURE_VIEW_MIN_LEVEL }
2870   { reuse GL_TEXTURE_VIEW_NUM_LEVELS }
2871   { reuse GL_TEXTURE_VIEW_MIN_LAYER }
2872   { reuse GL_TEXTURE_VIEW_NUM_LAYERS }
2873   { reuse GL_TEXTURE_IMMUTABLE_LEVELS }
2874   { Reuse tokens from ARB_vertex_attrib_binding }
2875   { reuse GL_VERTEX_ATTRIB_BINDING }
2876   { reuse GL_VERTEX_ATTRIB_RELATIVE_OFFSET }
2877   { reuse GL_VERTEX_BINDING_DIVISOR }
2878   { reuse GL_VERTEX_BINDING_OFFSET }
2879   { reuse GL_VERTEX_BINDING_STRIDE }
2880   { reuse GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET }
2881   { reuse GL_MAX_VERTEX_ATTRIB_BINDINGS }
2882
2883
2884   // GL_3DFX_multisample
2885   GL_MULTISAMPLE_3DFX = $86B2;
2886   GL_SAMPLE_BUFFERS_3DFX = $86B3;
2887   GL_SAMPLES_3DFX = $86B4;
2888   GL_MULTISAMPLE_BIT_3DFX = $20000000;
2889
2890   // GL_3DFX_texture_compression_FXT1
2891   GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
2892   GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
2893
2894   // GL_APPLE_client_storage
2895   GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
2896
2897   // GL_APPLE_element_array
2898   GL_ELEMENT_ARRAY_APPLE = $8A0C;
2899   GL_ELEMENT_ARRAY_TYPE_APPLE = $8A0D;
2900   GL_ELEMENT_ARRAY_POINTER_APPLE = $8A0E;
2901
2902   // GL_APPLE_fence
2903   GL_DRAW_PIXELS_APPLE = $8A0A;
2904   GL_FENCE_APPLE = $8A0B;
2905
2906   // GL_APPLE_specular_vector
2907   GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = $85B0;
2908
2909   // GL_APPLE_transform_hint
2910   GL_TRANSFORM_HINT_APPLE = $85B1;
2911
2912   // GL_APPLE_vertex_array_object
2913   GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
2914
2915   // GL_APPLE_vertex_array_range
2916   GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
2917   GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
2918   GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
2919   GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
2920   GL_STORAGE_CLIENT_APPLE = $85B4;
2921   GL_STORAGE_CACHED_APPLE = $85BE;
2922   GL_STORAGE_SHARED_APPLE = $85BF;
2923
2924   // GL_APPLE_ycbcr_422
2925   GL_YCBCR_422_APPLE = $85B9;
2926   GL_UNSIGNED_SHORT_8_8_APPLE = $85BA;
2927   GL_UNSIGNED_SHORT_8_8_REV_APPLE = $85BB;
2928   GL_RGB_RAW_422_APPLE = $8A51;
2929
2930   // GL_APPLE_texture_range
2931   GL_TEXTURE_RANGE_LENGTH_APPLE = $85B7;
2932   GL_TEXTURE_RANGE_POINTER_APPLE = $85B8;
2933   GL_TEXTURE_STORAGE_HINT_APPLE = $85BC;
2934   GL_STORAGE_PRIVATE_APPLE = $85BD;
2935   { reuse GL_STORAGE_CACHED_APPLE }
2936   { reuse GL_STORAGE_SHARED_APPLE }
2937
2938   // GL_APPLE_float_pixels
2939   GL_HALF_APPLE = $140B;
2940   GL_RGBA_FLOAT32_APPLE = $8814;
2941   GL_RGB_FLOAT32_APPLE = $8815;
2942   GL_ALPHA_FLOAT32_APPLE = $8816;
2943   GL_INTENSITY_FLOAT32_APPLE = $8817;
2944   GL_LUMINANCE_FLOAT32_APPLE = $8818;
2945   GL_LUMINANCE_ALPHA_FLOAT32_APPLE = $8819;
2946   GL_RGBA_FLOAT16_APPLE = $881A;
2947   GL_RGB_FLOAT16_APPLE = $881B;
2948   GL_ALPHA_FLOAT16_APPLE = $881C;
2949   GL_INTENSITY_FLOAT16_APPLE = $881D;
2950   GL_LUMINANCE_FLOAT16_APPLE = $881E;
2951   GL_LUMINANCE_ALPHA_FLOAT16_APPLE = $881F;
2952   GL_COLOR_FLOAT_APPLE = $8A0F;
2953
2954   // GL_APPLE_vertex_program_evaluators
2955   GL_VERTEX_ATTRIB_MAP1_APPLE = $8A00;
2956   GL_VERTEX_ATTRIB_MAP2_APPLE = $8A01;
2957   GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = $8A02;
2958   GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = $8A03;
2959   GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = $8A04;
2960   GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = $8A05;
2961   GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = $8A06;
2962   GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = $8A07;
2963   GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = $8A08;
2964   GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = $8A09;
2965
2966   // GL_APPLE_aux_depth_stencil
2967   GL_AUX_DEPTH_STENCIL_APPLE = $8A14;
2968
2969   // GL_APPLE_object_purgeable
2970   GL_BUFFER_OBJECT_APPLE = $85B3;
2971   GL_RELEASED_APPLE = $8A19;
2972   GL_VOLATILE_APPLE = $8A1A;
2973   GL_RETAINED_APPLE = $8A1B;
2974   GL_UNDEFINED_APPLE = $8A1C;
2975   GL_PURGEABLE_APPLE = $8A1D;
2976
2977   // GL_APPLE_row_bytes
2978   GL_PACK_ROW_BYTES_APPLE = $8A15;
2979   GL_UNPACK_ROW_BYTES_APPLE = $8A16;
2980
2981   // GL_APPLE_rgb_422
2982   { reuse GL_UNSIGNED_SHORT_8_8_APPLE }
2983   { reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE }
2984
2985   // GL_ARB_depth_texture
2986   GL_DEPTH_COMPONENT16_ARB = $81A5;
2987   GL_DEPTH_COMPONENT24_ARB = $81A6;
2988   GL_DEPTH_COMPONENT32_ARB = $81A7;
2989   GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
2990   GL_DEPTH_TEXTURE_MODE_ARB = $884B;
2991
2992   // GL_ARB_fragment_program
2993   GL_FRAGMENT_PROGRAM_ARB = $8804;
2994   GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
2995   GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
2996   GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
2997   GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
2998   GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
2999   GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
3000   GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
3001   GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
3002   GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
3003   GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
3004   GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
3005   GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
3006   GL_MAX_TEXTURE_COORDS_ARB = $8871;
3007   GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
3008
3009   // GL_ARB_imaging
3010   GL_CONSTANT_COLOR_ARB = $8001;
3011   GL_ONE_MINUS_CONSTANT_COLOR = $8002;
3012   GL_CONSTANT_ALPHA = $8003;
3013   GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
3014   GL_BLEND_COLOR = $8005;
3015   GL_FUNC_ADD = $8006;
3016   GL_MIN = $8007;
3017   GL_MAX = $8008;
3018   GL_BLEND_EQUATION = $8009;
3019   GL_FUNC_SUBTRACT = $800A;
3020   GL_FUNC_REVERSE_SUBTRACT = $800B;
3021 {$ifdef DGL_DEPRECATED}
3022   GL_CONVOLUTION_1D = $8010;
3023   GL_CONVOLUTION_2D = $8011;
3024   GL_SEPARABLE_2D = $8012;
3025   GL_CONVOLUTION_BORDER_MODE = $8013;
3026   GL_CONVOLUTION_FILTER_SCALE = $8014;
3027   GL_CONVOLUTION_FILTER_BIAS = $8015;
3028   GL_REDUCE = $8016;
3029   GL_CONVOLUTION_FORMAT = $8017;
3030   GL_CONVOLUTION_WIDTH = $8018;
3031   GL_CONVOLUTION_HEIGHT = $8019;
3032   GL_MAX_CONVOLUTION_WIDTH = $801A;
3033   GL_MAX_CONVOLUTION_HEIGHT = $801B;
3034   GL_POST_CONVOLUTION_RED_SCALE = $801C;
3035   GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
3036   GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
3037   GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
3038   GL_POST_CONVOLUTION_RED_BIAS = $8020;
3039   GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
3040   GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
3041   GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
3042   GL_HISTOGRAM = $8024;
3043   GL_PROXY_HISTOGRAM = $8025;
3044   GL_HISTOGRAM_WIDTH = $8026;
3045   GL_HISTOGRAM_FORMAT = $8027;
3046   GL_HISTOGRAM_RED_SIZE = $8028;
3047   GL_HISTOGRAM_GREEN_SIZE = $8029;
3048   GL_HISTOGRAM_BLUE_SIZE = $802A;
3049   GL_HISTOGRAM_ALPHA_SIZE = $802B;
3050   GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
3051   GL_HISTOGRAM_SINK = $802D;
3052   GL_MINMAX = $802E;
3053   GL_MINMAX_FORMAT = $802F;
3054   GL_MINMAX_SINK = $8030;
3055   GL_TABLE_TOO_LARGE = $8031;
3056   GL_COLOR_MATRIX = $80B1;
3057   GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
3058   GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
3059   GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
3060   GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
3061   GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
3062   GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
3063   GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
3064   GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
3065   GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
3066   GL_POST_COLOR_MATRIX_ALPHA_BIAS = $80BB;
3067   GL_COLOR_TABLE = $80D0;
3068   GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
3069   GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
3070   GL_PROXY_COLOR_TABLE = $80D3;
3071   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
3072   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
3073   GL_COLOR_TABLE_SCALE = $80D6;
3074   GL_COLOR_TABLE_BIAS = $80D7;
3075   GL_COLOR_TABLE_FORMAT = $80D8;
3076   GL_COLOR_TABLE_WIDTH = $80D9;
3077   GL_COLOR_TABLE_RED_SIZE = $80DA;
3078   GL_COLOR_TABLE_GREEN_SIZE = $80DB;
3079   GL_COLOR_TABLE_BLUE_SIZE = $80DC;
3080   GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
3081   GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
3082   GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
3083   GL_CONSTANT_BORDER = $8151;
3084   GL_REPLICATE_BORDER = $8153;
3085   GL_CONVOLUTION_BORDER_COLOR = $8154;
3086 {$endif}
3087
3088   // GL_ARB_matrix_palette
3089   GL_MATRIX_PALETTE_ARB = $8840;
3090   GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3091   GL_MAX_PALETTE_MATRICES_ARB = $8842;
3092   GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3093   GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3094   GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3095   GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3096   GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3097   GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3098   GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3099
3100   // GL_ARB_multisample
3101   GL_MULTISAMPLE_ARB = $809D;
3102   GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
3103   GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
3104   GL_SAMPLE_COVERAGE_ARB = $80A0;
3105   GL_SAMPLE_BUFFERS_ARB = $80A8;
3106   GL_SAMPLES_ARB = $80A9;
3107   GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
3108   GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
3109   GL_MULTISAMPLE_BIT_ARB = $20000000;
3110
3111   // GL_ARB_multitexture
3112   GL_TEXTURE0_ARB = $84C0;
3113   GL_TEXTURE1_ARB = $84C1;
3114   GL_TEXTURE2_ARB = $84C2;
3115   GL_TEXTURE3_ARB = $84C3;
3116   GL_TEXTURE4_ARB = $84C4;
3117   GL_TEXTURE5_ARB = $84C5;
3118   GL_TEXTURE6_ARB = $84C6;
3119   GL_TEXTURE7_ARB = $84C7;
3120   GL_TEXTURE8_ARB = $84C8;
3121   GL_TEXTURE9_ARB = $84C9;
3122   GL_TEXTURE10_ARB = $84CA;
3123   GL_TEXTURE11_ARB = $84CB;
3124   GL_TEXTURE12_ARB = $84CC;
3125   GL_TEXTURE13_ARB = $84CD;
3126   GL_TEXTURE14_ARB = $84CE;
3127   GL_TEXTURE15_ARB = $84CF;
3128   GL_TEXTURE16_ARB = $84D0;
3129   GL_TEXTURE17_ARB = $84D1;
3130   GL_TEXTURE18_ARB = $84D2;
3131   GL_TEXTURE19_ARB = $84D3;
3132   GL_TEXTURE20_ARB = $84D4;
3133   GL_TEXTURE21_ARB = $84D5;
3134   GL_TEXTURE22_ARB = $84D6;
3135   GL_TEXTURE23_ARB = $84D7;
3136   GL_TEXTURE24_ARB = $84D8;
3137   GL_TEXTURE25_ARB = $84D9;
3138   GL_TEXTURE26_ARB = $84DA;
3139   GL_TEXTURE27_ARB = $84DB;
3140   GL_TEXTURE28_ARB = $84DC;
3141   GL_TEXTURE29_ARB = $84DD;
3142   GL_TEXTURE30_ARB = $84DE;
3143   GL_TEXTURE31_ARB = $84DF;
3144   GL_ACTIVE_TEXTURE_ARB = $84E0;
3145   GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
3146   GL_MAX_TEXTURE_UNITS_ARB = $84E2;
3147
3148   // GL_ARB_point_parameters
3149   GL_POINT_SIZE_MIN_ARB = $8126;
3150   GL_POINT_SIZE_MAX_ARB = $8127;
3151   GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
3152   GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
3153
3154   // GL_ARB_shadow
3155   GL_TEXTURE_COMPARE_MODE_ARB = $884C;
3156   GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
3157   GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
3158
3159   // GL_ARB_shadow_ambient
3160   GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
3161
3162   // GL_ARB_sparse_buffer
3163   GL_SPARSE_STORAGE_BIT_ARB = $0400;
3164   GL_SPARSE_BUFFER_PAGE_SIZE_ARB = $82F8;
3165
3166   // GL_ARB_texture_border_clamp
3167   GL_CLAMP_TO_BORDER_ARB = $812D;
3168
3169   // GL_ARB_texture_compression
3170   GL_COMPRESSED_ALPHA_ARB = $84E9;
3171   GL_COMPRESSED_LUMINANCE_ARB = $84EA;
3172   GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
3173   GL_COMPRESSED_INTENSITY_ARB = $84EC;
3174   GL_COMPRESSED_RGB_ARB = $84ED;
3175   GL_COMPRESSED_RGBA_ARB = $84EE;
3176   GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
3177   GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
3178   GL_TEXTURE_COMPRESSED_ARB = $86A1;
3179   GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
3180   GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
3181
3182   // GL_ARB_texture_cube_map
3183   GL_NORMAL_MAP_ARB = $8511;
3184   GL_REFLECTION_MAP_ARB = $8512;
3185   GL_TEXTURE_CUBE_MAP_ARB = $8513;
3186   GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
3187   GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
3188   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
3189   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
3190   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
3191   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
3192   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
3193   GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
3194   GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
3195
3196   // GL_ARB_texture_env_combine
3197   GL_COMBINE_ARB = $8570;
3198   GL_COMBINE_RGB_ARB = $8571;
3199   GL_COMBINE_ALPHA_ARB = $8572;
3200   GL_SOURCE0_RGB_ARB = $8580;
3201   GL_SOURCE1_RGB_ARB = $8581;
3202   GL_SOURCE2_RGB_ARB = $8582;
3203   GL_SOURCE0_ALPHA_ARB = $8588;
3204   GL_SOURCE1_ALPHA_ARB = $8589;
3205   GL_SOURCE2_ALPHA_ARB = $858A;
3206   GL_OPERAND0_RGB_ARB = $8590;
3207   GL_OPERAND1_RGB_ARB = $8591;
3208   GL_OPERAND2_RGB_ARB = $8592;
3209   GL_OPERAND0_ALPHA_ARB = $8598;
3210   GL_OPERAND1_ALPHA_ARB = $8599;
3211   GL_OPERAND2_ALPHA_ARB = $859A;
3212   GL_RGB_SCALE_ARB = $8573;
3213   GL_ADD_SIGNED_ARB = $8574;
3214   GL_INTERPOLATE_ARB = $8575;
3215   GL_SUBTRACT_ARB = $84E7;
3216   GL_CONSTANT_ARB = $8576;
3217   GL_PRIMARY_COLOR_ARB = $8577;
3218   GL_PREVIOUS_ARB = $8578;
3219
3220   // GL_ARB_texture_env_dot3
3221   GL_DOT3_RGB_ARB = $86AE;
3222   GL_DOT3_RGBA_ARB = $86AF;
3223
3224   // GL_ARB_texture_mirrored_repeat
3225   GL_MIRRORED_REPEAT_ARB = $8370;
3226
3227   // GL_ARB_transpose_matrix
3228   GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
3229   GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
3230   GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
3231   GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
3232
3233   // GL_ARB_vertex_blend
3234   GL_MAX_VERTEX_UNITS_ARB = $86A4;
3235   GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
3236   GL_WEIGHT_SUM_UNITY_ARB = $86A6;
3237   GL_VERTEX_BLEND_ARB = $86A7;
3238   GL_CURRENT_WEIGHT_ARB = $86A8;
3239   GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
3240   GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
3241   GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
3242   GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
3243   GL_WEIGHT_ARRAY_ARB = $86AD;
3244   GL_MODELVIEW0_ARB = $1700;
3245   GL_MODELVIEW1_ARB = $850A;
3246   GL_MODELVIEW2_ARB = $8722;
3247   GL_MODELVIEW3_ARB = $8723;
3248   GL_MODELVIEW4_ARB = $8724;
3249   GL_MODELVIEW5_ARB = $8725;
3250   GL_MODELVIEW6_ARB = $8726;
3251   GL_MODELVIEW7_ARB = $8727;
3252   GL_MODELVIEW8_ARB = $8728;
3253   GL_MODELVIEW9_ARB = $8729;
3254   GL_MODELVIEW10_ARB = $872A;
3255   GL_MODELVIEW11_ARB = $872B;
3256   GL_MODELVIEW12_ARB = $872C;
3257   GL_MODELVIEW13_ARB = $872D;
3258   GL_MODELVIEW14_ARB = $872E;
3259   GL_MODELVIEW15_ARB = $872F;
3260   GL_MODELVIEW16_ARB = $8730;
3261   GL_MODELVIEW17_ARB = $8731;
3262   GL_MODELVIEW18_ARB = $8732;
3263   GL_MODELVIEW19_ARB = $8733;
3264   GL_MODELVIEW20_ARB = $8734;
3265   GL_MODELVIEW21_ARB = $8735;
3266   GL_MODELVIEW22_ARB = $8736;
3267   GL_MODELVIEW23_ARB = $8737;
3268   GL_MODELVIEW24_ARB = $8738;
3269   GL_MODELVIEW25_ARB = $8739;
3270   GL_MODELVIEW26_ARB = $873A;
3271   GL_MODELVIEW27_ARB = $873B;
3272   GL_MODELVIEW28_ARB = $873C;
3273   GL_MODELVIEW29_ARB = $873D;
3274   GL_MODELVIEW30_ARB = $873E;
3275   GL_MODELVIEW31_ARB = $873F;
3276
3277   // GL_ARB_vertex_buffer_object
3278   GL_BUFFER_SIZE_ARB = $8764;
3279   GL_BUFFER_USAGE_ARB = $8765;
3280   GL_ARRAY_BUFFER_ARB = $8892;
3281   GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3282   GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3283   GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3284   GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3285   GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3286   GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3287   GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3288   GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3289   GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3290   GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3291   GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3292   GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3293   GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3294   GL_READ_ONLY_ARB = $88B8;
3295   GL_WRITE_ONLY_ARB = $88B9;
3296   GL_READ_WRITE_ARB = $88BA;
3297   GL_BUFFER_ACCESS_ARB = $88BB;
3298   GL_BUFFER_MAPPED_ARB = $88BC;
3299   GL_BUFFER_MAP_POINTER_ARB = $88BD;
3300   GL_STREAM_DRAW_ARB = $88E0;
3301   GL_STREAM_READ_ARB = $88E1;
3302   GL_STREAM_COPY_ARB = $88E2;
3303   GL_STATIC_DRAW_ARB = $88E4;
3304   GL_STATIC_READ_ARB = $88E5;
3305   GL_STATIC_COPY_ARB = $88E6;
3306   GL_DYNAMIC_DRAW_ARB = $88E8;
3307   GL_DYNAMIC_READ_ARB = $88E9;
3308   GL_DYNAMIC_COPY_ARB = $88EA;
3309
3310   // GL_ARB_vertex_program
3311   GL_COLOR_SUM_ARB = $8458;
3312   GL_VERTEX_PROGRAM_ARB = $8620;
3313   GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
3314   GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
3315   GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
3316   GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
3317   GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
3318   GL_PROGRAM_LENGTH_ARB = $8627;
3319   GL_PROGRAM_STRING_ARB = $8628;
3320   GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
3321   GL_MAX_PROGRAM_MATRICES_ARB = $862F;
3322   GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
3323   GL_CURRENT_MATRIX_ARB = $8641;
3324   GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
3325   GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
3326   GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
3327   GL_PROGRAM_ERROR_POSITION_ARB = $864B;
3328   GL_PROGRAM_BINDING_ARB = $8677;
3329   GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
3330   GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
3331   GL_PROGRAM_ERROR_STRING_ARB = $8874;
3332   GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
3333   GL_PROGRAM_FORMAT_ARB = $8876;
3334   GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
3335   GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
3336   GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
3337   GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
3338   GL_PROGRAM_TEMPORARIES_ARB = $88A4;
3339   GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
3340   GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
3341   GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
3342   GL_PROGRAM_PARAMETERS_ARB = $88A8;
3343   GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
3344   GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
3345   GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
3346   GL_PROGRAM_ATTRIBS_ARB = $88AC;
3347   GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
3348   GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
3349   GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
3350   GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
3351   GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
3352   GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
3353   GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
3354   GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
3355   GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
3356   GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
3357   GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
3358   GL_MATRIX0_ARB = $88C0;
3359   GL_MATRIX1_ARB = $88C1;
3360   GL_MATRIX2_ARB = $88C2;
3361   GL_MATRIX3_ARB = $88C3;
3362   GL_MATRIX4_ARB = $88C4;
3363   GL_MATRIX5_ARB = $88C5;
3364   GL_MATRIX6_ARB = $88C6;
3365   GL_MATRIX7_ARB = $88C7;
3366   GL_MATRIX8_ARB = $88C8;
3367   GL_MATRIX9_ARB = $88C9;
3368   GL_MATRIX10_ARB = $88CA;
3369   GL_MATRIX11_ARB = $88CB;
3370   GL_MATRIX12_ARB = $88CC;
3371   GL_MATRIX13_ARB = $88CD;
3372   GL_MATRIX14_ARB = $88CE;
3373   GL_MATRIX15_ARB = $88CF;
3374   GL_MATRIX16_ARB = $88D0;
3375   GL_MATRIX17_ARB = $88D1;
3376   GL_MATRIX18_ARB = $88D2;
3377   GL_MATRIX19_ARB = $88D3;
3378   GL_MATRIX20_ARB = $88D4;
3379   GL_MATRIX21_ARB = $88D5;
3380   GL_MATRIX22_ARB = $88D6;
3381   GL_MATRIX23_ARB = $88D7;
3382   GL_MATRIX24_ARB = $88D8;
3383   GL_MATRIX25_ARB = $88D9;
3384   GL_MATRIX26_ARB = $88DA;
3385   GL_MATRIX27_ARB = $88DB;
3386   GL_MATRIX28_ARB = $88DC;
3387   GL_MATRIX29_ARB = $88DD;
3388   GL_MATRIX30_ARB = $88DE;
3389   GL_MATRIX31_ARB = $88DF;
3390
3391   // GL_ARB_draw_buffers
3392   GL_MAX_DRAW_BUFFERS_ARB = $8824;
3393   GL_DRAW_BUFFER0_ARB = $8825;
3394   GL_DRAW_BUFFER1_ARB = $8826;
3395   GL_DRAW_BUFFER2_ARB = $8827;
3396   GL_DRAW_BUFFER3_ARB = $8828;
3397   GL_DRAW_BUFFER4_ARB = $8829;
3398   GL_DRAW_BUFFER5_ARB = $882A;
3399   GL_DRAW_BUFFER6_ARB = $882B;
3400   GL_DRAW_BUFFER7_ARB = $882C;
3401   GL_DRAW_BUFFER8_ARB = $882D;
3402   GL_DRAW_BUFFER9_ARB = $882E;
3403   GL_DRAW_BUFFER10_ARB = $882F;
3404   GL_DRAW_BUFFER11_ARB = $8830;
3405   GL_DRAW_BUFFER12_ARB = $8831;
3406   GL_DRAW_BUFFER13_ARB = $8832;
3407   GL_DRAW_BUFFER14_ARB = $8833;
3408   GL_DRAW_BUFFER15_ARB = $8834;
3409
3410   // GL_ARB_texture_rectangle
3411   GL_TEXTURE_RECTANGLE_ARB = $84F5;
3412   GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3413   GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3414   GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3415
3416   // GL_ARB_color_buffer_float
3417   GL_RGBA_FLOAT_MODE_ARB = $8820;
3418   GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3419   GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3420   GL_CLAMP_READ_COLOR_ARB = $891C;
3421   GL_FIXED_ONLY_ARB = $891D;
3422   WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3423   GLX_RGBA_FLOAT_TYPE = $20B9;
3424   GLX_RGBA_FLOAT_BIT = $00000004;
3425
3426   // GL_ARB_half_float_pixel
3427   GL_HALF_FLOAT_ARB = $140B;
3428
3429   // GL_ARB_texture_float
3430   GL_TEXTURE_RED_TYPE_ARB = $8C10;
3431   GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3432   GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3433   GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3434   GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3435   GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3436   GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3437   GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3438   GL_RGBA32F_ARB = $8814;
3439   GL_RGB32F_ARB = $8815;
3440   GL_ALPHA32F_ARB = $8816;
3441   GL_INTENSITY32F_ARB = $8817;
3442   GL_LUMINANCE32F_ARB = $8818;
3443   GL_LUMINANCE_ALPHA32F_ARB = $8819;
3444   GL_RGBA16F_ARB = $881A;
3445   GL_RGB16F_ARB = $881B;
3446   GL_ALPHA16F_ARB = $881C;
3447   GL_INTENSITY16F_ARB = $881D;
3448   GL_LUMINANCE16F_ARB = $881E;
3449   GL_LUMINANCE_ALPHA16F_ARB = $881F;
3450
3451   // GL_ARB_pixel_buffer_object
3452   GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3453   GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3454   GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3455   GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3456
3457   // GL_ARB_depth_buffer_float
3458   GL_DEPTH_COMPONENT32F = $8CAC;
3459   GL_DEPTH32F_STENCIL8 = $8CAD;
3460   GL_FLOAT_32_UNSIGNED_INT_24_8_REV = $8DAD;
3461
3462   // GL_ARB_framebuffer_object
3463   GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
3464   GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = $8210;
3465   GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = $8211;
3466   GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = $8212;
3467   GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = $8213;
3468   GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = $8214;
3469   GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = $8215;
3470   GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = $8216;
3471   GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = $8217;
3472   GL_FRAMEBUFFER_DEFAULT = $8218;
3473   GL_FRAMEBUFFER_UNDEFINED = $8219;
3474   GL_DEPTH_STENCIL_ATTACHMENT = $821A;
3475   GL_MAX_RENDERBUFFER_SIZE = $84E8;
3476   GL_DEPTH_STENCIL = $84F9;
3477   GL_UNSIGNED_INT_24_8 = $84FA;
3478   GL_DEPTH24_STENCIL8 = $88F0;
3479   GL_TEXTURE_STENCIL_SIZE = $88F1;
3480   GL_TEXTURE_RED_TYPE = $8C10;
3481   GL_TEXTURE_GREEN_TYPE = $8C11;
3482   GL_TEXTURE_BLUE_TYPE = $8C12;
3483   GL_TEXTURE_ALPHA_TYPE = $8C13;
3484   GL_TEXTURE_DEPTH_TYPE = $8C16;
3485   GL_UNSIGNED_NORMALIZED = $8C17;
3486   GL_FRAMEBUFFER_BINDING = $8CA6;
3487   GL_DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING;
3488   GL_RENDERBUFFER_BINDING = $8CA7;
3489   GL_READ_FRAMEBUFFER = $8CA8;
3490   GL_DRAW_FRAMEBUFFER = $8CA9;
3491   GL_READ_FRAMEBUFFER_BINDING = $8CAA;
3492   GL_RENDERBUFFER_SAMPLES = $8CAB;
3493   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0;
3494   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1;
3495   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2;
3496   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3;
3497   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = $8CD4;
3498   GL_FRAMEBUFFER_COMPLETE = $8CD5;
3499   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6;
3500   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7;
3501   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = $8CDB;
3502   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = $8CDC;
3503   GL_FRAMEBUFFER_UNSUPPORTED = $8CDD;
3504   GL_MAX_COLOR_ATTACHMENTS = $8CDF;
3505   GL_COLOR_ATTACHMENT0 = $8CE0;
3506   GL_COLOR_ATTACHMENT1 = $8CE1;
3507   GL_COLOR_ATTACHMENT2 = $8CE2;
3508   GL_COLOR_ATTACHMENT3 = $8CE3;
3509   GL_COLOR_ATTACHMENT4 = $8CE4;
3510   GL_COLOR_ATTACHMENT5 = $8CE5;
3511   GL_COLOR_ATTACHMENT6 = $8CE6;
3512   GL_COLOR_ATTACHMENT7 = $8CE7;
3513   GL_COLOR_ATTACHMENT8 = $8CE8;
3514   GL_COLOR_ATTACHMENT9 = $8CE9;
3515   GL_COLOR_ATTACHMENT10 = $8CEA;
3516   GL_COLOR_ATTACHMENT11 = $8CEB;
3517   GL_COLOR_ATTACHMENT12 = $8CEC;
3518   GL_COLOR_ATTACHMENT13 = $8CED;
3519   GL_COLOR_ATTACHMENT14 = $8CEE;
3520   GL_COLOR_ATTACHMENT15 = $8CEF;
3521   GL_DEPTH_ATTACHMENT = $8D00;
3522   GL_STENCIL_ATTACHMENT = $8D20;
3523   GL_FRAMEBUFFER = $8D40;
3524   GL_RENDERBUFFER = $8D41;
3525   GL_RENDERBUFFER_WIDTH = $8D42;
3526   GL_RENDERBUFFER_HEIGHT = $8D43;
3527   GL_RENDERBUFFER_INTERNAL_FORMAT = $8D44;
3528   GL_STENCIL_INDEX1 = $8D46;
3529   GL_STENCIL_INDEX4 = $8D47;
3530   GL_STENCIL_INDEX8 = $8D48;
3531   GL_STENCIL_INDEX16 = $8D49;
3532   GL_RENDERBUFFER_RED_SIZE = $8D50;
3533   GL_RENDERBUFFER_GREEN_SIZE = $8D51;
3534   GL_RENDERBUFFER_BLUE_SIZE = $8D52;
3535   GL_RENDERBUFFER_ALPHA_SIZE = $8D53;
3536   GL_RENDERBUFFER_DEPTH_SIZE = $8D54;
3537   GL_RENDERBUFFER_STENCIL_SIZE = $8D55;
3538   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = $8D56;
3539   GL_MAX_SAMPLES = $8D57;
3540 {$ifdef DGL_DEPRECATED}
3541   GL_INDEX = $8222;
3542   GL_TEXTURE_LUMINANCE_TYPE = $8C14;
3543   GL_TEXTURE_INTENSITY_TYPE = $8C15;
3544 {$endif}
3545
3546   // GL_ARB_framebuffer_sRGB
3547   GL_FRAMEBUFFER_SRGB = $8DB9;
3548
3549   // GL_ARB_geometry_shader4
3550   GL_LINES_ADJACENCY_ARB = $000A;
3551   GL_LINE_STRIP_ADJACENCY_ARB = $000B;
3552   GL_TRIANGLES_ADJACENCY_ARB = $000C;
3553   GL_TRIANGLE_STRIP_ADJACENCY_ARB = $000D;
3554   GL_PROGRAM_POINT_SIZE_ARB = $8642;
3555   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = $8C29;
3556   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = $8DA7;
3557   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = $8DA8;
3558   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = $8DA9;
3559   GL_GEOMETRY_SHADER_ARB = $8DD9;
3560   GL_GEOMETRY_VERTICES_OUT_ARB = $8DDA;
3561   GL_GEOMETRY_INPUT_TYPE_ARB = $8DDB;
3562   GL_GEOMETRY_OUTPUT_TYPE_ARB = $8DDC;
3563   GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = $8DDD;
3564   GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = $8DDE;
3565   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = $8DDF;
3566   GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = $8DE0;
3567   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = $8DE1;
3568   { reuse GL_MAX_VARYING_COMPONENTS }
3569   { reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER }
3570
3571   // GL_ARB_half_float_vertex
3572   GL_HALF_FLOAT = $140B;
3573
3574   // GL_ARB_instanced_arrays
3575   GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = $88FE;
3576
3577   // GL_ARB_map_buffer_range
3578   GL_MAP_READ_BIT = $0001;
3579   GL_MAP_WRITE_BIT = $0002;
3580   GL_MAP_INVALIDATE_RANGE_BIT = $0004;
3581   GL_MAP_INVALIDATE_BUFFER_BIT = $0008;
3582   GL_MAP_FLUSH_EXPLICIT_BIT = $0010;
3583   GL_MAP_UNSYNCHRONIZED_BIT = $0020;
3584
3585   // GL_ARB_texture_buffer_object
3586   GL_TEXTURE_BUFFER_ARB = $8C2A;
3587   GL_MAX_TEXTURE_BUFFER_SIZE_ARB = $8C2B;
3588   GL_TEXTURE_BINDING_BUFFER_ARB = $8C2C;
3589   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = $8C2D;
3590   GL_TEXTURE_BUFFER_FORMAT_ARB = $8C2E;
3591
3592   // GL_ARB_texture_compression_rgtc
3593   GL_COMPRESSED_RED_RGTC1 = $8DBB;
3594   GL_COMPRESSED_SIGNED_RED_RGTC1 = $8DBC;
3595   GL_COMPRESSED_RG_RGTC2 = $8DBD;
3596   GL_COMPRESSED_SIGNED_RG_RGTC2 = $8DBE;
3597
3598   // GL_ARB_texture_rg
3599   GL_RG = $8227;
3600   GL_RG_INTEGER = $8228;
3601   GL_R8 = $8229;
3602   GL_R16 = $822A;
3603   GL_RG8 = $822B;
3604   GL_RG16 = $822C;
3605   GL_R16F = $822D;
3606   GL_R32F = $822E;
3607   GL_RG16F = $822F;
3608   GL_RG32F = $8230;
3609   GL_R8I = $8231;
3610   GL_R8UI = $8232;
3611   GL_R16I = $8233;
3612   GL_R16UI = $8234;
3613   GL_R32I = $8235;
3614   GL_R32UI = $8236;
3615   GL_RG8I = $8237;
3616   GL_RG8UI = $8238;
3617   GL_RG16I = $8239;
3618   GL_RG16UI = $823A;
3619   GL_RG32I = $823B;
3620   GL_RG32UI = $823C;
3621
3622   // GL_ARB_vertex_array_object
3623   GL_VERTEX_ARRAY_BINDING = $85B5;
3624
3625   // GL_ARB_uniform_buffer_object
3626   GL_UNIFORM_BUFFER = $8A11;
3627   GL_UNIFORM_BUFFER_BINDING = $8A28;
3628   GL_UNIFORM_BUFFER_START = $8A29;
3629   GL_UNIFORM_BUFFER_SIZE = $8A2A;
3630   GL_MAX_VERTEX_UNIFORM_BLOCKS = $8A2B;
3631   GL_MAX_GEOMETRY_UNIFORM_BLOCKS = $8A2C;
3632   GL_MAX_FRAGMENT_UNIFORM_BLOCKS = $8A2D;
3633   GL_MAX_COMBINED_UNIFORM_BLOCKS = $8A2E;
3634   GL_MAX_UNIFORM_BUFFER_BINDINGS = $8A2F;
3635   GL_MAX_UNIFORM_BLOCK_SIZE = $8A30;
3636   GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = $8A31;
3637   GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = $8A32;
3638   GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = $8A33;
3639   GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = $8A34;
3640   GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = $8A35;
3641   GL_ACTIVE_UNIFORM_BLOCKS = $8A36;
3642   GL_UNIFORM_TYPE = $8A37;
3643   GL_UNIFORM_SIZE = $8A38;
3644   GL_UNIFORM_NAME_LENGTH = $8A39;
3645   GL_UNIFORM_BLOCK_INDEX = $8A3A;
3646   GL_UNIFORM_OFFSET = $8A3B;
3647   GL_UNIFORM_ARRAY_STRIDE = $8A3C;
3648   GL_UNIFORM_MATRIX_STRIDE = $8A3D;
3649   GL_UNIFORM_IS_ROW_MAJOR = $8A3E;
3650   GL_UNIFORM_BLOCK_BINDING = $8A3F;
3651   GL_UNIFORM_BLOCK_DATA_SIZE = $8A40;
3652   GL_UNIFORM_BLOCK_NAME_LENGTH = $8A41;
3653   GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = $8A42;
3654   GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = $8A43;
3655   GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = $8A44;
3656   GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = $8A45;
3657   GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = $8A46;
3658   GL_INVALID_INDEX = $FFFFFFFF;
3659
3660   // GL_ARB_compatibility
3661   { ARB_compatibility just defines tokens from core 3.0 }
3662
3663   // GL_ARB_copy_buffer
3664   GL_COPY_READ_BUFFER_BINDING = $8F36;
3665   GL_COPY_READ_BUFFER = GL_COPY_READ_BUFFER_BINDING;
3666   GL_COPY_WRITE_BUFFER_BINDING = $8F37;
3667   GL_COPY_WRITE_BUFFER = GL_COPY_WRITE_BUFFER_BINDING;
3668
3669   // GL_ARB_depth_clamp
3670   GL_DEPTH_CLAMP = $864F;
3671
3672   // GL_ARB_provoking_vertex
3673   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = $8E4C;
3674   GL_FIRST_VERTEX_CONVENTION = $8E4D;
3675   GL_LAST_VERTEX_CONVENTION = $8E4E;
3676   GL_PROVOKING_VERTEX = $8E4F;
3677
3678   // GL_ARB_seamless_cube_map
3679   GL_TEXTURE_CUBE_MAP_SEAMLESS = $884F;
3680
3681   // GL_ARB_sync
3682   GL_MAX_SERVER_WAIT_TIMEOUT = $9111;
3683   GL_OBJECT_TYPE = $9112;
3684   GL_SYNC_CONDITION = $9113;
3685   GL_SYNC_STATUS = $9114;
3686   GL_SYNC_FLAGS = $9115;
3687   GL_SYNC_FENCE = $9116;
3688   GL_SYNC_GPU_COMMANDS_COMPLETE = $9117;
3689   GL_UNSIGNALED = $9118;
3690   GL_SIGNALED = $9119;
3691   GL_ALREADY_SIGNALED = $911A;
3692   GL_TIMEOUT_EXPIRED = $911B;
3693   GL_CONDITION_SATISFIED = $911C;
3694   GL_WAIT_FAILED = $911D;
3695   GL_SYNC_FLUSH_COMMANDS_BIT = $00000001;
3696   GL_TIMEOUT_IGNORED = $FFFFFFFFFFFFFFFF;
3697
3698   // GL_ARB_texture_multisample
3699   GL_SAMPLE_POSITION = $8E50;
3700   GL_SAMPLE_MASK = $8E51;
3701   GL_SAMPLE_MASK_VALUE = $8E52;
3702   GL_MAX_SAMPLE_MASK_WORDS = $8E59;
3703   GL_TEXTURE_2D_MULTISAMPLE = $9100;
3704   GL_PROXY_TEXTURE_2D_MULTISAMPLE = $9101;
3705   GL_TEXTURE_2D_MULTISAMPLE_ARRAY = $9102;
3706   GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = $9103;
3707   GL_TEXTURE_BINDING_2D_MULTISAMPLE = $9104;
3708   GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = $9105;
3709   GL_TEXTURE_SAMPLES = $9106;
3710   GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = $9107;
3711   GL_SAMPLER_2D_MULTISAMPLE = $9108;
3712   GL_INT_SAMPLER_2D_MULTISAMPLE = $9109;
3713   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = $910A;
3714   GL_SAMPLER_2D_MULTISAMPLE_ARRAY = $910B;
3715   GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910C;
3716   GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = $910D;
3717   GL_MAX_COLOR_TEXTURE_SAMPLES = $910E;
3718   GL_MAX_DEPTH_TEXTURE_SAMPLES = $910F;
3719   GL_MAX_INTEGER_SAMPLES = $9110;
3720
3721   // GL_ARB_vertex_array_bgra
3722   { reuse GL_BGRA }
3723
3724   // GL_ARB_sample_shading
3725   GL_SAMPLE_SHADING_ARB = $8C36;
3726   GL_MIN_SAMPLE_SHADING_VALUE_ARB = $8C37;
3727
3728   // GL_ARB_texture_cube_map_array
3729   GL_TEXTURE_CUBE_MAP_ARRAY_ARB = $9009;
3730   GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = $900A;
3731   GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = $900B;
3732   GL_SAMPLER_CUBE_MAP_ARRAY_ARB = $900C;
3733   GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = $900D;
3734   GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900E;
3735   GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = $900F;
3736
3737   // GL_ARB_texture_gather
3738   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5E;
3739   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = $8E5F;
3740
3741   // GL_ARB_shading_language_include
3742   GL_SHADER_INCLUDE_ARB = $8DAE;
3743   GL_NAMED_STRING_LENGTH_ARB = $8DE9;
3744   GL_NAMED_STRING_TYPE_ARB = $8DEA;
3745
3746   // GL_ARB_texture_compression_bptc
3747   GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = $8E8C;
3748   GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = $8E8D;
3749   GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = $8E8E;
3750   GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = $8E8F;
3751
3752   // GL_ARB_blend_func_extended
3753   GL_SRC1_COLOR = $88F9;
3754   { reuse GL_SRC1_ALPHA }
3755   GL_ONE_MINUS_SRC1_COLOR = $88FA;
3756   GL_ONE_MINUS_SRC1_ALPHA = $88FB;
3757   GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = $88FC;
3758
3759   // GL_ARB_occlusion_query2
3760   GL_ANY_SAMPLES_PASSED = $8C2F;
3761
3762   // GL_ARB_sampler_objects
3763   GL_SAMPLER_BINDING = $8919;
3764
3765   // GL_ARB_texture_rgb10_a2ui
3766   GL_RGB10_A2UI = $906F;
3767
3768   // GL_ARB_texture_swizzle
3769   GL_TEXTURE_SWIZZLE_R = $8E42;
3770   GL_TEXTURE_SWIZZLE_G = $8E43;
3771   GL_TEXTURE_SWIZZLE_B = $8E44;
3772   GL_TEXTURE_SWIZZLE_A = $8E45;
3773   GL_TEXTURE_SWIZZLE_RGBA = $8E46;
3774
3775   // GL_ARB_SPARSE_TEXTURE
3776   GL_TEXTURE_SPARSE_ARB = $91A6;
3777   GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = $91A7;
3778   GL_NUM_VIRTUAL_PAGE_SIZES_ARB = $91A8;
3779   GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = $91A9;
3780   GL_NUM_SPARSE_LEVELS_ARB = $91AA;
3781   GL_VIRTUAL_PAGE_SIZE_X_ARB = $9195;
3782   GL_VIRTUAL_PAGE_SIZE_Y_ARB = $9196;
3783   GL_VIRTUAL_PAGE_SIZE_Z_ARB = $9197;
3784   GL_MAX_SPARSE_TEXTURE_SIZE_ARB = $9198;
3785   GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = $9199;
3786   GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = $919A;
3787   GL_MIN_SPARSE_LEVEL_ARB = $919B;
3788
3789   // GL_ARB_timer_query
3790   GL_TIME_ELAPSED = $88BF;
3791   GL_TIMESTAMP = $8E28;
3792
3793   // GL_ARB_vertex_type_2_10_10_10_rev
3794   { reuse GL_UNSIGNED_INT_2_10_10_10_REV }
3795   GL_INT_2_10_10_10_REV = $8D9F;
3796
3797   // GL_ARB_draw_indirect
3798   GL_DRAW_INDIRECT_BUFFER = $8F3F;
3799   GL_DRAW_INDIRECT_BUFFER_BINDING = $8F43;
3800
3801   // GL_ARB_gpu_shader5
3802   GL_GEOMETRY_SHADER_INVOCATIONS = $887F;
3803   GL_MAX_GEOMETRY_SHADER_INVOCATIONS = $8E5A;
3804   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = $8E5B;
3805   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = $8E5C;
3806   GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = $8E5D;
3807   { reuse GL_MAX_VERTEX_STREAMS }
3808
3809   // GL_ARB_gpu_shader_fp64
3810   { reuse GL_DOUBLE }
3811   GL_DOUBLE_VEC2 = $8FFC;
3812   GL_DOUBLE_VEC3 = $8FFD;
3813   GL_DOUBLE_VEC4 = $8FFE;
3814   GL_DOUBLE_MAT2 = $8F46;
3815   GL_DOUBLE_MAT3 = $8F47;
3816   GL_DOUBLE_MAT4 = $8F48;
3817   GL_DOUBLE_MAT2x3 = $8F49;
3818   GL_DOUBLE_MAT2x4 = $8F4A;
3819   GL_DOUBLE_MAT3x2 = $8F4B;
3820   GL_DOUBLE_MAT3x4 = $8F4C;
3821   GL_DOUBLE_MAT4x2 = $8F4D;
3822   GL_DOUBLE_MAT4x3 = $8F4E;
3823
3824   // GL_ARB_shader_subroutine
3825   GL_ACTIVE_SUBROUTINES = $8DE5;
3826   GL_ACTIVE_SUBROUTINE_UNIFORMS = $8DE6;
3827   GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = $8E47;
3828   GL_ACTIVE_SUBROUTINE_MAX_LENGTH = $8E48;
3829   GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = $8E49;
3830   GL_MAX_SUBROUTINES = $8DE7;
3831   GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = $8DE8;
3832   GL_NUM_COMPATIBLE_SUBROUTINES = $8E4A;
3833   GL_COMPATIBLE_SUBROUTINES = $8E4B;
3834   { reuse GL_UNIFORM_SIZE }
3835   { reuse GL_UNIFORM_NAME_LENGTH }
3836
3837   // GL_ARB_tessellation_shader
3838   GL_PATCHES = $000E;
3839   GL_PATCH_VERTICES = $8E72;
3840   GL_PATCH_DEFAULT_INNER_LEVEL = $8E73;
3841   GL_PATCH_DEFAULT_OUTER_LEVEL = $8E74;
3842   GL_TESS_CONTROL_OUTPUT_VERTICES = $8E75;
3843   GL_TESS_GEN_MODE = $8E76;
3844   GL_TESS_GEN_SPACING = $8E77;
3845   GL_TESS_GEN_VERTEX_ORDER = $8E78;
3846   GL_TESS_GEN_POINT_MODE = $8E79;
3847   { reuse GL_TRIANGLES }
3848   { reuse GL_QUADS }
3849   GL_ISOLINES = $8E7A;
3850   { reuse GL_EQUAL }
3851   GL_FRACTIONAL_ODD = $8E7B;
3852   GL_FRACTIONAL_EVEN = $8E7C;
3853   { reuse GL_CCW }
3854   { reuse GL_CW }
3855   GL_MAX_PATCH_VERTICES = $8E7D;
3856   GL_MAX_TESS_GEN_LEVEL = $8E7E;
3857   GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = $8E7F;
3858   GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E80;
3859   GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = $8E81;
3860   GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = $8E82;
3861   GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = $8E83;
3862   GL_MAX_TESS_PATCH_COMPONENTS = $8E84;
3863   GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = $8E85;
3864   GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = $8E86;
3865   GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = $8E89;
3866   GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = $8E8A;
3867   GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = $886C;
3868   GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = $886D;
3869   GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = $8E1E;
3870   GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = $8E1F;
3871   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = $84F0;
3872   GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = $84F1;
3873   GL_TESS_EVALUATION_SHADER = $8E87;
3874   GL_TESS_CONTROL_SHADER = $8E88;
3875
3876   // GL_ARB_texture_buffer_object_rgb32
3877   { reuse GL_RGB32F }
3878   { reuse GL_RGB32UI }
3879   { reuse GL_RGB32I }
3880
3881   // GL_ARB_transform_feedback2
3882   GL_TRANSFORM_FEEDBACK = $8E22;
3883   GL_TRANSFORM_FEEDBACK_PAUSED = $8E23;
3884   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = GL_TRANSFORM_FEEDBACK_PAUSED;
3885   GL_TRANSFORM_FEEDBACK_ACTIVE = $8E24;
3886   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = GL_TRANSFORM_FEEDBACK_ACTIVE;
3887   GL_TRANSFORM_FEEDBACK_BINDING = $8E25;
3888
3889   // GL_ARB_transform_feedback_overflow_query
3890   GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = $82EC;
3891   GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = $82ED;
3892
3893   // GL_ARB_transform_feedback3
3894   GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = $8E70;
3895   GL_MAX_VERTEX_STREAMS = $8E71;
3896
3897   // GL_ARB_ES2_compatibility
3898   GL_FIXED = $140C;
3899   GL_IMPLEMENTATION_COLOR_READ_TYPE = $8B9A;
3900   GL_IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B;
3901   GL_LOW_FLOAT = $8DF0;
3902   GL_MEDIUM_FLOAT = $8DF1;
3903   GL_HIGH_FLOAT = $8DF2;
3904   GL_LOW_INT = $8DF3;
3905   GL_MEDIUM_INT = $8DF4;
3906   GL_HIGH_INT = $8DF5;
3907   GL_SHADER_COMPILER = $8DFA;
3908   GL_NUM_SHADER_BINARY_FORMATS = $8DF9;
3909   GL_MAX_VERTEX_UNIFORM_VECTORS = $8DFB;
3910   GL_MAX_VARYING_VECTORS = $8DFC;
3911   GL_MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD;
3912   GL_RGB565 = $8D62;
3913
3914   // GL_ARB_get_program_binary
3915   GL_PROGRAM_BINARY_RETRIEVABLE_HINT = $8257;
3916   GL_PROGRAM_BINARY_LENGTH = $8741;
3917   GL_NUM_PROGRAM_BINARY_FORMATS = $87FE;
3918   GL_PROGRAM_BINARY_FORMATS = $87FF;
3919
3920   // GL_ARB_separate_shader_objects
3921   GL_VERTEX_SHADER_BIT = $00000001;
3922   GL_FRAGMENT_SHADER_BIT = $00000002;
3923   GL_GEOMETRY_SHADER_BIT = $00000004;
3924   GL_TESS_CONTROL_SHADER_BIT = $00000008;
3925   GL_TESS_EVALUATION_SHADER_BIT = $00000010;
3926   GL_ALL_SHADER_BITS = $FFFFFFFF;
3927   GL_PROGRAM_SEPARABLE = $8258;
3928   GL_ACTIVE_PROGRAM = $8259;
3929   GL_PROGRAM_PIPELINE_BINDING = $825A;
3930
3931   // GL_ARB_vertex_attrib_64bit
3932   { reuse GL_RGB32I }
3933   { reuse GL_DOUBLE_VEC2 }
3934   { reuse GL_DOUBLE_VEC3 }
3935   { reuse GL_DOUBLE_VEC4 }
3936   { reuse GL_DOUBLE_MAT2 }
3937   { reuse GL_DOUBLE_MAT3 }
3938   { reuse GL_DOUBLE_MAT4 }
3939   { reuse GL_DOUBLE_MAT2x3 }
3940   { reuse GL_DOUBLE_MAT2x4 }
3941   { reuse GL_DOUBLE_MAT3x2 }
3942   { reuse GL_DOUBLE_MAT3x4 }
3943   { reuse GL_DOUBLE_MAT4x2 }
3944   { reuse GL_DOUBLE_MAT4x3 }
3945
3946   // GL_ARB_viewport_array
3947   { reuse GL_SCISSOR_BOX }
3948   { reuse GL_VIEWPORT }
3949   { reuse GL_DEPTH_RANGE }
3950   { reuse GL_SCISSOR_TEST }
3951   GL_MAX_VIEWPORTS = $825B;
3952   GL_VIEWPORT_SUBPIXEL_BITS = $825C;
3953   GL_VIEWPORT_BOUNDS_RANGE = $825D;
3954   GL_LAYER_PROVOKING_VERTEX = $825E;
3955   GL_VIEWPORT_INDEX_PROVOKING_VERTEX = $825F;
3956   GL_UNDEFINED_VERTEX = $8260;
3957   { reuse GL_FIRST_VERTEX_CONVENTION }
3958   { reuse GL_LAST_VERTEX_CONVENTION }
3959   { reuse GL_PROVOKING_VERTEX }
3960
3961   // GL_ARB_cl_event
3962   GL_SYNC_CL_EVENT_ARB = $8240;
3963   GL_SYNC_CL_EVENT_COMPLETE_ARB = $8241;
3964
3965   // GL_ARB_debug_output
3966   GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = $8242;
3967   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = $8243;
3968   GL_DEBUG_CALLBACK_FUNCTION_ARB = $8244;
3969   GL_DEBUG_CALLBACK_USER_PARAM_ARB = $8245;
3970   GL_DEBUG_SOURCE_API_ARB = $8246;
3971   GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = $8247;
3972   GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = $8248;
3973   GL_DEBUG_SOURCE_THIRD_PARTY_ARB = $8249;
3974   GL_DEBUG_SOURCE_APPLICATION_ARB = $824A;
3975   GL_DEBUG_SOURCE_OTHER_ARB = $824B;
3976   GL_DEBUG_TYPE_ERROR_ARB = $824C;
3977   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = $824D;
3978   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = $824E;
3979   GL_DEBUG_TYPE_PORTABILITY_ARB = $824F;
3980   GL_DEBUG_TYPE_PERFORMANCE_ARB = $8250;
3981   GL_DEBUG_TYPE_OTHER_ARB = $8251;
3982   GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = $9143;
3983   GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = $9144;
3984   GL_DEBUG_LOGGED_MESSAGES_ARB = $9145;
3985   GL_DEBUG_SEVERITY_HIGH_ARB = $9146;
3986   GL_DEBUG_SEVERITY_MEDIUM_ARB = $9147;
3987   GL_DEBUG_SEVERITY_LOW_ARB = $9148;
3988
3989   // GL_ARB_robustness
3990   { reuse GL_NO_ERROR }
3991   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = $00000004;
3992   GL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
3993   GL_GUILTY_CONTEXT_RESET_ARB = $8253;
3994   GL_INNOCENT_CONTEXT_RESET_ARB = $8254;
3995   GL_UNKNOWN_CONTEXT_RESET_ARB = $8255;
3996   GL_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
3997   GL_NO_RESET_NOTIFICATION_ARB = $8261;
3998
3999   //  GL_ARB_compressed_texture_pixel_storage
4000   GL_UNPACK_COMPRESSED_BLOCK_WIDTH  = $09127;
4001   GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = $09128;
4002   GL_UNPACK_COMPRESSED_BLOCK_DEPTH  = $09129;
4003   GL_UNPACK_COMPRESSED_BLOCK_SIZE   = $0912A;
4004   GL_PACK_COMPRESSED_BLOCK_WIDTH    = $0912B;
4005   GL_PACK_COMPRESSED_BLOCK_HEIGHT   = $0912C;
4006   GL_PACK_COMPRESSED_BLOCK_DEPTH    = $0912D;
4007   GL_PACK_COMPRESSED_BLOCK_SIZE     = $0912E;
4008
4009   // GL_ARB_internalformat_query
4010   GL_NUM_SAMPLE_COUNTS              = $09380;
4011
4012   // GL_ARB_map_buffer_alignment
4013   GL_MIN_MAP_BUFFER_ALIGNMENT       = $090BC;
4014
4015   // GL_ARB_shader_atomic_counters
4016   GL_ATOMIC_COUNTER_BUFFER          = $92C0;
4017   GL_ATOMIC_COUNTER_BUFFER_BINDING  = $92C1;
4018   GL_ATOMIC_COUNTER_BUFFER_START    = $92C2;
4019   GL_ATOMIC_COUNTER_BUFFER_SIZE     = $92C3;
4020   GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = $92C4;
4021   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = $92C5;
4022   GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = $92C6;
4023   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = $92C7;
4024   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = $92C8;
4025   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = $92C9;
4026   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = $92CA;
4027   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = $92CB;
4028   GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = $92CC;
4029   GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = $92CD;
4030   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = $92CE;
4031   GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = $92CF;
4032   GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = $92D0;
4033   GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = $92D1;
4034   GL_MAX_VERTEX_ATOMIC_COUNTERS     = $92D2;
4035   GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = $92D3;
4036   GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = $92D4;
4037   GL_MAX_GEOMETRY_ATOMIC_COUNTERS   = $92D5;
4038   GL_MAX_FRAGMENT_ATOMIC_COUNTERS   = $92D6;
4039   GL_MAX_COMBINED_ATOMIC_COUNTERS   = $92D7;
4040   GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = $92D8;
4041   GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = $92DC;
4042   GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  = $92D9;
4043   GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = $92DA;
4044   GL_UNSIGNED_INT_ATOMIC_COUNTER    = $92DB;
4045
4046   // GL_ARB_shader_image_load_store
4047   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = $00000001;
4048   GL_ELEMENT_ARRAY_BARRIER_BIT      = $00000002;
4049   GL_UNIFORM_BARRIER_BIT            = $00000004;
4050   GL_TEXTURE_FETCH_BARRIER_BIT      = $00000008;
4051   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = $00000020;
4052   GL_COMMAND_BARRIER_BIT            = $00000040;
4053   GL_PIXEL_BUFFER_BARRIER_BIT       = $00000080;
4054   GL_TEXTURE_UPDATE_BARRIER_BIT     = $00000100;
4055   GL_BUFFER_UPDATE_BARRIER_BIT      = $00000200;
4056   GL_FRAMEBUFFER_BARRIER_BIT        = $00000400;
4057   GL_TRANSFORM_FEEDBACK_BARRIER_BIT = $00000800;
4058   GL_ATOMIC_COUNTER_BARRIER_BIT     = $00001000;
4059   GL_ALL_BARRIER_BITS               = $FFFFFFFF;
4060   GL_MAX_IMAGE_UNITS                = $8F38;
4061   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = $8F39;
4062   GL_IMAGE_BINDING_NAME             = $8F3A;
4063   GL_IMAGE_BINDING_LEVEL            = $8F3B;
4064   GL_IMAGE_BINDING_LAYERED          = $8F3C;
4065   GL_IMAGE_BINDING_LAYER            = $8F3D;
4066   GL_IMAGE_BINDING_ACCESS           = $8F3E;
4067   GL_IMAGE_1D                       = $904C;
4068   GL_IMAGE_2D                       = $904D;
4069   GL_IMAGE_3D                       = $904E;
4070   GL_IMAGE_2D_RECT                  = $904F;
4071   GL_IMAGE_CUBE                     = $9050;
4072   GL_IMAGE_BUFFER                   = $9051;
4073   GL_IMAGE_1D_ARRAY                 = $9052;
4074   GL_IMAGE_2D_ARRAY                 = $9053;
4075   GL_IMAGE_CUBE_MAP_ARRAY           = $9054;
4076   GL_IMAGE_2D_MULTISAMPLE           = $9055;
4077   GL_IMAGE_2D_MULTISAMPLE_ARRAY     = $9056;
4078   GL_INT_IMAGE_1D                   = $9057;
4079   GL_INT_IMAGE_2D                   = $9058;
4080   GL_INT_IMAGE_3D                   = $9059;
4081   GL_INT_IMAGE_2D_RECT              = $905A;
4082   GL_INT_IMAGE_CUBE                 = $905B;
4083   GL_INT_IMAGE_BUFFER               = $905C;
4084   GL_INT_IMAGE_1D_ARRAY             = $905D;
4085   GL_INT_IMAGE_2D_ARRAY             = $905E;
4086   GL_INT_IMAGE_CUBE_MAP_ARRAY       = $905F;
4087   GL_INT_IMAGE_2D_MULTISAMPLE       = $9060;
4088   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $9061;
4089   GL_UNSIGNED_INT_IMAGE_1D          = $9062;
4090   GL_UNSIGNED_INT_IMAGE_2D          = $9063;
4091   GL_UNSIGNED_INT_IMAGE_3D          = $9064;
4092   GL_UNSIGNED_INT_IMAGE_2D_RECT     = $9065;
4093   GL_UNSIGNED_INT_IMAGE_CUBE        = $9066;
4094   GL_UNSIGNED_INT_IMAGE_BUFFER      = $9067;
4095   GL_UNSIGNED_INT_IMAGE_1D_ARRAY    = $9068;
4096   GL_UNSIGNED_INT_IMAGE_2D_ARRAY    = $9069;
4097   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = $906A;
4098   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = $906B;
4099   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = $906C;
4100   GL_MAX_IMAGE_SAMPLES              = $906D;
4101   GL_IMAGE_BINDING_FORMAT           = $906E;
4102   GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = $90C7;
4103   GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = $90C8;
4104   GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = $90C9;
4105   GL_MAX_VERTEX_IMAGE_UNIFORMS      = $90CA;
4106   GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = $90CB;
4107   GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = $90CC;
4108   GL_MAX_GEOMETRY_IMAGE_UNIFORMS    = $90CD;
4109   GL_MAX_FRAGMENT_IMAGE_UNIFORMS    = $90CE;
4110   GL_MAX_COMBINED_IMAGE_UNIFORMS    = $90CF;
4111
4112   // GL_ARB_texture_storage
4113   GL_TEXTURE_IMMUTABLE_FORMAT       = $912F;
4114
4115   // 4.3
4116   // GL_KHR_texture_compression_astc_hdr
4117   GL_COMPRESSED_RGBA_ASTC_4x4_KHR = $93B0;
4118   GL_COMPRESSED_RGBA_ASTC_5x4_KHR = $93B1;
4119   GL_COMPRESSED_RGBA_ASTC_5x5_KHR = $93B2;
4120   GL_COMPRESSED_RGBA_ASTC_6x5_KHR = $93B3;
4121   GL_COMPRESSED_RGBA_ASTC_6x6_KHR = $93B4;
4122   GL_COMPRESSED_RGBA_ASTC_8x5_KHR = $93B5;
4123   GL_COMPRESSED_RGBA_ASTC_8x6_KHR = $93B6;
4124   GL_COMPRESSED_RGBA_ASTC_8x8_KHR = $93B7;
4125   GL_COMPRESSED_RGBA_ASTC_105_KHR = $93B8;
4126   GL_COMPRESSED_RGBA_ASTC_106_KHR = $93B9;
4127   GL_COMPRESSED_RGBA_ASTC_108_KHR = $93BA;
4128   GL_COMPRESSED_RGBA_ASTC_110_KHR = $93BB;
4129   GL_COMPRESSED_RGBA_ASTC_12x10_KHR = $93BC;
4130   GL_COMPRESSED_RGBA_ASTC_12x12_KHR = $93BD;
4131   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = $93D0;
4132   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = $93D1;
4133   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = $93D2;
4134   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = $93D3;
4135   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = $93D4;
4136   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = $93D5;
4137   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = $93D6;
4138   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = $93D7;
4139   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = $93D8;
4140   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = $93D9;
4141   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = $93DA;
4142   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = $93DB;
4143   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = $93DC;
4144   GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = $93DD;
4145   // (4.3) GL_KHR_debug
4146   GL_DEBUG_OUTPUT_SYNCHRONOUS       = $8242;
4147   GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = $8243;
4148   GL_DEBUG_CALLBACK_FUNCTION        = $8244;
4149   GL_DEBUG_CALLBACK_USER_PARAM      = $8245;
4150   GL_DEBUG_SOURCE_API               = $8246;
4151   GL_DEBUG_SOURCE_WINDOW_SYSTEM     = $8247;
4152   GL_DEBUG_SOURCE_SHADER_COMPILER   = $8248;
4153   GL_DEBUG_SOURCE_THIRD_PARTY       = $8249;
4154   GL_DEBUG_SOURCE_APPLICATION       = $824A;
4155   GL_DEBUG_SOURCE_OTHER             = $824B;
4156   GL_DEBUG_TYPE_ERROR               = $824C;
4157   GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = $824D;
4158   GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  = $824E;
4159   GL_DEBUG_TYPE_PORTABILITY         = $824F;
4160   GL_DEBUG_TYPE_PERFORMANCE         = $8250;
4161   GL_DEBUG_TYPE_OTHER               = $8251;
4162   GL_DEBUG_TYPE_MARKER              = $8268;
4163   GL_DEBUG_TYPE_PUSH_GROUP          = $8269;
4164   GL_DEBUG_TYPE_POP_GROUP           = $826A;
4165   GL_DEBUG_SEVERITY_NOTIFICATION    = $826B;
4166   GL_MAX_DEBUG_GROUP_STACK_DEPTH    = $826C;
4167   GL_DEBUG_GROUP_STACK_DEPTH        = $826D;
4168   GL_BUFFER                         = $82E0;
4169   GL_SHADER                         = $82E1;
4170   GL_PROGRAM                        = $82E2;
4171   GL_QUERY                          = $82E3;
4172   GL_PROGRAM_PIPELINE               = $82E4;
4173   GL_SAMPLER                        = $82E6;
4174   GL_DISPLAY_LIST                   = $82E7;
4175   GL_MAX_LABEL_LENGTH               = $82E8;
4176   GL_MAX_DEBUG_MESSAGE_LENGTH       = $9143;
4177   GL_MAX_DEBUG_LOGGED_MESSAGES      = $9144;
4178   GL_DEBUG_LOGGED_MESSAGES          = $9145;
4179   GL_DEBUG_SEVERITY_HIGH            = $9146;
4180   GL_DEBUG_SEVERITY_MEDIUM          = $9147;
4181   GL_DEBUG_SEVERITY_LOW             = $9148;
4182   GL_DEBUG_OUTPUT                   = $92E0;
4183   GL_CONTEXT_FLAG_DEBUG_BIT         = $00000002;
4184   GL_COMPUTE_SHADER                 = $91B9;
4185   GL_MAX_COMPUTE_UNIFORM_BLOCKS     = $91BB;
4186   GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = $91BC;
4187   GL_MAX_COMPUTE_IMAGE_UNIFORMS     = $91BD;
4188   GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = $8262;
4189   GL_MAX_COMPUTE_UNIFORM_COMPONENTS = $8263;
4190   GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = $8264;
4191   GL_MAX_COMPUTE_ATOMIC_COUNTERS    = $8265;
4192   GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = $8266;
4193   GL_MAX_COMPUTE_LOCAL_INVOCATIONS  = $90EB;
4194   GL_MAX_COMPUTE_WORK_GROUP_COUNT   = $91BE;
4195   GL_MAX_COMPUTE_WORK_GROUP_SIZE    = $91BF;
4196   GL_COMPUTE_LOCAL_WORK_SIZE        = $8267;
4197   GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = $90EC;
4198   GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = $90ED;
4199   GL_DISPATCH_INDIRECT_BUFFER       = $90EE;
4200   GL_DISPATCH_INDIRECT_BUFFER_BINDING = $90EF;
4201   GL_COMPUTE_SHADER_BIT             = $00000020;
4202   GL_COMPRESSED_RGB8_ETC2           = $9274;
4203   GL_COMPRESSED_SRGB8_ETC2          = $9275;
4204   GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9276;
4205   GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = $9277;
4206   GL_COMPRESSED_RGBA8_ETC2_EAC      = $9278;
4207   GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = $9279;
4208   GL_COMPRESSED_R11_EAC             = $9270;
4209   GL_COMPRESSED_SIGNED_R11_EAC      = $9271;
4210   GL_COMPRESSED_RG11_EAC            = $9272;
4211   GL_COMPRESSED_SIGNED_RG11_EAC     = $9273;
4212   GL_PRIMITIVE_RESTART_FIXED_INDEX  = $8D69;
4213   GL_ANY_SAMPLES_PASSED_CONSERVATIVE = $8D6A;
4214   GL_MAX_ELEMENT_INDEX              = $8D6B;
4215       GL_MAX_UNIFORM_LOCATIONS          = $826E;
4216   GL_FRAMEBUFFER_DEFAULT_WIDTH      = $9310;
4217   GL_FRAMEBUFFER_DEFAULT_HEIGHT     = $9311;
4218   GL_FRAMEBUFFER_DEFAULT_LAYERS     = $9312;
4219   GL_FRAMEBUFFER_DEFAULT_SAMPLES    = $9313;
4220   GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = $9314;
4221   GL_MAX_FRAMEBUFFER_WIDTH          = $9315;
4222   GL_MAX_FRAMEBUFFER_HEIGHT         = $9316;
4223   GL_MAX_FRAMEBUFFER_LAYERS         = $9317;
4224   GL_MAX_FRAMEBUFFER_SAMPLES        = $9318;
4225         GL_INTERNALFORMAT_SUPPORTED       = $826F;
4226   GL_INTERNALFORMAT_PREFERRED       = $8270;
4227   GL_INTERNALFORMAT_RED_SIZE        = $8271;
4228   GL_INTERNALFORMAT_GREEN_SIZE      = $8272;
4229   GL_INTERNALFORMAT_BLUE_SIZE       = $8273;
4230   GL_INTERNALFORMAT_ALPHA_SIZE      = $8274;
4231   GL_INTERNALFORMAT_DEPTH_SIZE      = $8275;
4232   GL_INTERNALFORMAT_STENCIL_SIZE    = $8276;
4233   GL_INTERNALFORMAT_SHARED_SIZE     = $8277;
4234   GL_INTERNALFORMAT_RED_TYPE        = $8278;
4235   GL_INTERNALFORMAT_GREEN_TYPE      = $8279;
4236   GL_INTERNALFORMAT_BLUE_TYPE       = $827A;
4237   GL_INTERNALFORMAT_ALPHA_TYPE      = $827B;
4238   GL_INTERNALFORMAT_DEPTH_TYPE      = $827C;
4239   GL_INTERNALFORMAT_STENCIL_TYPE    = $827D;
4240   GL_MAX_WIDTH                      = $827E;
4241   GL_MAX_HEIGHT                     = $827F;
4242   GL_MAX_DEPTH                      = $8280;
4243   GL_MAX_LAYERS                     = $8281;
4244   GL_MAX_COMBINED_DIMENSIONS        = $8282;
4245   GL_COLOR_COMPONENTS               = $8283;
4246   GL_DEPTH_COMPONENTS               = $8284;
4247   GL_STENCIL_COMPONENTS             = $8285;
4248   GL_COLOR_RENDERABLE               = $8286;
4249   GL_DEPTH_RENDERABLE               = $8287;
4250   GL_STENCIL_RENDERABLE             = $8288;
4251   GL_FRAMEBUFFER_RENDERABLE         = $8289;
4252   GL_FRAMEBUFFER_RENDERABLE_LAYERED = $828A;
4253   GL_FRAMEBUFFER_BLEND              = $828B;
4254   GL_READ_PIXELS                    = $828C;
4255   GL_READ_PIXELS_FORMAT             = $828D;
4256   GL_READ_PIXELS_TYPE               = $828E;
4257   GL_TEXTURE_IMAGE_FORMAT           = $828F;
4258   GL_TEXTURE_IMAGE_TYPE             = $8290;
4259   GL_GET_TEXTURE_IMAGE_FORMAT       = $8291;
4260   GL_GET_TEXTURE_IMAGE_TYPE         = $8292;
4261   GL_MIPMAP                         = $8293;
4262   GL_MANUAL_GENERATE_MIPMAP         = $8294;
4263   GL_AUTO_GENERATE_MIPMAP           = $8295;
4264   GL_COLOR_ENCODING                 = $8296;
4265   GL_SRGB_READ                      = $8297;
4266   GL_SRGB_WRITE                     = $8298;
4267   GL_SRGB_DECODE_ARB                = $8299;
4268   GL_FILTER                         = $829A;
4269   GL_VERTEX_TEXTURE                 = $829B;
4270   GL_TESS_CONTROL_TEXTURE           = $829C;
4271   GL_TESS_EVALUATION_TEXTURE        = $829D;
4272   GL_GEOMETRY_TEXTURE               = $829E;
4273   GL_FRAGMENT_TEXTURE               = $829F;
4274   GL_COMPUTE_TEXTURE                = $82A0;
4275   GL_TEXTURE_SHADOW                 = $82A1;
4276   GL_TEXTURE_GATHER                 = $82A2;
4277   GL_TEXTURE_GATHER_SHADOW          = $82A3;
4278   GL_SHADER_IMAGE_LOAD              = $82A4;
4279   GL_SHADER_IMAGE_STORE             = $82A5;
4280   GL_SHADER_IMAGE_ATOMIC            = $82A6;
4281   GL_IMAGE_TEXEL_SIZE               = $82A7;
4282   GL_IMAGE_COMPATIBILITY_CLASS      = $82A8;
4283   GL_IMAGE_PIXEL_FORMAT             = $82A9;
4284   GL_IMAGE_PIXEL_TYPE               = $82AA;
4285   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = $82AC;
4286   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = $82AD;
4287   GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = $82AE;
4288   GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = $82AF;
4289   GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = $82B1;
4290   GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = $82B2;
4291   GL_TEXTURE_COMPRESSED_BLOCK_SIZE  = $82B3;
4292   GL_CLEAR_BUFFER                   = $82B4;
4293   GL_TEXTURE_VIEW                   = $82B5;
4294   GL_VIEW_COMPATIBILITY_CLASS       = $82B6;
4295   GL_FULL_SUPPORT                   = $82B7;
4296   GL_CAVEAT_SUPPORT                 = $82B8;
4297   GL_IMAGE_CLASS_4_X_32             = $82B9;
4298   GL_IMAGE_CLASS_2_X_32             = $82BA;
4299   GL_IMAGE_CLASS_1_X_32             = $82BB;
4300   GL_IMAGE_CLASS_4_X_16             = $82BC;
4301   GL_IMAGE_CLASS_2_X_16             = $82BD;
4302   GL_IMAGE_CLASS_1_X_16             = $82BE;
4303   GL_IMAGE_CLASS_4_X_8              = $82BF;
4304   GL_IMAGE_CLASS_2_X_8              = $82C0;
4305   GL_IMAGE_CLASS_1_X_8              = $82C1;
4306   GL_IMAGE_CLASS_11_11_10           = $82C2;
4307   GL_IMAGE_CLASS_10_10_10_2         = $82C3;
4308   GL_VIEW_CLASS_128_BITS            = $82C4;
4309   GL_VIEW_CLASS_96_BITS             = $82C5;
4310   GL_VIEW_CLASS_64_BITS             = $82C6;
4311   GL_VIEW_CLASS_48_BITS             = $82C7;
4312   GL_VIEW_CLASS_32_BITS             = $82C8;
4313   GL_VIEW_CLASS_24_BITS             = $82C9;
4314   GL_VIEW_CLASS_16_BITS             = $82CA;
4315   GL_VIEW_CLASS_8_BITS              = $82CB;
4316   GL_VIEW_CLASS_S3TC_DXT1_RGB       = $82CC;
4317   GL_VIEW_CLASS_S3TC_DXT1_RGBA      = $82CD;
4318   GL_VIEW_CLASS_S3TC_DXT3_RGBA      = $82CE;
4319   GL_VIEW_CLASS_S3TC_DXT5_RGBA      = $82CF;
4320   GL_VIEW_CLASS_RGTC1_RED           = $82D0;
4321   GL_VIEW_CLASS_RGTC2_RG            = $82D1;
4322   GL_VIEW_CLASS_BPTC_UNORM          = $82D2;
4323   GL_VIEW_CLASS_BPTC_FLOAT          = $82D3;
4324   GL_UNIFORM                        = $92E1;
4325   GL_UNIFORM_BLOCK                  = $92E2;
4326   GL_PROGRAM_INPUT                  = $92E3;
4327   GL_PROGRAM_OUTPUT                 = $92E4;
4328   GL_BUFFER_VARIABLE                = $92E5;
4329   GL_SHADER_STORAGE_BLOCK           = $92E6;
4330   GL_VERTEX_SUBROUTINE              = $92E8;
4331   GL_TESS_CONTROL_SUBROUTINE        = $92E9;
4332   GL_TESS_EVALUATION_SUBROUTINE     = $92EA;
4333   GL_GEOMETRY_SUBROUTINE            = $92EB;
4334   GL_FRAGMENT_SUBROUTINE            = $92EC;
4335   GL_COMPUTE_SUBROUTINE             = $92ED;
4336   GL_VERTEX_SUBROUTINE_UNIFORM      = $92EE;
4337   GL_TESS_CONTROL_SUBROUTINE_UNIFORM = $92EF;
4338   GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = $92F0;
4339   GL_GEOMETRY_SUBROUTINE_UNIFORM    = $92F1;
4340   GL_FRAGMENT_SUBROUTINE_UNIFORM    = $92F2;
4341   GL_COMPUTE_SUBROUTINE_UNIFORM     = $92F3;
4342   GL_TRANSFORM_FEEDBACK_VARYING     = $92F4;
4343   GL_ACTIVE_RESOURCES               = $92F5;
4344   GL_MAX_NAME_LENGTH                = $92F6;
4345   GL_MAX_NUM_ACTIVE_VARIABLES       = $92F7;
4346   GL_MAX_NUM_COMPATIBLE_SUBROUTINES = $92F8;
4347   GL_NAME_LENGTH                    = $92F9;
4348   GL_TYPE                           = $92FA;
4349   GL_ARRAY_SIZE                     = $92FB;
4350   GL_OFFSET                         = $92FC;
4351   GL_BLOCK_INDEX                    = $92FD;
4352   GL_ARRAY_STRIDE                   = $92FE;
4353   GL_MATRIX_STRIDE                  = $92FF;
4354   GL_IS_ROW_MAJOR                   = $9300;
4355   GL_ATOMIC_COUNTER_BUFFER_INDEX    = $9301;
4356   GL_BUFFER_BINDING                 = $9302;
4357   GL_BUFFER_DATA_SIZE               = $9303;
4358   GL_NUM_ACTIVE_VARIABLES           = $9304;
4359   GL_ACTIVE_VARIABLES               = $9305;
4360   GL_REFERENCED_BY_VERTEX_SHADER    = $9306;
4361   GL_REFERENCED_BY_TESS_CONTROL_SHADER = $9307;
4362   GL_REFERENCED_BY_TESS_EVALUATION_SHADER = $9308;
4363   GL_REFERENCED_BY_GEOMETRY_SHADER  = $9309;
4364   GL_REFERENCED_BY_FRAGMENT_SHADER  = $930A;
4365   GL_REFERENCED_BY_COMPUTE_SHADER   = $930B;
4366   GL_TOP_LEVEL_ARRAY_SIZE           = $930C;
4367   GL_TOP_LEVEL_ARRAY_STRIDE         = $930D;
4368   GL_LOCATION                       = $930E;
4369   GL_LOCATION_INDEX                 = $930F;
4370   GL_IS_PER_PATCH                   = $92E7;
4371   GL_SHADER_STORAGE_BUFFER          = $90D2;
4372   GL_SHADER_STORAGE_BUFFER_BINDING  = $90D3;
4373   GL_SHADER_STORAGE_BUFFER_START    = $90D4;
4374   GL_SHADER_STORAGE_BUFFER_SIZE     = $90D5;
4375   GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = $90D6;
4376   GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = $90D7;
4377   GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = $90D8;
4378   GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = $90D9;
4379   GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = $90DA;
4380   GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = $90DB;
4381   GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = $90DC;
4382   GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = $90DD;
4383   GL_MAX_SHADER_STORAGE_BLOCK_SIZE  = $90DE;
4384   GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = $90DF;
4385   GL_SHADER_STORAGE_BARRIER_BIT     = $2000;
4386   GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS;
4387   GL_DEPTH_STENCIL_TEXTURE_MODE     = $90EA;
4388
4389   GL_TEXTURE_BUFFER_OFFSET          = $919D;
4390   GL_TEXTURE_BUFFER_SIZE            = $919E;
4391   GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = $919F;
4392   GL_TEXTURE_VIEW_MIN_LEVEL         = $82DB;
4393   GL_TEXTURE_VIEW_NUM_LEVELS        = $82DC;
4394   GL_TEXTURE_VIEW_MIN_LAYER         = $82DD;
4395   GL_TEXTURE_VIEW_NUM_LAYERS        = $82DE;
4396   GL_TEXTURE_IMMUTABLE_LEVELS       = $82DF;
4397   GL_VERTEX_ATTRIB_BINDING          = $82D4;
4398   GL_VERTEX_ATTRIB_RELATIVE_OFFSET  = $82D5;
4399   GL_VERTEX_BINDING_DIVISOR         = $82D6;
4400   GL_VERTEX_BINDING_OFFSET          = $82D7;
4401   GL_VERTEX_BINDING_STRIDE          = $82D8;
4402   GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
4403   GL_MAX_VERTEX_ATTRIB_BINDINGS     = $82DA;
4404
4405   // GL 4.4
4406   GL_MAX_VERTEX_ATTRIB_STRIDE         = $82E5;
4407   GL_MAP_PERSISTENT_BIT               = $0040;
4408   GL_MAP_COHERENT_BIT                 = $0080;
4409   GL_DYNAMIC_STORAGE_BIT              = $0100;
4410   GL_CLIENT_STORAGE_BIT               = $0200;
4411   GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = $00004000;
4412   GL_BUFFER_IMMUTABLE_STORAGE           = $821F;
4413   GL_BUFFER_STORAGE_FLAGS               = $8220;
4414   GL_CLEAR_TEXTURE                      = $9365;
4415   GL_LOCATION_COMPONENT                 = $934A;
4416   GL_TRANSFORM_FEEDBACK_BUFFER_INDEX    = $934B;
4417   GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = $934C;
4418   GL_QUERY_BUFFER                       = $9192;
4419   GL_QUERY_BUFFER_BARRIER_BIT           = $00008000;
4420   GL_QUERY_BUFFER_BINDING               = $9193;
4421   GL_QUERY_RESULT_NO_WAIT               = $9194;
4422   GL_MIRROR_CLAMP_TO_EDGE               = $8743;
4423
4424   // GL 4.5
4425   GL_CONTEXT_LOST                   = $0507;
4426   GL_NEGATIVE_ONE_TO_ONE            = $935E;
4427   GL_ZERO_TO_ONE                    = $935F;
4428   GL_CLIP_ORIGIN                    = $935C;
4429   GL_CLIP_DEPTH_MODE                = $935D;
4430   GL_QUERY_WAIT_INVERTED            = $8E17;
4431   GL_QUERY_NO_WAIT_INVERTED         = $8E18;
4432   GL_QUERY_BY_REGION_WAIT_INVERTED  = $8E19;
4433   GL_QUERY_BY_REGION_NO_WAIT_INVERTED = $8E1A;
4434   GL_MAX_CULL_DISTANCES             = $82F9;
4435   GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = $82FA;
4436   GL_TEXTURE_TARGET                 = $1006;
4437   GL_QUERY_TARGET                   = $82EA;
4438   GL_TEXTURE_BINDING                = $82EB;
4439   GL_GUILTY_CONTEXT_RESET           = $8253;
4440   GL_INNOCENT_CONTEXT_RESET         = $8254;
4441   GL_UNKNOWN_CONTEXT_RESET          = $8255;
4442   GL_RESET_NOTIFICATION_STRATEGY    = $8256;
4443   GL_LOSE_CONTEXT_ON_RESET          = $8252;
4444   GL_NO_RESET_NOTIFICATION          = $8261;
4445   GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = $00000004;
4446   GL_CONTEXT_RELEASE_BEHAVIOR       = $82FB;
4447   GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = $82FC;
4448
4449   // GL_ATI_draw_buffers
4450   GL_MAX_DRAW_BUFFERS_ATI = $8824;
4451   GL_DRAW_BUFFER0_ATI = $8825;
4452   GL_DRAW_BUFFER1_ATI = $8826;
4453   GL_DRAW_BUFFER2_ATI = $8827;
4454   GL_DRAW_BUFFER3_ATI = $8828;
4455   GL_DRAW_BUFFER4_ATI = $8829;
4456   GL_DRAW_BUFFER5_ATI = $882A;
4457   GL_DRAW_BUFFER6_ATI = $882B;
4458   GL_DRAW_BUFFER7_ATI = $882C;
4459   GL_DRAW_BUFFER8_ATI = $882D;
4460   GL_DRAW_BUFFER9_ATI = $882E;
4461   GL_DRAW_BUFFER10_ATI = $882F;
4462   GL_DRAW_BUFFER11_ATI = $8830;
4463   GL_DRAW_BUFFER12_ATI = $8831;
4464   GL_DRAW_BUFFER13_ATI = $8832;
4465   GL_DRAW_BUFFER14_ATI = $8833;
4466   GL_DRAW_BUFFER15_ATI = $8834;
4467
4468   // GL_ATI_element_array
4469   GL_ELEMENT_ARRAY_ATI = $8768;
4470   GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
4471   GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
4472
4473   // GL_ATI_envmap_bumpmap
4474   GL_BUMP_ROT_MATRIX_ATI = $8775;
4475   GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
4476   GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
4477   GL_BUMP_TEX_UNITS_ATI = $8778;
4478   GL_DUDV_ATI = $8779;
4479   GL_DU8DV8_ATI = $877A;
4480   GL_BUMP_ENVMAP_ATI = $877B;
4481   GL_BUMP_TARGET_ATI = $877C;
4482
4483   // GL_ATI_fragment_shader
4484   GL_FRAGMENT_SHADER_ATI = $8920;
4485   GL_REG_0_ATI = $8921;
4486   GL_REG_1_ATI = $8922;
4487   GL_REG_2_ATI = $8923;
4488   GL_REG_3_ATI = $8924;
4489   GL_REG_4_ATI = $8925;
4490   GL_REG_5_ATI = $8926;
4491   GL_REG_6_ATI = $8927;
4492   GL_REG_7_ATI = $8928;
4493   GL_REG_8_ATI = $8929;
4494   GL_REG_9_ATI = $892A;
4495   GL_REG_10_ATI = $892B;
4496   GL_REG_11_ATI = $892C;
4497   GL_REG_12_ATI = $892D;
4498   GL_REG_13_ATI = $892E;
4499   GL_REG_14_ATI = $892F;
4500   GL_REG_15_ATI = $8930;
4501   GL_REG_16_ATI = $8931;
4502   GL_REG_17_ATI = $8932;
4503   GL_REG_18_ATI = $8933;
4504   GL_REG_19_ATI = $8934;
4505   GL_REG_20_ATI = $8935;
4506   GL_REG_21_ATI = $8936;
4507   GL_REG_22_ATI = $8937;
4508   GL_REG_23_ATI = $8938;
4509   GL_REG_24_ATI = $8939;
4510   GL_REG_25_ATI = $893A;
4511   GL_REG_26_ATI = $893B;
4512   GL_REG_27_ATI = $893C;
4513   GL_REG_28_ATI = $893D;
4514   GL_REG_29_ATI = $893E;
4515   GL_REG_30_ATI = $893F;
4516   GL_REG_31_ATI = $8940;
4517   GL_CON_0_ATI = $8941;
4518   GL_CON_1_ATI = $8942;
4519   GL_CON_2_ATI = $8943;
4520   GL_CON_3_ATI = $8944;
4521   GL_CON_4_ATI = $8945;
4522   GL_CON_5_ATI = $8946;
4523   GL_CON_6_ATI = $8947;
4524   GL_CON_7_ATI = $8948;
4525   GL_CON_8_ATI = $8949;
4526   GL_CON_9_ATI = $894A;
4527   GL_CON_10_ATI = $894B;
4528   GL_CON_11_ATI = $894C;
4529   GL_CON_12_ATI = $894D;
4530   GL_CON_13_ATI = $894E;
4531   GL_CON_14_ATI = $894F;
4532   GL_CON_15_ATI = $8950;
4533   GL_CON_16_ATI = $8951;
4534   GL_CON_17_ATI = $8952;
4535   GL_CON_18_ATI = $8953;
4536   GL_CON_19_ATI = $8954;
4537   GL_CON_20_ATI = $8955;
4538   GL_CON_21_ATI = $8956;
4539   GL_CON_22_ATI = $8957;
4540   GL_CON_23_ATI = $8958;
4541   GL_CON_24_ATI = $8959;
4542   GL_CON_25_ATI = $895A;
4543   GL_CON_26_ATI = $895B;
4544   GL_CON_27_ATI = $895C;
4545   GL_CON_28_ATI = $895D;
4546   GL_CON_29_ATI = $895E;
4547   GL_CON_30_ATI = $895F;
4548   GL_CON_31_ATI = $8960;
4549   GL_MOV_ATI = $8961;
4550   GL_ADD_ATI = $8963;
4551   GL_MUL_ATI = $8964;
4552   GL_SUB_ATI = $8965;
4553   GL_DOT3_ATI = $8966;
4554   GL_DOT4_ATI = $8967;
4555   GL_MAD_ATI = $8968;
4556   GL_LERP_ATI = $8969;
4557   GL_CND_ATI = $896A;
4558   GL_CND0_ATI = $896B;
4559   GL_DOT2_ADD_ATI = $896C;
4560   GL_SECONDARY_INTERPOLATOR_ATI = $896D;
4561   GL_NUM_FRAGMENT_REGISTERS_ATI = $896E;
4562   GL_NUM_FRAGMENT_CONSTANTS_ATI = $896F;
4563   GL_NUM_PASSES_ATI = $8970;
4564   GL_NUM_INSTRUCTIONS_PER_PASS_ATI = $8971;
4565   GL_NUM_INSTRUCTIONS_TOTAL_ATI = $8972;
4566   GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = $8973;
4567   GL_NUM_LOOPBACK_COMPONENTS_ATI = $8974;
4568   GL_COLOR_ALPHA_PAIRING_ATI = $8975;
4569   GL_SWIZZLE_STR_ATI = $8976;
4570   GL_SWIZZLE_STQ_ATI = $8977;
4571   GL_SWIZZLE_STR_DR_ATI = $8978;
4572   GL_SWIZZLE_STQ_DQ_ATI = $8979;
4573   GL_SWIZZLE_STRQ_ATI = $897A;
4574   GL_SWIZZLE_STRQ_DQ_ATI = $897B;
4575   GL_RED_BIT_ATI = $00000001;
4576   GL_GREEN_BIT_ATI = $00000002;
4577   GL_BLUE_BIT_ATI = $00000004;
4578   GL_2X_BIT_ATI = $00000001;
4579   GL_4X_BIT_ATI = $00000002;
4580   GL_8X_BIT_ATI = $00000004;
4581   GL_HALF_BIT_ATI = $00000008;
4582   GL_QUARTER_BIT_ATI = $00000010;
4583   GL_EIGHTH_BIT_ATI = $00000020;
4584   GL_SATURATE_BIT_ATI = $00000040;
4585   GL_COMP_BIT_ATI = $00000002;
4586   GL_NEGATE_BIT_ATI = $00000004;
4587   GL_BIAS_BIT_ATI = $00000008;
4588
4589   // GL_ATI_pn_triangles
4590   GL_PN_TRIANGLES_ATI = $87F0;
4591   GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
4592   GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
4593   GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
4594   GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
4595   GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
4596   GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
4597   GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
4598   GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
4599
4600   // GL_ATI_separate_stencil
4601   GL_STENCIL_BACK_FUNC_ATI = $8800;
4602   GL_STENCIL_BACK_FAIL_ATI = $8801;
4603   GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
4604   GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
4605
4606   // GL_ATI_text_fragment_shader
4607   GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
4608
4609   // GL_ATI_texture_env_combine3
4610   GL_MODULATE_ADD_ATI = $8744;
4611   GL_MODULATE_SIGNED_ADD_ATI = $8745;
4612   GL_MODULATE_SUBTRACT_ATI = $8746;
4613
4614   // GL_ATI_texture_float
4615   GL_RGBA_FLOAT32_ATI = $8814;
4616   GL_RGB_FLOAT32_ATI = $8815;
4617   GL_ALPHA_FLOAT32_ATI = $8816;
4618   GL_INTENSITY_FLOAT32_ATI = $8817;
4619   GL_LUMINANCE_FLOAT32_ATI = $8818;
4620   GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
4621   GL_RGBA_FLOAT16_ATI = $881A;
4622   GL_RGB_FLOAT16_ATI = $881B;
4623   GL_ALPHA_FLOAT16_ATI = $881C;
4624   GL_INTENSITY_FLOAT16_ATI = $881D;
4625   GL_LUMINANCE_FLOAT16_ATI = $881E;
4626   GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
4627
4628   // GL_ATI_texture_mirror_once
4629   GL_MIRROR_CLAMP_ATI = $8742;
4630   GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
4631
4632   // GL_ATI_vertex_array_object
4633   GL_STATIC_ATI = $8760;
4634   GL_DYNAMIC_ATI = $8761;
4635   GL_PRESERVE_ATI = $8762;
4636   GL_DISCARD_ATI = $8763;
4637   GL_OBJECT_BUFFER_SIZE_ATI = $8764;
4638   GL_OBJECT_BUFFER_USAGE_ATI = $8765;
4639   GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
4640   GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
4641
4642   // GL_ATI_vertex_streams
4643   GL_MAX_VERTEX_STREAMS_ATI = $876B;
4644   GL_VERTEX_STREAM0_ATI = $876C;
4645   GL_VERTEX_STREAM1_ATI = $876D;
4646   GL_VERTEX_STREAM2_ATI = $876E;
4647   GL_VERTEX_STREAM3_ATI = $876F;
4648   GL_VERTEX_STREAM4_ATI = $8770;
4649   GL_VERTEX_STREAM5_ATI = $8771;
4650   GL_VERTEX_STREAM6_ATI = $8772;
4651   GL_VERTEX_STREAM7_ATI = $8773;
4652   GL_VERTEX_SOURCE_ATI = $8774;
4653
4654   // GL_ATI_meminfo
4655   GL_VBO_FREE_MEMORY_ATI = $87FB;
4656   GL_TEXTURE_FREE_MEMORY_ATI = $87FC;
4657   GL_RENDERBUFFER_FREE_MEMORY_ATI = $87FD;
4658
4659   // GL_AMD_performance_monitor
4660   GL_COUNTER_TYPE_AMD = $8BC0;
4661   GL_COUNTER_RANGE_AMD = $8BC1;
4662   GL_UNSIGNED_INT64_AMD = $8BC2;
4663   GL_PERCENTAGE_AMD = $8BC3;
4664   GL_PERFMON_RESULT_AVAILABLE_AMD = $8BC4;
4665   GL_PERFMON_RESULT_SIZE_AMD = $8BC5;
4666   GL_PERFMON_RESULT_AMD = $8BC6;
4667
4668   // GL_AMD_vertex_shader_tesselator
4669   GL_SAMPLER_BUFFER_AMD = $9001;
4670   GL_INT_SAMPLER_BUFFER_AMD = $9002;
4671   GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = $9003;
4672   GL_TESSELLATION_MODE_AMD = $9004;
4673   GL_TESSELLATION_FACTOR_AMD = $9005;
4674   GL_DISCRETE_AMD = $9006;
4675   GL_CONTINUOUS_AMD = $9007;
4676
4677   // GL_AMD_seamless_cubemap_per_texture
4678   { reuse GL_TEXTURE_CUBE_MAP_SEAMLESS }
4679
4680   // GL_AMD_name_gen_delete
4681   GL_DATA_BUFFER_AMD = $9151;
4682   GL_PERFORMANCE_MONITOR_AMD = $9152;
4683   GL_QUERY_OBJECT_AMD = $9153;
4684   GL_VERTEX_ARRAY_OBJECT_AMD = $9154;
4685   GL_SAMPLER_OBJECT_AMD = $9155;
4686
4687   // GL_AMD_debug_output
4688   GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = $9144;
4689   GL_DEBUG_LOGGED_MESSAGES_AMD = $9145;
4690   GL_DEBUG_SEVERITY_HIGH_AMD = $9146;
4691   GL_DEBUG_SEVERITY_MEDIUM_AMD = $9147;
4692   GL_DEBUG_SEVERITY_LOW_AMD = $9148;
4693   GL_DEBUG_CATEGORY_API_ERROR_AMD = $9149;
4694   GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = $914A;
4695   GL_DEBUG_CATEGORY_DEPRECATION_AMD = $914B;
4696   GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = $914C;
4697   GL_DEBUG_CATEGORY_PERFORMANCE_AMD = $914D;
4698   GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = $914E;
4699   GL_DEBUG_CATEGORY_APPLICATION_AMD = $914F;
4700   GL_DEBUG_CATEGORY_OTHER_AMD = $9150;
4701
4702   // GL_AMD_depth_clamp_separate
4703   GL_DEPTH_CLAMP_NEAR_AMD = $901E;
4704   GL_DEPTH_CLAMP_FAR_AMD = $901F;
4705
4706   // GL_EXT_422_pixels
4707   GL_422_EXT = $80CC;
4708   GL_422_REV_EXT = $80CD;
4709   GL_422_AVERAGE_EXT = $80CE;
4710   GL_422_REV_AVERAGE_EXT = $80CF;
4711
4712   // GL_EXT_abgr
4713   GL_ABGR_EXT = $8000;
4714
4715   // GL_EXT_bgra
4716   GL_BGR_EXT = $80E0;
4717   GL_BGRA_EXT = $80E1;
4718
4719   // GL_EXT_blend_color
4720   GL_CONSTANT_COLOR_EXT = $8001;
4721   GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
4722   GL_CONSTANT_ALPHA_EXT = $8003;
4723   GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
4724   GL_BLEND_COLOR_EXT = $8005;
4725
4726   // GL_EXT_blend_func_separate
4727   GL_BLEND_DST_RGB_EXT = $80C8;
4728   GL_BLEND_SRC_RGB_EXT = $80C9;
4729   GL_BLEND_DST_ALPHA_EXT = $80CA;
4730   GL_BLEND_SRC_ALPHA_EXT = $80CB;
4731
4732   // GL_EXT_blend_minmax
4733   GL_FUNC_ADD_EXT = $8006;
4734   GL_MIN_EXT = $8007;
4735   GL_MAX_EXT = $8008;
4736   GL_BLEND_EQUATION_EXT = $8009;
4737
4738   // GL_EXT_blend_subtract
4739   GL_FUNC_SUBTRACT_EXT = $800A;
4740   GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
4741
4742   // GL_EXT_clip_volume_hint
4743   GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
4744
4745   // GL_EXT_cmyka
4746   GL_CMYK_EXT = $800C;
4747   GL_CMYKA_EXT = $800D;
4748   GL_PACK_CMYK_HINT_EXT = $800E;
4749   GL_UNPACK_CMYK_HINT_EXT = $800F;
4750
4751   // GL_EXT_compiled_vertex_array
4752   GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
4753   GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
4754
4755   // GL_EXT_convolution
4756   GL_CONVOLUTION_1D_EXT = $8010;
4757   GL_CONVOLUTION_2D_EXT = $8011;
4758   GL_SEPARABLE_2D_EXT = $8012;
4759   GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
4760   GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
4761   GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
4762   GL_REDUCE_EXT = $8016;
4763   GL_CONVOLUTION_FORMAT_EXT = $8017;
4764   GL_CONVOLUTION_WIDTH_EXT = $8018;
4765   GL_CONVOLUTION_HEIGHT_EXT = $8019;
4766   GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
4767   GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
4768   GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
4769   GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
4770   GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
4771   GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
4772   GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
4773   GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
4774   GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
4775   GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
4776
4777   // GL_EXT_coordinate_frame
4778   GL_TANGENT_ARRAY_EXT = $8439;
4779   GL_BINORMAL_ARRAY_EXT = $843A;
4780   GL_CURRENT_TANGENT_EXT = $843B;
4781   GL_CURRENT_BINORMAL_EXT = $843C;
4782   GL_TANGENT_ARRAY_TYPE_EXT = $843E;
4783   GL_TANGENT_ARRAY_STRIDE_EXT = $843F;
4784   GL_BINORMAL_ARRAY_TYPE_EXT = $8440;
4785   GL_BINORMAL_ARRAY_STRIDE_EXT = $8441;
4786   GL_TANGENT_ARRAY_POINTER_EXT = $8442;
4787   GL_BINORMAL_ARRAY_POINTER_EXT = $8443;
4788   GL_MAP1_TANGENT_EXT = $8444;
4789   GL_MAP2_TANGENT_EXT = $8445;
4790   GL_MAP1_BINORMAL_EXT = $8446;
4791   GL_MAP2_BINORMAL_EXT = $8447;
4792
4793   // GL_EXT_cull_vertex
4794   GL_CULL_VERTEX_EXT = $81AA;
4795   GL_CULL_VERTEX_EYE_POSITION_EXT = $81AB;
4796   GL_CULL_VERTEX_OBJECT_POSITION_EXT = $81AC;
4797
4798   // GL_EXT_draw_range_elements
4799   GL_MAX_ELEMENTS_VERTICES_EXT = $80E8;
4800   GL_MAX_ELEMENTS_INDICES_EXT = $80E9;
4801
4802   // GL_EXT_fog_coord
4803   GL_FOG_COORDINATE_SOURCE_EXT = $8450;
4804   GL_FOG_COORDINATE_EXT = $8451;
4805   GL_FRAGMENT_DEPTH_EXT = $8452;
4806   GL_CURRENT_FOG_COORDINATE_EXT = $8453;
4807   GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
4808   GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
4809   GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
4810   GL_FOG_COORDINATE_ARRAY_EXT = $8457;
4811
4812   // GL_EXT_framebuffer_object
4813   GL_FRAMEBUFFER_EXT = $8D40;
4814   GL_RENDERBUFFER_EXT = $8D41;
4815   GL_STENCIL_INDEX_EXT = $8D45;
4816   GL_STENCIL_INDEX1_EXT = $8D46;
4817   GL_STENCIL_INDEX4_EXT = $8D47;
4818   GL_STENCIL_INDEX8_EXT = $8D48;
4819   GL_STENCIL_INDEX16_EXT = $8D49;
4820   GL_RENDERBUFFER_WIDTH_EXT = $8D42;
4821   GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
4822   GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
4823   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
4824   GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
4825   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
4826   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
4827   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
4828   GL_COLOR_ATTACHMENT0_EXT = $8CE0;
4829   GL_COLOR_ATTACHMENT1_EXT = $8CE1;
4830   GL_COLOR_ATTACHMENT2_EXT = $8CE2;
4831   GL_COLOR_ATTACHMENT3_EXT = $8CE3;
4832   GL_COLOR_ATTACHMENT4_EXT = $8CE4;
4833   GL_COLOR_ATTACHMENT5_EXT = $8CE5;
4834   GL_COLOR_ATTACHMENT6_EXT = $8CE6;
4835   GL_COLOR_ATTACHMENT7_EXT = $8CE7;
4836   GL_COLOR_ATTACHMENT8_EXT = $8CE8;
4837   GL_COLOR_ATTACHMENT9_EXT = $8CE9;
4838   GL_COLOR_ATTACHMENT10_EXT = $8CEA;
4839   GL_COLOR_ATTACHMENT11_EXT = $8CEB;
4840   GL_COLOR_ATTACHMENT12_EXT = $8CEC;
4841   GL_COLOR_ATTACHMENT13_EXT = $8CED;
4842   GL_COLOR_ATTACHMENT14_EXT = $8CEE;
4843   GL_COLOR_ATTACHMENT15_EXT = $8CEF;
4844   GL_DEPTH_ATTACHMENT_EXT = $8D00;
4845   GL_STENCIL_ATTACHMENT_EXT = $8D20;
4846   GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
4847   GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
4848   GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
4849   GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
4850   GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
4851   GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
4852   GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
4853   GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
4854   GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
4855   GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
4856   GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
4857   GL_RENDERBUFFER_BINDING_EXT = $8CA7;
4858   GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
4859   GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
4860   GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
4861
4862   // GL_EXT_histogram
4863   GL_HISTOGRAM_EXT = $8024;
4864   GL_PROXY_HISTOGRAM_EXT = $8025;
4865   GL_HISTOGRAM_WIDTH_EXT = $8026;
4866   GL_HISTOGRAM_FORMAT_EXT = $8027;
4867   GL_HISTOGRAM_RED_SIZE_EXT = $8028;
4868   GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
4869   GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
4870   GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
4871   GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
4872   GL_HISTOGRAM_SINK_EXT = $802D;
4873   GL_MINMAX_EXT = $802E;
4874   GL_MINMAX_FORMAT_EXT = $802F;
4875   GL_MINMAX_SINK_EXT = $8030;
4876   GL_TABLE_TOO_LARGE_EXT = $8031;
4877
4878   // GL_EXT_index_array_formats
4879   GL_IUI_V2F_EXT = $81AD;
4880   GL_IUI_V3F_EXT = $81AE;
4881   GL_IUI_N3F_V2F_EXT = $81AF;
4882   GL_IUI_N3F_V3F_EXT = $81B0;
4883   GL_T2F_IUI_V2F_EXT = $81B1;
4884   GL_T2F_IUI_V3F_EXT = $81B2;
4885   GL_T2F_IUI_N3F_V2F_EXT = $81B3;
4886   GL_T2F_IUI_N3F_V3F_EXT = $81B4;
4887
4888   // GL_EXT_index_func
4889   GL_INDEX_TEST_EXT = $81B5;
4890   GL_INDEX_TEST_FUNC_EXT = $81B6;
4891   GL_INDEX_TEST_REF_EXT = $81B7;
4892
4893   // GL_EXT_index_material
4894   GL_INDEX_MATERIAL_EXT = $81B8;
4895   GL_INDEX_MATERIAL_PARAMETER_EXT = $81B9;
4896   GL_INDEX_MATERIAL_FACE_EXT = $81BA;
4897
4898   // GL_EXT_light_texture
4899   GL_FRAGMENT_MATERIAL_EXT = $8349;
4900   GL_FRAGMENT_NORMAL_EXT = $834A;
4901   GL_FRAGMENT_COLOR_EXT = $834C;
4902   GL_ATTENUATION_EXT = $834D;
4903   GL_SHADOW_ATTENUATION_EXT = $834E;
4904   GL_TEXTURE_APPLICATION_MODE_EXT = $834F;
4905   GL_TEXTURE_LIGHT_EXT = $8350;
4906   GL_TEXTURE_MATERIAL_FACE_EXT = $8351;
4907   GL_TEXTURE_MATERIAL_PARAMETER_EXT = $8352;
4908
4909   // GL_EXT_multisample
4910   GL_MULTISAMPLE_EXT = $809D;
4911   GL_SAMPLE_ALPHA_TO_MASK_EXT = $809E;
4912   GL_SAMPLE_ALPHA_TO_ONE_EXT = $809F;
4913   GL_SAMPLE_MASK_EXT = $80A0;
4914   GL_1PASS_EXT = $80A1;
4915   GL_2PASS_0_EXT = $80A2;
4916   GL_2PASS_1_EXT = $80A3;
4917   GL_4PASS_0_EXT = $80A4;
4918   GL_4PASS_1_EXT = $80A5;
4919   GL_4PASS_2_EXT = $80A6;
4920   GL_4PASS_3_EXT = $80A7;
4921   GL_SAMPLE_BUFFERS_EXT = $80A8;
4922   GL_SAMPLES_EXT = $80A9;
4923   GL_SAMPLE_MASK_VALUE_EXT = $80AA;
4924   GL_SAMPLE_MASK_INVERT_EXT = $80AB;
4925   GL_SAMPLE_PATTERN_EXT = $80AC;
4926   GL_MULTISAMPLE_BIT_EXT = $20000000;
4927
4928   // GL_EXT_packed_pixels
4929   GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
4930   GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
4931   GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
4932   GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
4933   GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
4934
4935   // GL_EXT_paletted_texture
4936   GL_COLOR_INDEX1_EXT = $80E2;
4937   GL_COLOR_INDEX2_EXT = $80E3;
4938   GL_COLOR_INDEX4_EXT = $80E4;
4939   GL_COLOR_INDEX8_EXT = $80E5;
4940   GL_COLOR_INDEX12_EXT = $80E6;
4941   GL_COLOR_INDEX16_EXT = $80E7;
4942   GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
4943
4944   // GL_EXT_pixel_transform
4945   GL_PIXEL_TRANSFORM_2D_EXT = $8330;
4946   GL_PIXEL_MAG_FILTER_EXT = $8331;
4947   GL_PIXEL_MIN_FILTER_EXT = $8332;
4948   GL_PIXEL_CUBIC_WEIGHT_EXT = $8333;
4949   GL_CUBIC_EXT = $8334;
4950   GL_AVERAGE_EXT = $8335;
4951   GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8336;
4952   GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = $8337;
4953   GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = $8338;
4954
4955   // GL_EXT_point_parameters
4956   GL_POINT_SIZE_MIN_EXT = $8126;
4957   GL_POINT_SIZE_MAX_EXT = $8127;
4958   GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
4959   GL_DISTANCE_ATTENUATION_EXT = $8129;
4960
4961   // GL_EXT_polygon_offset
4962   GL_POLYGON_OFFSET_EXT = $8037;
4963   GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
4964   GL_POLYGON_OFFSET_BIAS_EXT = $8039;
4965
4966   // GL_EXT_rescale_normal
4967   GL_RESCALE_NORMAL_EXT = $803A;
4968
4969   // GL_EXT_secondary_color
4970   GL_COLOR_SUM_EXT = $8458;
4971   GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
4972   GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
4973   GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
4974   GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
4975   GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
4976   GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
4977
4978   // GL_EXT_separate_specular_color
4979   GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
4980   GL_SINGLE_COLOR_EXT = $81F9;
4981   GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
4982
4983   // GL_EXT_shared_texture_palette
4984   GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
4985
4986   // GL_EXT_stencil_two_side
4987   GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
4988   GL_ACTIVE_STENCIL_FACE_EXT = $8911;
4989
4990   // GL_EXT_stencil_wrap
4991   GL_INCR_WRAP_EXT = $8507;
4992   GL_DECR_WRAP_EXT = $8508;
4993
4994   // GL_EXT_texture
4995   GL_ALPHA4_EXT = $803B;
4996   GL_ALPHA8_EXT = $803C;
4997   GL_ALPHA12_EXT = $803D;
4998   GL_ALPHA16_EXT = $803E;
4999   GL_LUMINANCE4_EXT = $803F;
5000   GL_LUMINANCE8_EXT = $8040;
5001   GL_LUMINANCE12_EXT = $8041;
5002   GL_LUMINANCE16_EXT = $8042;
5003   GL_LUMINANCE4_ALPHA4_EXT = $8043;
5004   GL_LUMINANCE6_ALPHA2_EXT = $8044;
5005   GL_LUMINANCE8_ALPHA8_EXT = $8045;
5006   GL_LUMINANCE12_ALPHA4_EXT = $8046;
5007   GL_LUMINANCE12_ALPHA12_EXT = $8047;
5008   GL_LUMINANCE16_ALPHA16_EXT = $8048;
5009   GL_INTENSITY_EXT = $8049;
5010   GL_INTENSITY4_EXT = $804A;
5011   GL_INTENSITY8_EXT = $804B;
5012   GL_INTENSITY12_EXT = $804C;
5013   GL_INTENSITY16_EXT = $804D;
5014   GL_RGB2_EXT = $804E;
5015   GL_RGB4_EXT = $804F;
5016   GL_RGB5_EXT = $8050;
5017   GL_RGB8_EXT = $8051;
5018   GL_RGB10_EXT = $8052;
5019   GL_RGB12_EXT = $8053;
5020   GL_RGB16_EXT = $8054;
5021   GL_RGBA2_EXT = $8055;
5022   GL_RGBA4_EXT = $8056;
5023   GL_RGB5_A1_EXT = $8057;
5024   GL_RGBA8_EXT = $8058;
5025   GL_RGB10_A2_EXT = $8059;
5026   GL_RGBA12_EXT = $805A;
5027   GL_RGBA16_EXT = $805B;
5028   GL_TEXTURE_RED_SIZE_EXT = $805C;
5029   GL_TEXTURE_GREEN_SIZE_EXT = $805D;
5030   GL_TEXTURE_BLUE_SIZE_EXT = $805E;
5031   GL_TEXTURE_ALPHA_SIZE_EXT = $805F;
5032   GL_TEXTURE_LUMINANCE_SIZE_EXT = $8060;
5033   GL_TEXTURE_INTENSITY_SIZE_EXT = $8061;
5034   GL_REPLACE_EXT = $8062;
5035   GL_PROXY_TEXTURE_1D_EXT = $8063;
5036   GL_PROXY_TEXTURE_2D_EXT = $8064;
5037   GL_TEXTURE_TOO_LARGE_EXT = $8065;
5038
5039   // GL_EXT_texture3D
5040   GL_PACK_SKIP_IMAGES_EXT = $806B;
5041   GL_PACK_IMAGE_HEIGHT_EXT = $806C;
5042   GL_UNPACK_SKIP_IMAGES_EXT = $806D;
5043   GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
5044   GL_TEXTURE_3D_EXT = $806F;
5045   GL_PROXY_TEXTURE_3D_EXT = $8070;
5046   GL_TEXTURE_DEPTH_EXT = $8071;
5047   GL_TEXTURE_WRAP_R_EXT = $8072;
5048   GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
5049
5050   // GL_EXT_texture_compression_s3tc
5051   GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
5052   GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
5053   GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
5054   GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
5055
5056   // GL_EXT_texture_cube_map
5057   GL_NORMAL_MAP_EXT = $8511;
5058   GL_REFLECTION_MAP_EXT = $8512;
5059   GL_TEXTURE_CUBE_MAP_EXT = $8513;
5060   GL_TEXTURE_BINDING_CUBE_MAP_EXT = $8514;
5061   GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = $8515;
5062   GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = $8516;
5063   GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = $8517;
5064   GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = $8518;
5065   GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = $8519;
5066   GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = $851A;
5067   GL_PROXY_TEXTURE_CUBE_MAP_EXT = $851B;
5068   GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = $851C;
5069
5070   // GL_EXT_texture_edge_clamp
5071   GL_CLAMP_TO_EDGE_EXT = $812F;
5072
5073   // GL_EXT_texture_env_combine
5074   GL_COMBINE_EXT = $8570;
5075   GL_COMBINE_RGB_EXT = $8571;
5076   GL_COMBINE_ALPHA_EXT = $8572;
5077   GL_RGB_SCALE_EXT = $8573;
5078   GL_ADD_SIGNED_EXT = $8574;
5079   GL_INTERPOLATE_EXT = $8575;
5080   GL_CONSTANT_EXT = $8576;
5081   GL_PRIMARY_COLOR_EXT = $8577;
5082   GL_PREVIOUS_EXT = $8578;
5083   GL_SOURCE0_RGB_EXT = $8580;
5084   GL_SOURCE1_RGB_EXT = $8581;
5085   GL_SOURCE2_RGB_EXT = $8582;
5086   GL_SOURCE0_ALPHA_EXT = $8588;
5087   GL_SOURCE1_ALPHA_EXT = $8589;
5088   GL_SOURCE2_ALPHA_EXT = $858A;
5089   GL_OPERAND0_RGB_EXT = $8590;
5090   GL_OPERAND1_RGB_EXT = $8591;
5091   GL_OPERAND2_RGB_EXT = $8592;
5092   GL_OPERAND0_ALPHA_EXT = $8598;
5093   GL_OPERAND1_ALPHA_EXT = $8599;
5094   GL_OPERAND2_ALPHA_EXT = $859A;
5095
5096   // GL_EXT_texture_env_dot3
5097   GL_DOT3_RGB_EXT = $8740;
5098   GL_DOT3_RGBA_EXT = $8741;
5099
5100   // GL_EXT_texture_filter_anisotropic
5101   GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
5102   GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
5103
5104   // GL_EXT_texture_lod_bias
5105   GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
5106   GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
5107   GL_TEXTURE_LOD_BIAS_EXT = $8501;
5108
5109   // GL_EXT_texture_object
5110   GL_TEXTURE_PRIORITY_EXT = $8066;
5111   GL_TEXTURE_RESIDENT_EXT = $8067;
5112   GL_TEXTURE_1D_BINDING_EXT = $8068;
5113   GL_TEXTURE_2D_BINDING_EXT = $8069;
5114   GL_TEXTURE_3D_BINDING_EXT = $806A;
5115
5116   // GL_EXT_texture_perturb_normal
5117   GL_PERTURB_EXT = $85AE;
5118   GL_TEXTURE_NORMAL_EXT = $85AF;
5119
5120   // GL_EXT_texture_rectangle
5121   GL_TEXTURE_RECTANGLE_EXT = $84F5;
5122   GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
5123   GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
5124   GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
5125
5126   // GL_EXT_vertex_array
5127   GL_VERTEX_ARRAY_EXT = $8074;
5128   GL_NORMAL_ARRAY_EXT = $8075;
5129   GL_COLOR_ARRAY_EXT = $8076;
5130   GL_INDEX_ARRAY_EXT = $8077;
5131   GL_TEXTURE_COORD_ARRAY_EXT = $8078;
5132   GL_EDGE_FLAG_ARRAY_EXT = $8079;
5133   GL_VERTEX_ARRAY_SIZE_EXT = $807A;
5134   GL_VERTEX_ARRAY_TYPE_EXT = $807B;
5135   GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
5136   GL_VERTEX_ARRAY_COUNT_EXT = $807D;
5137   GL_NORMAL_ARRAY_TYPE_EXT = $807E;
5138   GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
5139   GL_NORMAL_ARRAY_COUNT_EXT = $8080;
5140   GL_COLOR_ARRAY_SIZE_EXT = $8081;
5141   GL_COLOR_ARRAY_TYPE_EXT = $8082;
5142   GL_COLOR_ARRAY_STRIDE_EXT = $8083;
5143   GL_COLOR_ARRAY_COUNT_EXT = $8084;
5144   GL_INDEX_ARRAY_TYPE_EXT = $8085;
5145   GL_INDEX_ARRAY_STRIDE_EXT = $8086;
5146   GL_INDEX_ARRAY_COUNT_EXT = $8087;
5147   GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
5148   GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
5149   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
5150   GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
5151   GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
5152   GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
5153   GL_VERTEX_ARRAY_POINTER_EXT = $808E;
5154   GL_NORMAL_ARRAY_POINTER_EXT = $808F;
5155   GL_COLOR_ARRAY_POINTER_EXT = $8090;
5156   GL_INDEX_ARRAY_POINTER_EXT = $8091;
5157   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
5158   GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
5159
5160   // GL_EXT_vertex_shader
5161   GL_VERTEX_SHADER_EXT = $8780;
5162   GL_VERTEX_SHADER_BINDING_EXT = $8781;
5163   GL_OP_INDEX_EXT = $8782;
5164   GL_OP_NEGATE_EXT = $8783;
5165   GL_OP_DOT3_EXT = $8784;
5166   GL_OP_DOT4_EXT = $8785;
5167   GL_OP_MUL_EXT = $8786;
5168   GL_OP_ADD_EXT = $8787;
5169   GL_OP_MADD_EXT = $8788;
5170   GL_OP_FRAC_EXT = $8789;
5171   GL_OP_MAX_EXT = $878A;
5172   GL_OP_MIN_EXT = $878B;
5173   GL_OP_SET_GE_EXT = $878C;
5174   GL_OP_SET_LT_EXT = $878D;
5175   GL_OP_CLAMP_EXT = $878E;
5176   GL_OP_FLOOR_EXT = $878F;
5177   GL_OP_ROUND_EXT = $8790;
5178   GL_OP_EXP_BASE_2_EXT = $8791;
5179   GL_OP_LOG_BASE_2_EXT = $8792;
5180   GL_OP_POWER_EXT = $8793;
5181   GL_OP_RECIP_EXT = $8794;
5182   GL_OP_RECIP_SQRT_EXT = $8795;
5183   GL_OP_SUB_EXT = $8796;
5184   GL_OP_CROSS_PRODUCT_EXT = $8797;
5185   GL_OP_MULTIPLY_MATRIX_EXT = $8798;
5186   GL_OP_MOV_EXT = $8799;
5187   GL_OUTPUT_VERTEX_EXT = $879A;
5188   GL_OUTPUT_COLOR0_EXT = $879B;
5189   GL_OUTPUT_COLOR1_EXT = $879C;
5190   GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
5191   GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
5192   GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
5193   GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
5194   GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
5195   GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
5196   GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
5197   GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
5198   GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
5199   GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
5200   GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
5201   GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
5202   GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
5203   GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
5204   GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
5205   GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
5206   GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
5207   GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
5208   GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
5209   GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
5210   GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
5211   GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
5212   GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
5213   GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
5214   GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
5215   GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
5216   GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
5217   GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
5218   GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
5219   GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
5220   GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
5221   GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
5222   GL_OUTPUT_FOG_EXT = $87BD;
5223   GL_SCALAR_EXT = $87BE;
5224   GL_VECTOR_EXT = $87BF;
5225   GL_MATRIX_EXT = $87C0;
5226   GL_VARIANT_EXT = $87C1;
5227   GL_INVARIANT_EXT = $87C2;
5228   GL_LOCAL_CONSTANT_EXT = $87C3;
5229   GL_LOCAL_EXT = $87C4;
5230   GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
5231   GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
5232   GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
5233   GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
5234   GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
5235   GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
5236   GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
5237   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
5238   GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
5239   GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
5240   GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
5241   GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
5242   GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
5243   GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
5244   GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
5245   GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
5246   GL_X_EXT = $87D5;
5247   GL_Y_EXT = $87D6;
5248   GL_Z_EXT = $87D7;
5249   GL_W_EXT = $87D8;
5250   GL_NEGATIVE_X_EXT = $87D9;
5251   GL_NEGATIVE_Y_EXT = $87DA;
5252   GL_NEGATIVE_Z_EXT = $87DB;
5253   GL_NEGATIVE_W_EXT = $87DC;
5254   GL_ZERO_EXT = $87DD;
5255   GL_ONE_EXT = $87DE;
5256   GL_NEGATIVE_ONE_EXT = $87DF;
5257   GL_NORMALIZED_RANGE_EXT = $87E0;
5258   GL_FULL_RANGE_EXT = $87E1;
5259   GL_CURRENT_VERTEX_EXT = $87E2;
5260   GL_MVP_MATRIX_EXT = $87E3;
5261   GL_VARIANT_VALUE_EXT = $87E4;
5262   GL_VARIANT_DATATYPE_EXT = $87E5;
5263   GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
5264   GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
5265   GL_VARIANT_ARRAY_EXT = $87E8;
5266   GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
5267   GL_INVARIANT_VALUE_EXT = $87EA;
5268   GL_INVARIANT_DATATYPE_EXT = $87EB;
5269   GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
5270   GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
5271
5272   // GL_EXT_vertex_weighting
5273   GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
5274   GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
5275   GL_MODELVIEW0_MATRIX_EXT = $0BA6;
5276   GL_MODELVIEW1_MATRIX_EXT = $8506;
5277   GL_VERTEX_WEIGHTING_EXT = $8509;
5278   GL_MODELVIEW0_EXT = $1700;
5279   GL_MODELVIEW1_EXT = $850A;
5280   GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
5281   GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
5282   GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
5283   GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
5284   GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
5285   GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
5286
5287   // GL_EXT_depth_bounds_test
5288   GL_DEPTH_BOUNDS_TEST_EXT = $8890;
5289   GL_DEPTH_BOUNDS_EXT = $8891;
5290
5291   // GL_EXT_texture_mirror_clamp
5292   GL_MIRROR_CLAMP_EXT = $8742;
5293   GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
5294   GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
5295
5296   // GL_EXT_blend_equation_separate
5297   GL_BLEND_EQUATION_RGB_EXT = $8009;
5298   GL_BLEND_EQUATION_ALPHA_EXT = $883D;
5299
5300   // GL_EXT_pixel_buffer_object
5301   GL_PIXEL_PACK_BUFFER_EXT = $88EB;
5302   GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
5303   GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
5304   GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
5305
5306   // GL_EXT_stencil_clear_tag
5307   GL_STENCIL_TAG_BITS_EXT = $88F2;
5308   GL_STENCIL_CLEAR_TAG_VALUE_EXT = $88F3;
5309
5310   // GL_EXT_packed_depth_stencil
5311   GL_DEPTH_STENCIL_EXT = $84F9;
5312   GL_UNSIGNED_INT_24_8_EXT = $84FA;
5313   GL_DEPTH24_STENCIL8_EXT = $88F0;
5314   GL_TEXTURE_STENCIL_SIZE_EXT = $88F1;
5315
5316   // GL_EXT_texture_sRGB
5317   GL_SRGB_EXT = $8C40;
5318   GL_SRGB8_EXT = $8C41;
5319   GL_SRGB_ALPHA_EXT = $8C42;
5320   GL_SRGB8_ALPHA8_EXT = $8C43;
5321   GL_SLUMINANCE_ALPHA_EXT = $8C44;
5322   GL_SLUMINANCE8_ALPHA8_EXT = $8C45;
5323   GL_SLUMINANCE_EXT = $8C46;
5324   GL_SLUMINANCE8_EXT = $8C47;
5325   GL_COMPRESSED_SRGB_EXT = $8C48;
5326   GL_COMPRESSED_SRGB_ALPHA_EXT = $8C49;
5327   GL_COMPRESSED_SLUMINANCE_EXT = $8C4A;
5328   GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = $8C4B;
5329   GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = $8C4C;
5330   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = $8C4D;
5331   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = $8C4E;
5332   GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = $8C4F;
5333
5334   // GL_EXT_framebuffer_blit
5335   GL_READ_FRAMEBUFFER_EXT = $8CA8;
5336   GL_DRAW_FRAMEBUFFER_EXT = $8CA9;
5337   GL_READ_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT;
5338   GL_DRAW_FRAMEBUFFER_BINDING_EXT = $8CAA;
5339
5340   // GL_EXT_framebuffer_multisample
5341   GL_RENDERBUFFER_SAMPLES_EXT = $8CAB;
5342   GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = $8D56;
5343   GL_MAX_SAMPLES_EXT = $8D57;
5344
5345   // GL_EXT_timer_query
5346   GL_TIME_ELAPSED_EXT = $88BF;
5347
5348   // GL_EXT_bindable_uniform
5349   GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = $8DE2;
5350   GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = $8DE3;
5351   GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = $8DE4;
5352   GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = $8DED;
5353   GL_UNIFORM_BUFFER_EXT = $8DEE;
5354   GL_UNIFORM_BUFFER_BINDING_EXT = $8DEF;
5355
5356   // GL_EXT_framebuffer_sRGB
5357   GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
5358   WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20A9;
5359   GL_FRAMEBUFFER_SRGB_EXT = $8DB9;
5360   GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = $8DBA;
5361
5362   // GL_EXT_geometry_shader4
5363   GL_GEOMETRY_SHADER_EXT = $8DD9;
5364   GL_GEOMETRY_VERTICES_OUT_EXT = $8DDA;
5365   GL_GEOMETRY_INPUT_TYPE_EXT = $8DDB;
5366   GL_GEOMETRY_OUTPUT_TYPE_EXT = $8DDC;
5367   GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = $8C29;
5368   GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = $8DDD;
5369   GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = $8DDE;
5370   GL_MAX_VARYING_COMPONENTS_EXT = $8B4B;
5371   GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = $8DDF;
5372   GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = $8DE0;
5373   GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = $8DE1;
5374   GL_LINES_ADJACENCY_EXT = $A;
5375   GL_LINE_STRIP_ADJACENCY_EXT = $B;
5376   GL_TRIANGLES_ADJACENCY_EXT = $C;
5377   GL_TRIANGLE_STRIP_ADJACENCY_EXT = $D;
5378   GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = $8DA8;
5379   GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = $8DA9;
5380   GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = $8DA7;
5381   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = $8CD4;
5382   GL_PROGRAM_POINT_SIZE_EXT = $8642;
5383
5384   // GL_EXT_gpu_shader4
5385   GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = $88FD;
5386   GL_SAMPLER_1D_ARRAY_EXT = $8DC0;
5387   GL_SAMPLER_2D_ARRAY_EXT = $8DC1;
5388   GL_SAMPLER_BUFFER_EXT = $8DC2;
5389   GL_SAMPLER_1D_ARRAY_SHADOW_EXT = $8DC3;
5390   GL_SAMPLER_2D_ARRAY_SHADOW_EXT = $8DC4;
5391   GL_SAMPLER_CUBE_SHADOW_EXT = $8DC5;
5392   GL_UNSIGNED_INT_VEC2_EXT = $8DC6;
5393   GL_UNSIGNED_INT_VEC3_EXT = $8DC7;
5394   GL_UNSIGNED_INT_VEC4_EXT = $8DC8;
5395   GL_INT_SAMPLER_1D_EXT = $8DC9;
5396   GL_INT_SAMPLER_2D_EXT = $8DCA;
5397   GL_INT_SAMPLER_3D_EXT = $8DCB;
5398   GL_INT_SAMPLER_CUBE_EXT = $8DCC;
5399   GL_INT_SAMPLER_2D_RECT_EXT = $8DCD;
5400   GL_INT_SAMPLER_1D_ARRAY_EXT = $8DCE;
5401   GL_INT_SAMPLER_2D_ARRAY_EXT = $8DCF;
5402   GL_INT_SAMPLER_BUFFER_EXT = $8DD0;
5403   GL_UNSIGNED_INT_SAMPLER_1D_EXT = $8DD1;
5404   GL_UNSIGNED_INT_SAMPLER_2D_EXT = $8DD2;
5405   GL_UNSIGNED_INT_SAMPLER_3D_EXT = $8DD3;
5406   GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = $8DD4;
5407   GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = $8DD5;
5408   GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = $8DD6;
5409   GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = $8DD7;
5410   GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = $8DD8;
5411   GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = $8904;
5412   GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = $8905;
5413
5414   // GL_EXT_packed_float
5415   GL_R11F_G11F_B10F_EXT = $8C3A;
5416   GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = $8C3B;
5417   RGBA_SIGNED_COMPONENTS_EXT = $8C3C;
5418   WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = $20A8;
5419   GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
5420   GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
5421
5422   // GL_EXT_texture_array
5423   GL_TEXTURE_1D_ARRAY_EXT = $8C18;
5424   GL_TEXTURE_2D_ARRAY_EXT = $8C1A;
5425   GL_PROXY_TEXTURE_2D_ARRAY_EXT = $8C1B;
5426   GL_PROXY_TEXTURE_1D_ARRAY_EXT = $8C19;
5427   GL_TEXTURE_BINDING_1D_ARRAY_EXT = $8C1C;
5428   GL_TEXTURE_BINDING_2D_ARRAY_EXT = $8C1D;
5429   GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = $88FF;
5430   GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = $884E;
5431
5432   // GL_EXT_texture_buffer_object
5433   GL_TEXTURE_BUFFER_EXT = $8C2A;
5434   GL_MAX_TEXTURE_BUFFER_SIZE_EXT = $8C2B;
5435   GL_TEXTURE_BINDING_BUFFER_EXT = $8C2C;
5436   GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = $8C2D;
5437   GL_TEXTURE_BUFFER_FORMAT_EXT = $8C2E;
5438
5439   // GL_EXT_texture_compression_latc
5440   GL_COMPRESSED_LUMINANCE_LATC1_EXT = $8C70;
5441   GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = $8C71;
5442   GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = $8C72;
5443   GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = $8C73;
5444
5445   // GL_EXT_texture_compression_rgtc
5446   GL_COMPRESSED_RED_RGTC1_EXT = $8DBB;
5447   GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = $8DBC;
5448   GL_COMPRESSED_RED_GREEN_RGTC2_EXT = $8DBD;
5449   GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = $8DBE;
5450
5451   // GL_EXT_texture_integer
5452   GL_RGBA_INTEGER_MODE_EXT = $8D9E;
5453   GL_RGBA32UI_EXT = $8D70;
5454   GL_RGB32UI_EXT = $8D71;
5455   GL_ALPHA32UI_EXT = $8D72;
5456   GL_INTENSITY32UI_EXT = $8D73;
5457   GL_LUMINANCE32UI_EXT = $8D74;
5458   GL_LUMINANCE_ALPHA32UI_EXT = $8D75;
5459   GL_RGBA16UI_EXT = $8D76;
5460   GL_RGB16UI_EXT = $8D77;
5461   GL_ALPHA16UI_EXT = $8D78;
5462   GL_INTENSITY16UI_EXT = $8D79;
5463   GL_LUMINANCE16UI_EXT = $8D7A;
5464   GL_LUMINANCE_ALPHA16UI_EXT = $8D7B;
5465   GL_RGBA8UI_EXT = $8D7C;
5466   GL_RGB8UI_EXT = $8D7D;
5467   GL_ALPHA8UI_EXT = $8D7E;
5468   GL_INTENSITY8UI_EXT = $8D7F;
5469   GL_LUMINANCE8UI_EXT = $8D80;
5470   GL_LUMINANCE_ALPHA8UI_EXT = $8D81;
5471   GL_RGBA32I_EXT = $8D82;
5472   GL_RGB32I_EXT = $8D83;
5473   GL_ALPHA32I_EXT = $8D84;
5474   GL_INTENSITY32I_EXT = $8D85;
5475   GL_LUMINANCE32I_EXT = $8D86;
5476   GL_LUMINANCE_ALPHA32I_EXT = $8D87;
5477   GL_RGBA16I_EXT = $8D88;
5478   GL_RGB16I_EXT = $8D89;
5479   GL_ALPHA16I_EXT = $8D8A;
5480   GL_INTENSITY16I_EXT = $8D8B;
5481   GL_LUMINANCE16I_EXT = $8D8C;
5482   GL_LUMINANCE_ALPHA16I_EXT = $8D8D;
5483   GL_RGBA8I_EXT = $8D8E;
5484   GL_RGB8I_EXT = $8D8F;
5485   GL_ALPHA8I_EXT = $8D90;
5486   GL_INTENSITY8I_EXT = $8D91;
5487   GL_LUMINANCE8I_EXT = $8D92;
5488   GL_LUMINANCE_ALPHA8I_EXT = $8D93;
5489   GL_RED_INTEGER_EXT = $8D94;
5490   GL_GREEN_INTEGER_EXT = $8D95;
5491   GL_BLUE_INTEGER_EXT = $8D96;
5492   GL_ALPHA_INTEGER_EXT = $8D97;
5493   GL_RGB_INTEGER_EXT = $8D98;
5494   GL_RGBA_INTEGER_EXT = $8D99;
5495   GL_BGR_INTEGER_EXT = $8D9A;
5496   GL_BGRA_INTEGER_EXT = $8D9B;
5497   GL_LUMINANCE_INTEGER_EXT = $8D9C;
5498   GL_LUMINANCE_ALPHA_INTEGER_EXT = $8D9D;
5499
5500   // GL_EXT_texture_shared_exponent
5501   GL_RGB9_E5_EXT = $8C3D;
5502   GL_UNSIGNED_INT_5_9_9_9_REV_EXT = $8C3E;
5503   GL_TEXTURE_SHARED_SIZE_EXT = $8C3F;
5504
5505   // GL_EXT_transform_feedback
5506   GL_TRANSFORM_FEEDBACK_BUFFER_EXT = $8C8E;
5507   GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = $8C84;
5508   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = $8C85;
5509   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = $8C8F;
5510   GL_INTERLEAVED_ATTRIBS_EXT = $8C8C;
5511   GL_SEPARATE_ATTRIBS_EXT = $8C8D;
5512   GL_PRIMITIVES_GENERATED_EXT = $8C87;
5513   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = $8C88;
5514   GL_RASTERIZER_DISCARD_EXT = $8C89;
5515   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = $8C8A;
5516   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = $8C8B;
5517   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = $8C80;
5518   GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = $8C83;
5519   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = $8C7F;
5520   GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = $8C76;
5521
5522   // GL_EXT_direct_state_access
5523   GL_PROGRAM_MATRIX_EXT = $8E2D;
5524   GL_TRANSPOSE_PROGRAM_MATRIX_EXT = $8E2E;
5525   GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = $8E2F;
5526
5527   // GL_EXT_texture_swizzle
5528   GL_TEXTURE_SWIZZLE_R_EXT = $8E42;
5529   GL_TEXTURE_SWIZZLE_G_EXT = $8E43;
5530   GL_TEXTURE_SWIZZLE_B_EXT = $8E44;
5531   GL_TEXTURE_SWIZZLE_A_EXT = $8E45;
5532   GL_TEXTURE_SWIZZLE_RGBA_EXT = $8E46;
5533
5534   // GL_EXT_provoking_vertex
5535   GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = $8E4C;
5536   GL_FIRST_VERTEX_CONVENTION_EXT = $8E4D;
5537   GL_LAST_VERTEX_CONVENTION_EXT = $8E4E;
5538   GL_PROVOKING_VERTEX_EXT = $8E4F;
5539
5540   // GL_EXT_texture_snorm
5541   GL_ALPHA_SNORM = $9010;
5542   GL_LUMINANCE_SNORM = $9011;
5543   GL_LUMINANCE_ALPHA_SNORM = $9012;
5544   GL_INTENSITY_SNORM = $9013;
5545   GL_ALPHA8_SNORM = $9014;
5546   GL_LUMINANCE8_SNORM = $9015;
5547   GL_LUMINANCE8_ALPHA8_SNORM = $9016;
5548   GL_INTENSITY8_SNORM = $9017;
5549   GL_ALPHA16_SNORM = $9018;
5550   GL_LUMINANCE16_SNORM = $9019;
5551   GL_LUMINANCE16_ALPHA16_SNORM = $901A;
5552   GL_INTENSITY16_SNORM = $901B;
5553   { reuse GL_RED_SNORM }
5554   { reuse GL_RG_SNORM }
5555   { reuse GL_RGB_SNORM }
5556   { reuse GL_RGBA_SNORM }
5557   { reuse GL_R8_SNORM }
5558   { reuse GL_RG8_SNORM }
5559   { reuse GL_RGB8_SNORM }
5560   { reuse GL_RGBA8_SNORM }
5561   { reuse GL_R16_SNORM }
5562   { reuse GL_RG16_SNORM }
5563   { reuse GL_RGB16_SNORM }
5564   { reuse GL_RGBA16_SNORM }
5565   { reuse GL_SIGNED_NORMALIZED }
5566
5567   // GL_EXT_separate_shader_objects
5568   GL_ACTIVE_PROGRAM_EXT = $8B8D;
5569
5570   // GL_EXT_shader_image_load_store
5571   GL_MAX_IMAGE_UNITS_EXT = $8F38;
5572   GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = $8F39;
5573   GL_IMAGE_BINDING_NAME_EXT = $8F3A;
5574   GL_IMAGE_BINDING_LEVEL_EXT = $8F3B;
5575   GL_IMAGE_BINDING_LAYERED_EXT = $8F3C;
5576   GL_IMAGE_BINDING_LAYER_EXT = $8F3D;
5577   GL_IMAGE_BINDING_ACCESS_EXT = $8F3E;
5578   GL_IMAGE_1D_EXT = $904C;
5579   GL_IMAGE_2D_EXT = $904D;
5580   GL_IMAGE_3D_EXT = $904E;
5581   GL_IMAGE_2D_RECT_EXT = $904F;
5582   GL_IMAGE_CUBE_EXT = $9050;
5583   GL_IMAGE_BUFFER_EXT = $9051;
5584   GL_IMAGE_1D_ARRAY_EXT = $9052;
5585   GL_IMAGE_2D_ARRAY_EXT = $9053;
5586   GL_IMAGE_CUBE_MAP_ARRAY_EXT = $9054;
5587   GL_IMAGE_2D_MULTISAMPLE_EXT = $9055;
5588   GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9056;
5589   GL_INT_IMAGE_1D_EXT = $9057;
5590   GL_INT_IMAGE_2D_EXT = $9058;
5591   GL_INT_IMAGE_3D_EXT = $9059;
5592   GL_INT_IMAGE_2D_RECT_EXT = $905A;
5593   GL_INT_IMAGE_CUBE_EXT = $905B;
5594   GL_INT_IMAGE_BUFFER_EXT = $905C;
5595   GL_INT_IMAGE_1D_ARRAY_EXT = $905D;
5596   GL_INT_IMAGE_2D_ARRAY_EXT = $905E;
5597   GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $905F;
5598   GL_INT_IMAGE_2D_MULTISAMPLE_EXT = $9060;
5599   GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $9061;
5600   GL_UNSIGNED_INT_IMAGE_1D_EXT = $9062;
5601   GL_UNSIGNED_INT_IMAGE_2D_EXT = $9063;
5602   GL_UNSIGNED_INT_IMAGE_3D_EXT = $9064;
5603   GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = $9065;
5604   GL_UNSIGNED_INT_IMAGE_CUBE_EXT = $9066;
5605   GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = $9067;
5606   GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = $9068;
5607   GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = $9069;
5608   GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = $906A;
5609   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = $906B;
5610   GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = $906C;
5611   GL_MAX_IMAGE_SAMPLES_EXT = $906D;
5612   GL_IMAGE_BINDING_FORMAT_EXT = $906E;
5613   GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = $00000001;
5614   GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = $00000002;
5615   GL_UNIFORM_BARRIER_BIT_EXT = $00000004;
5616   GL_TEXTURE_FETCH_BARRIER_BIT_EXT = $00000008;
5617   GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = $00000020;
5618   GL_COMMAND_BARRIER_BIT_EXT = $00000040;
5619   GL_PIXEL_BUFFER_BARRIER_BIT_EXT = $00000080;
5620   GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = $00000100;
5621   GL_BUFFER_UPDATE_BARRIER_BIT_EXT = $00000200;
5622   GL_FRAMEBUFFER_BARRIER_BIT_EXT = $00000400;
5623   GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = $00000800;
5624   GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = $00001000;
5625   GL_ALL_BARRIER_BITS_EXT = $FFFFFFFF;
5626
5627   // GL_EXT_vertex_attrib_64bit
5628   { reuse GL_DOUBLE }
5629   GL_DOUBLE_VEC2_EXT = $8FFC;
5630   GL_DOUBLE_VEC3_EXT = $8FFD;
5631   GL_DOUBLE_VEC4_EXT = $8FFE;
5632   GL_DOUBLE_MAT2_EXT = $8F46;
5633   GL_DOUBLE_MAT3_EXT = $8F47;
5634   GL_DOUBLE_MAT4_EXT = $8F48;
5635   GL_DOUBLE_MAT2x3_EXT = $8F49;
5636   GL_DOUBLE_MAT2x4_EXT = $8F4A;
5637   GL_DOUBLE_MAT3x2_EXT = $8F4B;
5638   GL_DOUBLE_MAT3x4_EXT = $8F4C;
5639   GL_DOUBLE_MAT4x2_EXT = $8F4D;
5640   GL_DOUBLE_MAT4x3_EXT = $8F4E;
5641
5642   // GL_EXT_texture_sRGB_decode
5643   GL_TEXTURE_SRGB_DECODE_EXT = $8A48;
5644   GL_DECODE_EXT = $8A49;
5645   GL_SKIP_DECODE_EXT = $8A4A;
5646
5647   // GL_NV_texture_multisample
5648   GL_TEXTURE_COVERAGE_SAMPLES_NV    = $9045;
5649   GL_TEXTURE_COLOR_SAMPLES_NV       = $9046;
5650
5651   // GL_AMD_blend_minmax_factor
5652   GL_FACTOR_MIN_AMD                 = $901C;
5653   GL_FACTOR_MAX_AMD                 = $901D;
5654
5655   // GL_AMD_sample_positions
5656   GL_SUBSAMPLE_DISTANCE_AMD         = $883F;
5657
5658   // GL_EXT_x11_sync_object
5659   GL_SYNC_X11_FENCE_EXT             = $90E1;
5660
5661   // GL_EXT_framebuffer_multisample_blit_scaled
5662   GL_SCALED_RESOLVE_FASTEST_EXT     = $90BA;
5663   GL_SCALED_RESOLVE_NICEST_EXT      = $90BB;
5664
5665   // (4.3) GL_NV_path_rendering
5666         GL_PATH_FORMAT_SVG_NV            = $9070;
5667         GL_PATH_FORMAT_PS_NV             = $9071;
5668         GL_STANDARD_FONT_NAME_NV         = $9072;
5669         GL_SYSTEM_FONT_NAME_NV           = $9073;
5670         GL_FILE_NAME_NV                  = $9074;
5671         GL_PATH_STROKE_WIDTH_NV          = $9075;
5672         GL_PATH_END_CAPS_NV              = $9076;
5673         GL_PATH_INITIAL_END_CAP_NV       = $9077;
5674         GL_PATH_TERMINAL_END_CAP_NV      = $9078;
5675         GL_PATH_JOIN_STYLE_NV            = $9079;
5676         GL_PATH_MITER_LIMIT_NV           = $907A;
5677         GL_PATH_DASH_CAPS_NV             = $907B;
5678         GL_PATH_INITIAL_DASH_CAP_NV      = $907C;
5679         GL_PATH_TERMINAL_DASH_CAP_NV     = $907D;
5680         GL_PATH_DASH_OFFSET_NV           = $907E;
5681         GL_PATH_CLIENT_LENGTH_NV         = $907F;
5682         GL_PATH_FILL_MODE_NV             = $9080;
5683         GL_PATH_FILL_MASK_NV             = $9081;
5684         GL_PATH_FILL_COVER_MODE_NV       = $9082;
5685         GL_PATH_STROKE_COVER_MODE_NV     = $9083;
5686         GL_PATH_STROKE_MASK_NV           = $9084;
5687         GL_PATH_SAMPLE_QUALITY_NV        = $9085;
5688         GL_PATH_STROKE_BOUND_NV          = $9086;
5689         GL_PATH_STROKE_OVERSAMPLE_COUNT_NV= $9087;
5690         GL_COUNT_UP_NV                   = $9088;
5691         GL_COUNT_DOWN_NV                 = $9089;
5692         GL_PATH_OBJECT_BOUNDING_BOX_NV   = $908A;
5693         GL_CONVEX_HULL_NV                = $908B;
5694         GL_MULTI_HULLS_NV                = $908C;
5695         GL_BOUNDING_BOX_NV               = $908D;
5696         GL_TRANSLATE_X_NV                = $908E;
5697         GL_TRANSLATE_Y_NV                = $908F;
5698         GL_TRANSLATE_2D_NV               = $9090;
5699         GL_TRANSLATE_3D_NV               = $9091;
5700         GL_AFFINE_2D_NV                  = $9092;
5701         GL_PROJECTIVE_2D_NV              = $9093;
5702         GL_AFFINE_3D_NV                  = $9094;
5703         GL_PROJECTIVE_3D_NV              = $9095;
5704         GL_TRANSPOSE_AFFINE_2D_NV        = $9096;
5705         GL_TRANSPOSE_PROJECTIVE_2D_NV    = $9097;
5706         GL_TRANSPOSE_AFFINE_3D_NV        = $9098;
5707         GL_TRANSPOSE_PROJECTIVE_3D_NV    = $9099;
5708         GL_UTF8_NV                       = $909A;
5709         GL_UTF16_NV                      = $909B;
5710         GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV= $909C;
5711         GL_PATH_COMMAND_COUNT_NV         = $909D;
5712         GL_PATH_COORD_COUNT_NV           = $909E;
5713   GL_PATH_DASH_ARRAY_COUNT_NV      = $909F;
5714   GL_PATH_COMPUTED_LENGTH_NV       = $90A0;
5715   GL_PATH_FILL_BOUNDING_BOX_NV     = $90A1;
5716   GL_PATH_STROKE_BOUNDING_BOX_NV   = $90A2;
5717   GL_SQUARE_NV                     = $90A3;
5718   GL_ROUND_NV                      = $90A4;
5719   GL_TRIANGULAR_NV                 = $90A5;
5720   GL_BEVEL_NV                      = $90A6;
5721   GL_MITER_REVERT_NV               = $90A7;
5722   GL_MITER_TRUNCATE_NV             = $90A8;
5723   GL_SKIP_MISSING_GLYPH_NV         = $90A9;
5724   GL_USE_MISSING_GLYPH_NV          = $90AA;
5725   GL_PATH_ERROR_POSITION_NV        = $90AB;
5726   GL_PATH_FOG_GEN_MODE_NV          = $90AC;
5727   GL_ACCUM_ADJACENT_PAIRS_NV       = $90AD;
5728   GL_ADJACENT_PAIRS_NV             = $90AE;
5729   GL_FIRST_TO_REST_NV              = $90AF;
5730   GL_PATH_GEN_MODE_NV              = $90B0;
5731   GL_PATH_GEN_COEFF_NV             = $90B1;
5732   GL_PATH_GEN_COLOR_FORMAT_NV      = $90B2;
5733   GL_PATH_GEN_COMPONENTS_NV        = $90B3;
5734   GL_PATH_STENCIL_FUNC_NV          = $90B7;
5735   GL_PATH_STENCIL_REF_NV           = $90B8;
5736   GL_PATH_STENCIL_VALUE_MASK_NV    = $90B9;
5737   GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV= $90BD;
5738   GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV= $90BE;
5739   GL_PATH_COVER_DEPTH_FUNC_NV      = $90BF;
5740   GL_PATH_DASH_OFFSET_RESET_NV     = $90B4;
5741   GL_MOVE_TO_RESETS_NV             = $90B5;
5742   GL_MOVE_TO_CONTINUES_NV          = $90B6;
5743   GL_CLOSE_PATH_NV                 = $00;
5744   GL_MOVE_TO_NV                    = $02;
5745   GL_RELATIVE_MOVE_TO_NV           = $03;
5746   GL_LINE_TO_NV                    = $04;
5747   GL_RELATIVE_LINE_TO_NV           = $05;
5748   GL_HORIZONTAL_LINE_TO_NV         = $06;
5749   GL_RELATIVE_HORIZONTAL_LINE_TO_NV= $07;
5750   GL_VERTICAL_LINE_TO_NV           = $08;
5751   GL_RELATIVE_VERTICAL_LINE_TO_NV  = $09;
5752   GL_QUADRATIC_CURVE_TO_NV         = $0A;
5753   GL_RELATIVE_QUADRATIC_CURVE_TO_NV= $0B;
5754   GL_CUBIC_CURVE_TO_NV             = $0C;
5755   GL_RELATIVE_CUBIC_CURVE_TO_NV    = $0D;
5756   GL_SMOOTH_QUADRATIC_CURVE_TO_NV  = $0E;
5757   GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV= $0F;
5758   GL_SMOOTH_CUBIC_CURVE_TO_NV      = $10;
5759   GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV= $11;
5760   GL_SMALL_CCW_ARC_TO_NV           = $12;
5761   GL_RELATIVE_SMALL_CCW_ARC_TO_NV  = $13;
5762   GL_SMALL_CW_ARC_TO_NV            = $14;
5763   GL_RELATIVE_SMALL_CW_ARC_TO_NV   = $15;
5764   GL_LARGE_CCW_ARC_TO_NV           = $16;
5765   GL_RELATIVE_LARGE_CCW_ARC_TO_NV  = $17;
5766   GL_LARGE_CW_ARC_TO_NV            = $18;
5767   GL_RELATIVE_LARGE_CW_ARC_TO_NV   = $19;
5768   GL_RESTART_PATH_NV               = $F0;
5769   GL_DUP_FIRST_CUBIC_CURVE_TO_NV   = $F2;
5770   GL_DUP_LAST_CUBIC_CURVE_TO_NV    = $F4;
5771   GL_RECT_NV                       = $F6;
5772   GL_CIRCULAR_CCW_ARC_TO_NV        = $F8;
5773   GL_CIRCULAR_CW_ARC_TO_NV         = $FA;
5774   GL_CIRCULAR_TANGENT_ARC_TO_NV    = $FC;
5775   GL_ARC_TO_NV                     = $FE;
5776   GL_RELATIVE_ARC_TO_NV            = $FF;
5777   GL_BOLD_BIT_NV                   = $01;
5778   GL_ITALIC_BIT_NV                 = $02;
5779   GL_GLYPH_WIDTH_BIT_NV            = $01;
5780   GL_GLYPH_HEIGHT_BIT_NV           = $02;
5781   GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV= $04;
5782   GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV= $08;
5783   GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV= $10;
5784   GL_GLYPH_VERTICAL_BEARING_X_BIT_NV= $20;
5785   GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV= $40;
5786   GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV= $80;
5787   GL_GLYPH_HAS_KERNING_NV          = $100;
5788   GL_FONT_X_MIN_BOUNDS_NV          = $00010000;
5789   GL_FONT_Y_MIN_BOUNDS_NV          = $00020000;
5790   GL_FONT_X_MAX_BOUNDS_NV          = $00040000;
5791   GL_FONT_Y_MAX_BOUNDS_NV          = $00080000;
5792   GL_FONT_UNITS_PER_EM_NV          = $00100000;
5793   GL_FONT_ASCENDER_NV              = $00200000;
5794   GL_FONT_DESCENDER_NV             = $00400000;
5795   GL_FONT_HEIGHT_NV                = $00800000;
5796   GL_FONT_MAX_ADVANCE_WIDTH_NV     = $01000000;
5797   GL_FONT_MAX_ADVANCE_HEIGHT_NV    = $02000000;
5798   GL_FONT_UNDERLINE_POSITION_NV    = $04000000;
5799   GL_FONT_UNDERLINE_THICKNESS_NV   = $08000000;
5800   GL_FONT_HAS_KERNING_NV           = $10000000;
5801
5802   // (4.3) GL_AMD_pinned_memory
5803   GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD= $9160;
5804
5805   // (4.3) GL_AMD_stencil_operation_extended
5806   GL_SET_AMD                       = $874A;
5807   GL_REPLACE_VALUE_AMD             = $874B;
5808   GL_STENCIL_OP_VALUE_AMD          = $874C;
5809   GL_STENCIL_BACK_OP_VALUE_AMD     = $874D;
5810
5811   // (4.3) GL_AMD_vertex_shader_viewport_index
5812
5813   // (4.3) GL_AMD_vertex_shader_layer
5814
5815   // (4.3) GL_NV_bindless_texture
5816
5817   // (4.3) GL_NV_shader_atomic_float
5818
5819   // (4.3) GL_AMD_query_buffer_object
5820   GL_QUERY_BUFFER_AMD              = $9192;
5821   GL_QUERY_BUFFER_BINDING_AMD      = $9193;
5822   GL_QUERY_RESULT_NO_WAIT_AMD      = $9194;
5823
5824   // GL_FfdMaskSGIX
5825   GL_TEXTURE_DEFORMATION_BIT_SGIX = $00000001;
5826   GL_GEOMETRY_DEFORMATION_BIT_SGIX = $00000002;
5827
5828   // GL_HP_convolution_border_modes
5829   GL_IGNORE_BORDER_HP = $8150;
5830   GL_CONSTANT_BORDER_HP = $8151;
5831   GL_REPLICATE_BORDER_HP = $8153;
5832   GL_CONVOLUTION_BORDER_COLOR_HP = $8154;
5833
5834   // GL_HP_image_transform
5835   GL_IMAGE_SCALE_X_HP = $8155;
5836   GL_IMAGE_SCALE_Y_HP = $8156;
5837   GL_IMAGE_TRANSLATE_X_HP = $8157;
5838   GL_IMAGE_TRANSLATE_Y_HP = $8158;
5839   GL_IMAGE_ROTATE_ANGLE_HP = $8159;
5840   GL_IMAGE_ROTATE_ORIGIN_X_HP = $815A;
5841   GL_IMAGE_ROTATE_ORIGIN_Y_HP = $815B;
5842   GL_IMAGE_MAG_FILTER_HP = $815C;
5843   GL_IMAGE_MIN_FILTER_HP = $815D;
5844   GL_IMAGE_CUBIC_WEIGHT_HP = $815E;
5845   GL_CUBIC_HP = $815F;
5846   GL_AVERAGE_HP = $8160;
5847   GL_IMAGE_TRANSFORM_2D_HP = $8161;
5848   GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8162;
5849   GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = $8163;
5850
5851   // GL_HP_occlusion_test
5852   GL_OCCLUSION_TEST_HP = $8165;
5853   GL_OCCLUSION_TEST_RESULT_HP = $8166;
5854
5855   // GL_HP_texture_lighting
5856   GL_TEXTURE_LIGHTING_MODE_HP = $8167;
5857   GL_TEXTURE_POST_SPECULAR_HP = $8168;
5858   GL_TEXTURE_PRE_SPECULAR_HP = $8169;
5859
5860   // GL_IBM_cull_vertex
5861   GL_CULL_VERTEX_IBM = 103050;
5862
5863   // GL_IBM_rasterpos_clip
5864   GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
5865
5866   // GL_IBM_texture_mirrored_repeat
5867   GL_MIRRORED_REPEAT_IBM = $8370;
5868
5869   // GL_IBM_vertex_array_lists
5870   GL_VERTEX_ARRAY_LIST_IBM = 103070;
5871   GL_NORMAL_ARRAY_LIST_IBM = 103071;
5872   GL_COLOR_ARRAY_LIST_IBM = 103072;
5873   GL_INDEX_ARRAY_LIST_IBM = 103073;
5874   GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074;
5875   GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075;
5876   GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076;
5877   GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077;
5878   GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080;
5879   GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081;
5880   GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082;
5881   GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083;
5882   GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084;
5883   GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085;
5884   GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086;
5885   GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087;
5886
5887   // GL_INGR_color_clamp
5888   GL_RED_MIN_CLAMP_INGR = $8560;
5889   GL_GREEN_MIN_CLAMP_INGR = $8561;
5890   GL_BLUE_MIN_CLAMP_INGR = $8562;
5891   GL_ALPHA_MIN_CLAMP_INGR = $8563;
5892   GL_RED_MAX_CLAMP_INGR = $8564;
5893   GL_GREEN_MAX_CLAMP_INGR = $8565;
5894   GL_BLUE_MAX_CLAMP_INGR = $8566;
5895   GL_ALPHA_MAX_CLAMP_INGR = $8567;
5896
5897   // GL_INGR_interlace_read
5898   GL_INTERLACE_READ_INGR = $8568;
5899
5900   // GL_INTEL_parallel_arrays
5901   GL_PARALLEL_ARRAYS_INTEL = $83F4;
5902   GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = $83F5;
5903   GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = $83F6;
5904   GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = $83F7;
5905   GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = $83F8;
5906
5907   // GL_NV_copy_depth_to_color
5908   GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
5909   GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
5910
5911   // GL_NV_depth_clamp
5912   GL_DEPTH_CLAMP_NV = $864F;
5913
5914   // GL_NV_evaluators
5915   GL_EVAL_2D_NV = $86C0;
5916   GL_EVAL_TRIANGULAR_2D_NV = $86C1;
5917   GL_MAP_TESSELLATION_NV = $86C2;
5918   GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
5919   GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
5920   GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
5921   GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
5922   GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
5923   GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
5924   GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
5925   GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
5926   GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
5927   GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
5928   GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
5929   GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
5930   GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
5931   GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
5932   GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
5933   GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
5934   GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
5935   GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
5936   GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
5937   GL_MAX_MAP_TESSELLATION_NV = $86D6;
5938   GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
5939
5940   // GL_NV_fence
5941   GL_ALL_COMPLETED_NV = $84F2;
5942   GL_FENCE_STATUS_NV = $84F3;
5943   GL_FENCE_CONDITION_NV = $84F4;
5944
5945   // GL_NV_float_buffer
5946   GL_FLOAT_R_NV = $8880;
5947   GL_FLOAT_RG_NV = $8881;
5948   GL_FLOAT_RGB_NV = $8882;
5949   GL_FLOAT_RGBA_NV = $8883;
5950   GL_FLOAT_R16_NV = $8884;
5951   GL_FLOAT_R32_NV = $8885;
5952   GL_FLOAT_RG16_NV = $8886;
5953   GL_FLOAT_RG32_NV = $8887;
5954   GL_FLOAT_RGB16_NV = $8888;
5955   GL_FLOAT_RGB32_NV = $8889;
5956   GL_FLOAT_RGBA16_NV = $888A;
5957   GL_FLOAT_RGBA32_NV = $888B;
5958   GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
5959   GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
5960   GL_FLOAT_RGBA_MODE_NV = $888E;
5961
5962   // GL_NV_fog_distance
5963   GL_FOG_DISTANCE_MODE_NV = $855A;
5964   GL_EYE_RADIAL_NV = $855B;
5965   GL_EYE_PLANE_ABSOLUTE_NV = $855C;
5966
5967   // GL_NV_fragment_program
5968   GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
5969   GL_FRAGMENT_PROGRAM_NV = $8870;
5970   GL_MAX_TEXTURE_COORDS_NV = $8871;
5971   GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
5972   GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
5973   GL_PROGRAM_ERROR_STRING_NV = $8874;
5974
5975   // GL_NV_half_float
5976   GL_HALF_FLOAT_NV = $140B;
5977
5978   // GL_NV_light_max_exponent
5979   GL_MAX_SHININESS_NV = $8504;
5980   GL_MAX_SPOT_EXPONENT_NV = $8505;
5981
5982   // GL_NV_multisample_filter_hint
5983   GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
5984
5985   // GL_NV_occlusion_query
5986   GL_PIXEL_COUNTER_BITS_NV = $8864;
5987   GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
5988   GL_PIXEL_COUNT_NV = $8866;
5989   GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
5990
5991   // GL_NV_packed_depth_stencil
5992   GL_DEPTH_STENCIL_NV = $84F9;
5993   GL_UNSIGNED_INT_24_8_NV = $84FA;
5994
5995   // GL_NV_pixel_data_range
5996   GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
5997   GL_READ_PIXEL_DATA_RANGE_NV = $8879;
5998   GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
5999   GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
6000   GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
6001   GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
6002
6003   // GL_NV_point_sprite
6004   GL_POINT_SPRITE_NV = $8861;
6005   GL_COORD_REPLACE_NV = $8862;
6006   GL_POINT_SPRITE_R_MODE_NV = $8863;
6007
6008   // GL_NV_primitive_restart
6009   GL_PRIMITIVE_RESTART_NV = $8558;
6010   GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
6011
6012   // GL_NV_register_combiners
6013   GL_REGISTER_COMBINERS_NV = $8522;
6014   GL_VARIABLE_A_NV = $8523;
6015   GL_VARIABLE_B_NV = $8524;
6016   GL_VARIABLE_C_NV = $8525;
6017   GL_VARIABLE_D_NV = $8526;
6018   GL_VARIABLE_E_NV = $8527;
6019   GL_VARIABLE_F_NV = $8528;
6020   GL_VARIABLE_G_NV = $8529;
6021   GL_CONSTANT_COLOR0_NV = $852A;
6022   GL_CONSTANT_COLOR1_NV = $852B;
6023   GL_PRIMARY_COLOR_NV = $852C;
6024   GL_SECONDARY_COLOR_NV = $852D;
6025   GL_SPARE0_NV = $852E;
6026   GL_SPARE1_NV = $852F;
6027   GL_DISCARD_NV = $8530;
6028   GL_E_TIMES_F_NV = $8531;
6029   GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
6030   GL_UNSIGNED_IDENTITY_NV = $8536;
6031   GL_UNSIGNED_INVERT_NV = $8537;
6032   GL_EXPAND_NORMAL_NV = $8538;
6033   GL_EXPAND_NEGATE_NV = $8539;
6034   GL_HALF_BIAS_NORMAL_NV = $853A;
6035   GL_HALF_BIAS_NEGATE_NV = $853B;
6036   GL_SIGNED_IDENTITY_NV = $853C;
6037   GL_SIGNED_NEGATE_NV = $853D;
6038   GL_SCALE_BY_TWO_NV = $853E;
6039   GL_SCALE_BY_FOUR_NV = $853F;
6040   GL_SCALE_BY_ONE_HALF_NV = $8540;
6041   GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
6042   GL_COMBINER_INPUT_NV = $8542;
6043   GL_COMBINER_MAPPING_NV = $8543;
6044   GL_COMBINER_COMPONENT_USAGE_NV = $8544;
6045   GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
6046   GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
6047   GL_COMBINER_MUX_SUM_NV = $8547;
6048   GL_COMBINER_SCALE_NV = $8548;
6049   GL_COMBINER_BIAS_NV = $8549;
6050   GL_COMBINER_AB_OUTPUT_NV = $854A;
6051   GL_COMBINER_CD_OUTPUT_NV = $854B;
6052   GL_COMBINER_SUM_OUTPUT_NV = $854C;
6053   GL_MAX_GENERAL_COMBINERS_NV = $854D;
6054   GL_NUM_GENERAL_COMBINERS_NV = $854E;
6055   GL_COLOR_SUM_CLAMP_NV = $854F;
6056   GL_COMBINER0_NV = $8550;
6057   GL_COMBINER1_NV = $8551;
6058   GL_COMBINER2_NV = $8552;
6059   GL_COMBINER3_NV = $8553;
6060   GL_COMBINER4_NV = $8554;
6061   GL_COMBINER5_NV = $8555;
6062   GL_COMBINER6_NV = $8556;
6063   GL_COMBINER7_NV = $8557;
6064
6065   // GL_NV_register_combiners2
6066   GL_PER_STAGE_CONSTANTS_NV = $8535;
6067
6068   // GL_NV_texgen_emboss
6069   GL_EMBOSS_LIGHT_NV = $855D;
6070   GL_EMBOSS_CONSTANT_NV = $855E;
6071   GL_EMBOSS_MAP_NV = $855F;
6072
6073   // GL_NV_texgen_reflection
6074   GL_NORMAL_MAP_NV = $8511;
6075   GL_REFLECTION_MAP_NV = $8512;
6076
6077   // GL_NV_texture_env_combine4
6078   GL_COMBINE4_NV = $8503;
6079   GL_SOURCE3_RGB_NV = $8583;
6080   GL_SOURCE3_ALPHA_NV = $858B;
6081   GL_OPERAND3_RGB_NV = $8593;
6082   GL_OPERAND3_ALPHA_NV = $859B;
6083
6084   // GL_NV_texture_expand_normal
6085   GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
6086
6087   // GL_NV_texture_rectangle
6088   GL_TEXTURE_RECTANGLE_NV = $84F5;
6089   GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
6090   GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
6091   GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
6092
6093   // GL_NV_texture_shader
6094   GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
6095   GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
6096   GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
6097   GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
6098   GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
6099   GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
6100   GL_DSDT_MAG_INTENSITY_NV = $86DC;
6101   GL_SHADER_CONSISTENT_NV = $86DD;
6102   GL_TEXTURE_SHADER_NV = $86DE;
6103   GL_SHADER_OPERATION_NV = $86DF;
6104   GL_CULL_MODES_NV = $86E0;
6105   GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
6106   GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
6107   GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
6108   GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV;
6109   GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV;
6110   GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV;
6111   GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
6112   GL_CONST_EYE_NV = $86E5;
6113   GL_PASS_THROUGH_NV = $86E6;
6114   GL_CULL_FRAGMENT_NV = $86E7;
6115   GL_OFFSET_TEXTURE_2D_NV = $86E8;
6116   GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
6117   GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
6118   GL_DOT_PRODUCT_NV = $86EC;
6119   GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
6120   GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
6121   GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
6122   GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
6123   GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
6124   GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
6125   GL_HILO_NV = $86F4;
6126   GL_DSDT_NV = $86F5;
6127   GL_DSDT_MAG_NV = $86F6;
6128   GL_DSDT_MAG_VIB_NV = $86F7;
6129   GL_HILO16_NV = $86F8;
6130   GL_SIGNED_HILO_NV = $86F9;
6131   GL_SIGNED_HILO16_NV = $86FA;
6132   GL_SIGNED_RGBA_NV = $86FB;
6133   GL_SIGNED_RGBA8_NV = $86FC;
6134   GL_SIGNED_RGB_NV = $86FE;
6135   GL_SIGNED_RGB8_NV = $86FF;
6136   GL_SIGNED_LUMINANCE_NV = $8701;
6137   GL_SIGNED_LUMINANCE8_NV = $8702;
6138   GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
6139   GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
6140   GL_SIGNED_ALPHA_NV = $8705;
6141   GL_SIGNED_ALPHA8_NV = $8706;
6142   GL_SIGNED_INTENSITY_NV = $8707;
6143   GL_SIGNED_INTENSITY8_NV = $8708;
6144   GL_DSDT8_NV = $8709;
6145   GL_DSDT8_MAG8_NV = $870A;
6146   GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
6147   GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
6148   GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
6149   GL_HI_SCALE_NV = $870E;
6150   GL_LO_SCALE_NV = $870F;
6151   GL_DS_SCALE_NV = $8710;
6152   GL_DT_SCALE_NV = $8711;
6153   GL_MAGNITUDE_SCALE_NV = $8712;
6154   GL_VIBRANCE_SCALE_NV = $8713;
6155   GL_HI_BIAS_NV = $8714;
6156   GL_LO_BIAS_NV = $8715;
6157   GL_DS_BIAS_NV = $8716;
6158   GL_DT_BIAS_NV = $8717;
6159   GL_MAGNITUDE_BIAS_NV = $8718;
6160   GL_VIBRANCE_BIAS_NV = $8719;
6161   GL_TEXTURE_BORDER_VALUES_NV = $871A;
6162   GL_TEXTURE_HI_SIZE_NV = $871B;
6163   GL_TEXTURE_LO_SIZE_NV = $871C;
6164   GL_TEXTURE_DS_SIZE_NV = $871D;
6165   GL_TEXTURE_DT_SIZE_NV = $871E;
6166   GL_TEXTURE_MAG_SIZE_NV = $871F;
6167
6168   // GL_NV_texture_shader2
6169   GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
6170
6171   // GL_NV_texture_shader3
6172   GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
6173   GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
6174   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
6175   GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
6176   GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
6177   GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
6178   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
6179   GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
6180   GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
6181   GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
6182   GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
6183   GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
6184   GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
6185   GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
6186   GL_HILO8_NV = $885E;
6187   GL_SIGNED_HILO8_NV = $885F;
6188   GL_FORCE_BLUE_TO_ONE_NV = $8860;
6189
6190   // GL_NV_vertex_array_range
6191   GL_VERTEX_ARRAY_RANGE_NV = $851D;
6192   GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
6193   GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
6194   GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
6195   GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
6196
6197   // GL_NV_vertex_array_range2
6198   GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
6199
6200   // GL_NV_vertex_program
6201   GL_VERTEX_PROGRAM_NV = $8620;
6202   GL_VERTEX_STATE_PROGRAM_NV = $8621;
6203   GL_ATTRIB_ARRAY_SIZE_NV = $8623;
6204   GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
6205   GL_ATTRIB_ARRAY_TYPE_NV = $8625;
6206   GL_CURRENT_ATTRIB_NV = $8626;
6207   GL_PROGRAM_LENGTH_NV = $8627;
6208   GL_PROGRAM_STRING_NV = $8628;
6209   GL_MODELVIEW_PROJECTION_NV = $8629;
6210   GL_IDENTITY_NV = $862A;
6211   GL_INVERSE_NV = $862B;
6212   GL_TRANSPOSE_NV = $862C;
6213   GL_INVERSE_TRANSPOSE_NV = $862D;
6214   GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
6215   GL_MAX_TRACK_MATRICES_NV = $862F;
6216   GL_MATRIX0_NV = $8630;
6217   GL_MATRIX1_NV = $8631;
6218   GL_MATRIX2_NV = $8632;
6219   GL_MATRIX3_NV = $8633;
6220   GL_MATRIX4_NV = $8634;
6221   GL_MATRIX5_NV = $8635;
6222   GL_MATRIX6_NV = $8636;
6223   GL_MATRIX7_NV = $8637;
6224   GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
6225   GL_CURRENT_MATRIX_NV = $8641;
6226   GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
6227   GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
6228   GL_PROGRAM_PARAMETER_NV = $8644;
6229   GL_ATTRIB_ARRAY_POINTER_NV = $8645;
6230   GL_PROGRAM_TARGET_NV = $8646;
6231   GL_PROGRAM_RESIDENT_NV = $8647;
6232   GL_TRACK_MATRIX_NV = $8648;
6233   GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
6234   GL_VERTEX_PROGRAM_BINDING_NV = $864A;
6235   GL_PROGRAM_ERROR_POSITION_NV = $864B;
6236   GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
6237   GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
6238   GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
6239   GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
6240   GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
6241   GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
6242   GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
6243   GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
6244   GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
6245   GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
6246   GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
6247   GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
6248   GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
6249   GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
6250   GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
6251   GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
6252   GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
6253   GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
6254   GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
6255   GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
6256   GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
6257   GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
6258   GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
6259   GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
6260   GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
6261   GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
6262   GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
6263   GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
6264   GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
6265   GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
6266   GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
6267   GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
6268   GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
6269   GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
6270   GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
6271   GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
6272   GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
6273   GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
6274   GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
6275   GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
6276   GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
6277   GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
6278   GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
6279   GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
6280   GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
6281   GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
6282   GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
6283   GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
6284
6285   // GL_NV_fragment_program2 and GL_NV_vertex_program2_option
6286   GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
6287   GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
6288
6289   // GL_NV_fragment_program2
6290   GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
6291   GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
6292   GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
6293
6294   // GL_NV_vertex_program3
6295   MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6296
6297   // GL_NV_depth_buffer_float
6298   GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = $8DAD;
6299   GL_DEPTH_BUFFER_FLOAT_MODE_NV = $8DAF;
6300
6301   // GL_NV_framebuffer_multisample_coverage
6302   GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = $8CAB;
6303   GL_RENDERBUFFER_COLOR_SAMPLES_NV = $8E10;
6304
6305   // GL_NV_geometry_program4
6306   GL_GEOMETRY_PROGRAM_NV = $8C26;
6307   GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = $8C27;
6308   GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = $8C28;
6309
6310   // GL_NV_gpu_program4
6311   GL_PROGRAM_ATTRIB_COMPONENTS_NV = $8906;
6312   GL_PROGRAM_RESULT_COMPONENTS_NV = $8907;
6313   GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = $8908;
6314   GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = $8909;
6315   GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = $8DA5;
6316   GL_MAX_PROGRAM_GENERIC_RESULTS_NV = $8DA6;
6317
6318   // GL_NV_parameter_buffer_object
6319   GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = $8DA0;
6320   GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = $8DA1;
6321   GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = $8DA2;
6322   GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = $8DA3;
6323   GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = $8DA4;
6324
6325   // GL_NV_transform_feedback
6326   GL_TRANSFORM_FEEDBACK_BUFFER_NV = $8C8E;
6327   GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = $8C84;
6328   GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = $8C85;
6329   GL_TRANSFORM_FEEDBACK_RECORD_NV = $8C86;
6330   GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = $8C8F;
6331   GL_INTERLEAVED_ATTRIBS_NV = $8C8C;
6332   GL_SEPARATE_ATTRIBS_NV = $8C8D;
6333   GL_PRIMITIVES_GENERATED_NV = $8C87;
6334   GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = $8C88;
6335   GL_RASTERIZER_DISCARD_NV = $8C89;
6336   GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = $8C8A;
6337   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = $8C8B;
6338   GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = $8C80;
6339   GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = $8C7E;
6340   GL_ACTIVE_VARYINGS_NV = $8C81;
6341   GL_ACTIVE_VARYING_MAX_LENGTH_NV = $8C82;
6342   GL_TRANSFORM_FEEDBACK_VARYINGS_NV = $8C83;
6343   GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = $8C7F;
6344   GL_BACK_PRIMARY_COLOR_NV = $8C77;
6345   GL_BACK_SECONDARY_COLOR_NV = $8C78;
6346   GL_TEXTURE_COORD_NV = $8C79;
6347   GL_CLIP_DISTANCE_NV = $8C7A;
6348   GL_VERTEX_ID_NV = $8C7B;
6349   GL_PRIMITIVE_ID_NV = $8C7C;
6350   GL_GENERIC_ATTRIB_NV = $8C7D;
6351   GL_LAYER_NV = $8DAA;
6352   GL_NEXT_BUFFER_NV = -2;
6353   GL_SKIP_COMPONENTS4_NV = -3;
6354   GL_SKIP_COMPONENTS3_NV = -4;
6355   GL_SKIP_COMPONENTS2_NV = -5;
6356   GL_SKIP_COMPONENTS1_NV = -6;
6357
6358   // GL_NV_conditional_render
6359   GL_QUERY_WAIT_NV = $8E13;
6360   GL_QUERY_NO_WAIT_NV = $8E14;
6361   GL_QUERY_BY_REGION_WAIT_NV = $8E15;
6362   GL_QUERY_BY_REGION_NO_WAIT_NV = $8E16;
6363
6364   // GL_NV_present_video
6365   GL_FRAME_NV = $8E26;
6366   GL_FIELDS_NV = $8E27;
6367   GL_CURRENT_TIME_NV = $8E28;
6368   GL_NUM_FILL_STREAMS_NV = $8E29;
6369   GL_PRESENT_TIME_NV = $8E2A;
6370   GL_PRESENT_DURATION_NV = $8E2B;
6371
6372   // GL_NV_explicit_multisample
6373   GL_SAMPLE_POSITION_NV = $8E50;
6374   GL_SAMPLE_MASK_NV = $8E51;
6375   GL_SAMPLE_MASK_VALUE_NV = $8E52;
6376   GL_TEXTURE_BINDING_RENDERBUFFER_NV = $8E53;
6377   GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = $8E54;
6378   GL_TEXTURE_RENDERBUFFER_NV = $8E55;
6379   GL_SAMPLER_RENDERBUFFER_NV = $8E56;
6380   GL_INT_SAMPLER_RENDERBUFFER_NV = $8E57;
6381   GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = $8E58;
6382   GL_MAX_SAMPLE_MASK_WORDS_NV = $8E59;
6383
6384   // GL_NV_transform_feedback2
6385   GL_TRANSFORM_FEEDBACK_NV = $8E22;
6386   GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = $8E23;
6387   GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = $8E24;
6388   GL_TRANSFORM_FEEDBACK_BINDING_NV = $8E25;
6389
6390   // GL_NV_video_capture
6391   GL_VIDEO_BUFFER_NV = $9020;
6392   GL_VIDEO_BUFFER_BINDING_NV = $9021;
6393   GL_FIELD_UPPER_NV = $9022;
6394   GL_FIELD_LOWER_NV = $9023;
6395   GL_NUM_VIDEO_CAPTURE_STREAMS_NV = $9024;
6396   GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = $9025;
6397   GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = $9026;
6398   GL_LAST_VIDEO_CAPTURE_STATUS_NV = $9027;
6399   GL_VIDEO_BUFFER_PITCH_NV = $9028;
6400   GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = $9029;
6401   GL_VIDEO_COLOR_CONVERSION_MAX_NV = $902A;
6402   GL_VIDEO_COLOR_CONVERSION_MIN_NV = $902B;
6403   GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = $902C;
6404   GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = $902D;
6405   GL_PARTIAL_SUCCESS_NV = $902E;
6406   GL_SUCCESS_NV = $902F;
6407   GL_FAILURE_NV = $9030;
6408   GL_YCBYCR8_422_NV = $9031;
6409   GL_YCBAYCR8A_4224_NV = $9032;
6410   GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = $9033;
6411   GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = $9034;
6412   GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = $9035;
6413   GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = $9036;
6414   GL_Z4Y12Z4CB12Z4CR12_444_NV = $9037;
6415   GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = $9038;
6416   GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = $9039;
6417   GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = $903A;
6418   GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = $903B;
6419   GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = $903C;
6420
6421   // GL_NV_shader_buffer_load
6422   GL_BUFFER_GPU_ADDRESS_NV = $8F1D;
6423   GL_GPU_ADDRESS_NV = $8F34;
6424   GL_MAX_SHADER_BUFFER_ADDRESS_NV = $8F35;
6425
6426   // GL_NV_vertex_buffer_unified_memory
6427   GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = $8F1E;
6428   GL_ELEMENT_ARRAY_UNIFIED_NV = $8F1F;
6429   GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = $8F20;
6430   GL_VERTEX_ARRAY_ADDRESS_NV = $8F21;
6431   GL_NORMAL_ARRAY_ADDRESS_NV = $8F22;
6432   GL_COLOR_ARRAY_ADDRESS_NV = $8F23;
6433   GL_INDEX_ARRAY_ADDRESS_NV = $8F24;
6434   GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = $8F25;
6435   GL_EDGE_FLAG_ARRAY_ADDRESS_NV = $8F26;
6436   GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = $8F27;
6437   GL_FOG_COORD_ARRAY_ADDRESS_NV = $8F28;
6438   GL_ELEMENT_ARRAY_ADDRESS_NV = $8F29;
6439   GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = $8F2A;
6440   GL_VERTEX_ARRAY_LENGTH_NV = $8F2B;
6441   GL_NORMAL_ARRAY_LENGTH_NV = $8F2C;
6442   GL_COLOR_ARRAY_LENGTH_NV = $8F2D;
6443   GL_INDEX_ARRAY_LENGTH_NV = $8F2E;
6444   GL_TEXTURE_COORD_ARRAY_LENGTH_NV = $8F2F;
6445   GL_EDGE_FLAG_ARRAY_LENGTH_NV = $8F30;
6446   GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = $8F31;
6447   GL_FOG_COORD_ARRAY_LENGTH_NV = $8F32;
6448   GL_ELEMENT_ARRAY_LENGTH_NV = $8F33;
6449   GL_DRAW_INDIRECT_UNIFIED_NV = $8F40;
6450   GL_DRAW_INDIRECT_ADDRESS_NV = $8F41;
6451   GL_DRAW_INDIRECT_LENGTH_NV = $8F42;
6452
6453   // GL_NV_gpu_program5
6454   GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = $8E5A;
6455   GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5B;
6456   GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = $8E5C;
6457   GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = $8E5D;
6458   GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5E;
6459   GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = $8E5F;
6460   GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = $8F44;
6461   GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = $8F45;
6462
6463   // GL_NV_gpu_shader5
6464   GL_INT64_NV = $140E;
6465   GL_UNSIGNED_INT64_NV = $140F;
6466   GL_INT8_NV = $8FE0;
6467   GL_INT8_VEC2_NV = $8FE1;
6468   GL_INT8_VEC3_NV = $8FE2;
6469   GL_INT8_VEC4_NV = $8FE3;
6470   GL_INT16_NV = $8FE4;
6471   GL_INT16_VEC2_NV = $8FE5;
6472   GL_INT16_VEC3_NV = $8FE6;
6473   GL_INT16_VEC4_NV = $8FE7;
6474   GL_INT64_VEC2_NV = $8FE9;
6475   GL_INT64_VEC3_NV = $8FEA;
6476   GL_INT64_VEC4_NV = $8FEB;
6477   GL_UNSIGNED_INT8_NV = $8FEC;
6478   GL_UNSIGNED_INT8_VEC2_NV = $8FED;
6479   GL_UNSIGNED_INT8_VEC3_NV = $8FEE;
6480   GL_UNSIGNED_INT8_VEC4_NV = $8FEF;
6481   GL_UNSIGNED_INT16_NV = $8FF0;
6482   GL_UNSIGNED_INT16_VEC2_NV = $8FF1;
6483   GL_UNSIGNED_INT16_VEC3_NV = $8FF2;
6484   GL_UNSIGNED_INT16_VEC4_NV = $8FF3;
6485   GL_UNSIGNED_INT64_VEC2_NV = $8FF5;
6486   GL_UNSIGNED_INT64_VEC3_NV = $8FF6;
6487   GL_UNSIGNED_INT64_VEC4_NV = $8FF7;
6488   GL_FLOAT16_NV = $8FF8;
6489   GL_FLOAT16_VEC2_NV = $8FF9;
6490   GL_FLOAT16_VEC3_NV = $8FFA;
6491   GL_FLOAT16_VEC4_NV = $8FFB;
6492   { reuse GL_PATCHES }
6493
6494   // GL_NV_shader_buffer_store
6495   GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = $00000010;
6496   { reuse GL_READ_WRITE }
6497   { reuse GL_WRITE_ONLY }
6498
6499   // GL_NV_tessellation_program5
6500   GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = $86D8;
6501   GL_TESS_CONTROL_PROGRAM_NV = $891E;
6502   GL_TESS_EVALUATION_PROGRAM_NV = $891F;
6503   GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = $8C74;
6504   GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = $8C75;
6505
6506   // GL_NV_vertex_attrib_integer_64bit
6507   { reuse GL_INT64_NV }
6508   { reuse GL_UNSIGNED_INT64_NV }
6509
6510   // GL_NV_multisample_coverage
6511   GL_COVERAGE_SAMPLES_NV = $80A9;
6512   GL_COLOR_SAMPLES_NV = $8E20;
6513
6514   // GL_NV_vdpau_interop
6515   GL_SURFACE_STATE_NV = $86EB;
6516   GL_SURFACE_REGISTERED_NV = $86FD;
6517   GL_SURFACE_MAPPED_NV = $8700;
6518   GL_WRITE_DISCARD_NV = $88BE;
6519
6520   // GL_OML_interlace
6521   GL_INTERLACE_OML = $8980;
6522   GL_INTERLACE_READ_OML = $8981;
6523
6524   // GL_OML_resample
6525   GL_PACK_RESAMPLE_OML = $8984;
6526   GL_UNPACK_RESAMPLE_OML = $8985;
6527   GL_RESAMPLE_REPLICATE_OML = $8986;
6528   GL_RESAMPLE_ZERO_FILL_OML = $8987;
6529   GL_RESAMPLE_AVERAGE_OML = $8988;
6530   GL_RESAMPLE_DECIMATE_OML = $8989;
6531
6532   // GL_OML_subsample
6533   GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
6534   GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
6535
6536   // GL_PGI_misc_hints
6537   GL_PREFER_DOUBLEBUFFER_HINT_PGI = $1A1F8;
6538   GL_CONSERVE_MEMORY_HINT_PGI = $1A1FD;
6539   GL_RECLAIM_MEMORY_HINT_PGI = $1A1FE;
6540   GL_NATIVE_GRAPHICS_HANDLE_PGI = $1A202;
6541   GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = $1A203;
6542   GL_NATIVE_GRAPHICS_END_HINT_PGI = $1A204;
6543   GL_ALWAYS_FAST_HINT_PGI = $1A20C;
6544   GL_ALWAYS_SOFT_HINT_PGI = $1A20D;
6545   GL_ALLOW_DRAW_OBJ_HINT_PGI = $1A20E;
6546   GL_ALLOW_DRAW_WIN_HINT_PGI = $1A20F;
6547   GL_ALLOW_DRAW_FRG_HINT_PGI = $1A210;
6548   GL_ALLOW_DRAW_MEM_HINT_PGI = $1A211;
6549   GL_STRICT_DEPTHFUNC_HINT_PGI = $1A216;
6550   GL_STRICT_LIGHTING_HINT_PGI = $1A217;
6551   GL_STRICT_SCISSOR_HINT_PGI = $1A218;
6552   GL_FULL_STIPPLE_HINT_PGI = $1A219;
6553   GL_CLIP_NEAR_HINT_PGI = $1A220;
6554   GL_CLIP_FAR_HINT_PGI = $1A221;
6555   GL_WIDE_LINE_HINT_PGI = $1A222;
6556   GL_BACK_NORMALS_HINT_PGI = $1A223;
6557
6558   // GL_PGI_vertex_hints
6559   GL_VERTEX_DATA_HINT_PGI = $1A22A;
6560   GL_VERTEX_CONSISTENT_HINT_PGI = $1A22B;
6561   GL_MATERIAL_SIDE_HINT_PGI = $1A22C;
6562   GL_MAX_VERTEX_HINT_PGI = $1A22D;
6563   GL_COLOR3_BIT_PGI = $00010000;
6564   GL_COLOR4_BIT_PGI = $00020000;
6565   GL_EDGEFLAG_BIT_PGI = $00040000;
6566   GL_INDEX_BIT_PGI = $00080000;
6567   GL_MAT_AMBIENT_BIT_PGI = $00100000;
6568   GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = $00200000;
6569   GL_MAT_DIFFUSE_BIT_PGI = $00400000;
6570   GL_MAT_EMISSION_BIT_PGI = $00800000;
6571   GL_MAT_COLOR_INDEXES_BIT_PGI = $01000000;
6572   GL_MAT_SHININESS_BIT_PGI = $02000000;
6573   GL_MAT_SPECULAR_BIT_PGI = $04000000;
6574   GL_NORMAL_BIT_PGI = $08000000;
6575   GL_TEXCOORD1_BIT_PGI = $10000000;
6576   GL_TEXCOORD2_BIT_PGI = $20000000;
6577   GL_TEXCOORD3_BIT_PGI = $40000000;
6578   GL_TEXCOORD4_BIT_PGI = $80000000;
6579   GL_VERTEX23_BIT_PGI = $00000004;
6580   GL_VERTEX4_BIT_PGI = $00000008;
6581
6582   // GL_REND_screen_coordinates
6583   GL_SCREEN_COORDINATES_REND = $8490;
6584   GL_INVERTED_SCREEN_W_REND = $8491;
6585
6586   // GL_S3_s3tc
6587   GL_RGB_S3TC = $83A0;
6588   GL_RGB4_S3TC = $83A1;
6589   GL_RGBA_S3TC = $83A2;
6590   GL_RGBA4_S3TC = $83A3;
6591
6592   // GL_SGIS_detail_texture
6593   GL_DETAIL_TEXTURE_2D_SGIS = $8095;
6594   GL_DETAIL_TEXTURE_2D_BINDING_SGIS = $8096;
6595   GL_LINEAR_DETAIL_SGIS = $8097;
6596   GL_LINEAR_DETAIL_ALPHA_SGIS = $8098;
6597   GL_LINEAR_DETAIL_COLOR_SGIS = $8099;
6598   GL_DETAIL_TEXTURE_LEVEL_SGIS = $809A;
6599   GL_DETAIL_TEXTURE_MODE_SGIS = $809B;
6600   GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = $809C;
6601
6602   // GL_SGIS_fog_function
6603   GL_FOG_FUNC_SGIS = $812A;
6604   GL_FOG_FUNC_POINTS_SGIS = $812B;
6605   GL_MAX_FOG_FUNC_POINTS_SGIS = $812C;
6606
6607   // GL_SGIS_generate_mipmap
6608   GL_GENERATE_MIPMAP_SGIS = $8191;
6609   GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
6610
6611   // GL_SGIS_multisample
6612   GL_MULTISAMPLE_SGIS = $809D;
6613   GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
6614   GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
6615   GL_SAMPLE_MASK_SGIS = $80A0;
6616   GL_1PASS_SGIS = $80A1;
6617   GL_2PASS_0_SGIS = $80A2;
6618   GL_2PASS_1_SGIS = $80A3;
6619   GL_4PASS_0_SGIS = $80A4;
6620   GL_4PASS_1_SGIS = $80A5;
6621   GL_4PASS_2_SGIS = $80A6;
6622   GL_4PASS_3_SGIS = $80A7;
6623   GL_SAMPLE_BUFFERS_SGIS = $80A8;
6624   GL_SAMPLES_SGIS = $80A9;
6625   GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
6626   GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
6627   GL_SAMPLE_PATTERN_SGIS = $80AC;
6628
6629   // GL_SGIS_pixel_texture
6630   GL_PIXEL_TEXTURE_SGIS = $8353;
6631   GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
6632   GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
6633   GL_PIXEL_GROUP_COLOR_SGIS = $8356;
6634
6635   // GL_SGIS_point_line_texgen
6636   GL_EYE_DISTANCE_TO_POINT_SGIS = $81F0;
6637   GL_OBJECT_DISTANCE_TO_POINT_SGIS = $81F1;
6638   GL_EYE_DISTANCE_TO_LINE_SGIS = $81F2;
6639   GL_OBJECT_DISTANCE_TO_LINE_SGIS = $81F3;
6640   GL_EYE_POINT_SGIS = $81F4;
6641   GL_OBJECT_POINT_SGIS = $81F5;
6642   GL_EYE_LINE_SGIS = $81F6;
6643   GL_OBJECT_LINE_SGIS = $81F7;
6644
6645   // GL_SGIS_point_parameters
6646   GL_POINT_SIZE_MIN_SGIS = $8126;
6647   GL_POINT_SIZE_MAX_SGIS = $8127;
6648   GL_POINT_FADE_THRESHOLD_SIZE_SGIS = $8128;
6649   GL_DISTANCE_ATTENUATION_SGIS = $8129;
6650
6651   // GL_SGIS_sharpen_texture
6652   GL_LINEAR_SHARPEN_SGIS = $80AD;
6653   GL_LINEAR_SHARPEN_ALPHA_SGIS = $80AE;
6654   GL_LINEAR_SHARPEN_COLOR_SGIS = $80AF;
6655   GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = $80B0;
6656
6657   // GL_SGIS_texture4D
6658   GL_PACK_SKIP_VOLUMES_SGIS = $8130;
6659   GL_PACK_IMAGE_DEPTH_SGIS = $8131;
6660   GL_UNPACK_SKIP_VOLUMES_SGIS = $8132;
6661   GL_UNPACK_IMAGE_DEPTH_SGIS = $8133;
6662   GL_TEXTURE_4D_SGIS = $8134;
6663   GL_PROXY_TEXTURE_4D_SGIS = $8135;
6664   GL_TEXTURE_4DSIZE_SGIS = $8136;
6665   GL_TEXTURE_WRAP_Q_SGIS = $8137;
6666   GL_MAX_4D_TEXTURE_SIZE_SGIS = $8138;
6667   GL_TEXTURE_4D_BINDING_SGIS = $814F;
6668
6669   // GL_SGIS_texture_color_mask
6670   GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
6671
6672   // GL_SGIS_texture_edge_clamp
6673   GL_CLAMP_TO_EDGE_SGIS = $812F;
6674
6675   // GL_SGIS_texture_filter4
6676   GL_FILTER4_SGIS = $8146;
6677   GL_TEXTURE_FILTER4_SIZE_SGIS = $8147;
6678
6679   // GL_SGIS_texture_lod
6680   GL_TEXTURE_MIN_LOD_SGIS = $813A;
6681   GL_TEXTURE_MAX_LOD_SGIS = $813B;
6682   GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
6683   GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
6684
6685   // GL_SGIS_texture_select
6686   GL_DUAL_ALPHA4_SGIS = $8110;
6687   GL_DUAL_ALPHA8_SGIS = $8111;
6688   GL_DUAL_ALPHA12_SGIS = $8112;
6689   GL_DUAL_ALPHA16_SGIS = $8113;
6690   GL_DUAL_LUMINANCE4_SGIS = $8114;
6691   GL_DUAL_LUMINANCE8_SGIS = $8115;
6692   GL_DUAL_LUMINANCE12_SGIS = $8116;
6693   GL_DUAL_LUMINANCE16_SGIS = $8117;
6694   GL_DUAL_INTENSITY4_SGIS = $8118;
6695   GL_DUAL_INTENSITY8_SGIS = $8119;
6696   GL_DUAL_INTENSITY12_SGIS = $811A;
6697   GL_DUAL_INTENSITY16_SGIS = $811B;
6698   GL_DUAL_LUMINANCE_ALPHA4_SGIS = $811C;
6699   GL_DUAL_LUMINANCE_ALPHA8_SGIS = $811D;
6700   GL_QUAD_ALPHA4_SGIS = $811E;
6701   GL_QUAD_ALPHA8_SGIS = $811F;
6702   GL_QUAD_LUMINANCE4_SGIS = $8120;
6703   GL_QUAD_LUMINANCE8_SGIS = $8121;
6704   GL_QUAD_INTENSITY4_SGIS = $8122;
6705   GL_QUAD_INTENSITY8_SGIS = $8123;
6706   GL_DUAL_TEXTURE_SELECT_SGIS = $8124;
6707   GL_QUAD_TEXTURE_SELECT_SGIS = $8125;
6708
6709   // GL_SGIX_async
6710   GL_ASYNC_MARKER_SGIX = $8329;
6711
6712   // GL_SGIX_async_histogram
6713   GL_ASYNC_HISTOGRAM_SGIX = $832C;
6714   GL_MAX_ASYNC_HISTOGRAM_SGIX = $832D;
6715
6716   // GL_SGIX_async_pixel
6717   GL_ASYNC_TEX_IMAGE_SGIX = $835C;
6718   GL_ASYNC_DRAW_PIXELS_SGIX = $835D;
6719   GL_ASYNC_READ_PIXELS_SGIX = $835E;
6720   GL_MAX_ASYNC_TEX_IMAGE_SGIX = $835F;
6721   GL_MAX_ASYNC_DRAW_PIXELS_SGIX = $8360;
6722   GL_MAX_ASYNC_READ_PIXELS_SGIX = $8361;
6723
6724   // GL_SGIX_blend_alpha_minmax
6725   GL_ALPHA_MIN_SGIX = $8320;
6726   GL_ALPHA_MAX_SGIX = $8321;
6727
6728   // GL_SGIX_calligraphic_fragment
6729   GL_CALLIGRAPHIC_FRAGMENT_SGIX = $8183;
6730
6731   // GL_SGIX_clipmap
6732   GL_LINEAR_CLIPMAP_LINEAR_SGIX = $8170;
6733   GL_TEXTURE_CLIPMAP_CENTER_SGIX = $8171;
6734   GL_TEXTURE_CLIPMAP_FRAME_SGIX = $8172;
6735   GL_TEXTURE_CLIPMAP_OFFSET_SGIX = $8173;
6736   GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8174;
6737   GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = $8175;
6738   GL_TEXTURE_CLIPMAP_DEPTH_SGIX = $8176;
6739   GL_MAX_CLIPMAP_DEPTH_SGIX = $8177;
6740   GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = $8178;
6741   GL_NEAREST_CLIPMAP_NEAREST_SGIX = $844D;
6742   GL_NEAREST_CLIPMAP_LINEAR_SGIX = $844E;
6743   GL_LINEAR_CLIPMAP_NEAREST_SGIX = $844F;
6744
6745   // GL_SGIX_convolution_accuracy
6746   GL_CONVOLUTION_HINT_SGIX = $8316;
6747
6748   // GL_SGIX_depth_texture
6749   GL_DEPTH_COMPONENT16_SGIX = $81A5;
6750   GL_DEPTH_COMPONENT24_SGIX = $81A6;
6751   GL_DEPTH_COMPONENT32_SGIX = $81A7;
6752
6753   // GL_SGIX_fog_offset
6754   GL_FOG_OFFSET_SGIX = $8198;
6755   GL_FOG_OFFSET_VALUE_SGIX = $8199;
6756
6757   // GL_SGIX_fog_scale
6758   GL_FOG_SCALE_SGIX = $81FC;
6759   GL_FOG_SCALE_VALUE_SGIX = $81FD;
6760
6761   // GL_SGIX_fragment_lighting
6762   GL_FRAGMENT_LIGHTING_SGIX = $8400;
6763   GL_FRAGMENT_COLOR_MATERIAL_SGIX = $8401;
6764   GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = $8402;
6765   GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = $8403;
6766   GL_MAX_FRAGMENT_LIGHTS_SGIX = $8404;
6767   GL_MAX_ACTIVE_LIGHTS_SGIX = $8405;
6768   GL_CURRENT_RASTER_NORMAL_SGIX = $8406;
6769   GL_LIGHT_ENV_MODE_SGIX = $8407;
6770   GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = $8408;
6771   GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = $8409;
6772   GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = $840A;
6773   GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = $840B;
6774   GL_FRAGMENT_LIGHT0_SGIX = $840C;
6775   GL_FRAGMENT_LIGHT1_SGIX = $840D;
6776   GL_FRAGMENT_LIGHT2_SGIX = $840E;
6777   GL_FRAGMENT_LIGHT3_SGIX = $840F;
6778   GL_FRAGMENT_LIGHT4_SGIX = $8410;
6779   GL_FRAGMENT_LIGHT5_SGIX = $8411;
6780   GL_FRAGMENT_LIGHT6_SGIX = $8412;
6781   GL_FRAGMENT_LIGHT7_SGIX = $8413;
6782
6783   // GL_SGIX_framezoom
6784   GL_FRAMEZOOM_SGIX = $818B;
6785   GL_FRAMEZOOM_FACTOR_SGIX = $818C;
6786   GL_MAX_FRAMEZOOM_FACTOR_SGIX = $818D;
6787
6788   // GL_SGIX_impact_pixel_texture
6789   GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = $8184;
6790   GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = $8185;
6791   GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = $8186;
6792   GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = $8187;
6793   GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = $8188;
6794   GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = $8189;
6795   GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = $818A;
6796
6797   // GL_SGIX_instruments
6798   GL_INSTRUMENT_BUFFER_POINTER_SGIX = $8180;
6799   GL_INSTRUMENT_MEASUREMENTS_SGIX = $8181;
6800
6801   // GL_SGIX_interlace
6802   GL_INTERLACE_SGIX = $8094;
6803
6804   // GL_SGIX_ir_instrument1
6805   GL_IR_INSTRUMENT1_SGIX = $817F;
6806
6807   // GL_SGIX_list_priority
6808   GL_LIST_PRIORITY_SGIX = $8182;
6809
6810   // GL_SGIX_pixel_texture
6811   GL_PIXEL_TEX_GEN_SGIX = $8139;
6812   GL_PIXEL_TEX_GEN_MODE_SGIX = $832B;
6813
6814   // GL_SGIX_pixel_tiles
6815   GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = $813E;
6816   GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = $813F;
6817   GL_PIXEL_TILE_WIDTH_SGIX = $8140;
6818   GL_PIXEL_TILE_HEIGHT_SGIX = $8141;
6819   GL_PIXEL_TILE_GRID_WIDTH_SGIX = $8142;
6820   GL_PIXEL_TILE_GRID_HEIGHT_SGIX = $8143;
6821   GL_PIXEL_TILE_GRID_DEPTH_SGIX = $8144;
6822   GL_PIXEL_TILE_CACHE_SIZE_SGIX = $8145;
6823
6824   // GL_SGIX_polynomial_ffd
6825   GL_GEOMETRY_DEFORMATION_SGIX = $8194;
6826   GL_TEXTURE_DEFORMATION_SGIX = $8195;
6827   GL_DEFORMATIONS_MASK_SGIX = $8196;
6828   GL_MAX_DEFORMATION_ORDER_SGIX = $8197;
6829
6830   // GL_SGIX_reference_plane
6831   GL_REFERENCE_PLANE_SGIX = $817D;
6832   GL_REFERENCE_PLANE_EQUATION_SGIX = $817E;
6833
6834   // GL_SGIX_resample
6835   GL_PACK_RESAMPLE_SGIX = $842C;
6836   GL_UNPACK_RESAMPLE_SGIX = $842D;
6837   GL_RESAMPLE_REPLICATE_SGIX = $842E;
6838   GL_RESAMPLE_ZERO_FILL_SGIX = $842F;
6839   GL_RESAMPLE_DECIMATE_SGIX = $8430;
6840
6841   // GL_SGIX_scalebias_hint
6842   GL_SCALEBIAS_HINT_SGIX = $8322;
6843
6844   // GL_SGIX_shadow
6845   GL_TEXTURE_COMPARE_SGIX = $819A;
6846   GL_TEXTURE_COMPARE_OPERATOR_SGIX = $819B;
6847   GL_TEXTURE_LEQUAL_R_SGIX = $819C;
6848   GL_TEXTURE_GEQUAL_R_SGIX = $819D;
6849
6850   // GL_SGIX_shadow_ambient
6851   GL_SHADOW_AMBIENT_SGIX = $80BF;
6852
6853   // GL_SGIX_sprite
6854   GL_SPRITE_SGIX = $8148;
6855   GL_SPRITE_MODE_SGIX = $8149;
6856   GL_SPRITE_AXIS_SGIX = $814A;
6857   GL_SPRITE_TRANSLATION_SGIX = $814B;
6858   GL_SPRITE_AXIAL_SGIX = $814C;
6859   GL_SPRITE_OBJECT_ALIGNED_SGIX = $814D;
6860   GL_SPRITE_EYE_ALIGNED_SGIX = $814E;
6861
6862   // GL_SGIX_subsample
6863   GL_PACK_SUBSAMPLE_RATE_SGIX = $85A0;
6864   GL_UNPACK_SUBSAMPLE_RATE_SGIX = $85A1;
6865   GL_PIXEL_SUBSAMPLE_4444_SGIX = $85A2;
6866   GL_PIXEL_SUBSAMPLE_2424_SGIX = $85A3;
6867   GL_PIXEL_SUBSAMPLE_4242_SGIX = $85A4;
6868
6869   // GL_SGIX_texture_add_env
6870   GL_TEXTURE_ENV_BIAS_SGIX = $80BE;
6871
6872   // GL_SGIX_texture_coordinate_clamp
6873   GL_TEXTURE_MAX_CLAMP_S_SGIX = $8369;
6874   GL_TEXTURE_MAX_CLAMP_T_SGIX = $836A;
6875   GL_TEXTURE_MAX_CLAMP_R_SGIX = $836B;
6876
6877   // GL_SGIX_texture_lod_bias
6878   GL_TEXTURE_LOD_BIAS_S_SGIX = $818E;
6879   GL_TEXTURE_LOD_BIAS_T_SGIX = $818F;
6880   GL_TEXTURE_LOD_BIAS_R_SGIX = $8190;
6881
6882   // GL_SGIX_texture_multi_buffer
6883   GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = $812E;
6884
6885   // GL_SGIX_texture_scale_bias
6886   GL_POST_TEXTURE_FILTER_BIAS_SGIX = $8179;
6887   GL_POST_TEXTURE_FILTER_SCALE_SGIX = $817A;
6888   GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = $817B;
6889   GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = $817C;
6890
6891   // GL_SGIX_vertex_preclip
6892   GL_VERTEX_PRECLIP_SGIX = $83EE;
6893   GL_VERTEX_PRECLIP_HINT_SGIX = $83EF;
6894
6895   // GL_SGIX_ycrcb
6896   GL_YCRCB_422_SGIX = $81BB;
6897   GL_YCRCB_444_SGIX = $81BC;
6898
6899   // GL_SGIX_ycrcba
6900   GL_YCRCB_SGIX = $8318;
6901   GL_YCRCBA_SGIX = $8319;
6902
6903   // GL_SGI_color_matrix
6904   GL_COLOR_MATRIX_SGI = $80B1;
6905   GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
6906   GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
6907   GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
6908   GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
6909   GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
6910   GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
6911   GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
6912   GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
6913   GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
6914   GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
6915
6916   // GL_SGI_color_table
6917   GL_COLOR_TABLE_SGI = $80D0;
6918   GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
6919   GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
6920   GL_PROXY_COLOR_TABLE_SGI = $80D3;
6921   GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
6922   GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
6923   GL_COLOR_TABLE_SCALE_SGI = $80D6;
6924   GL_COLOR_TABLE_BIAS_SGI = $80D7;
6925   GL_COLOR_TABLE_FORMAT_SGI = $80D8;
6926   GL_COLOR_TABLE_WIDTH_SGI = $80D9;
6927   GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
6928   GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
6929   GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
6930   GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
6931   GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
6932   GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
6933
6934   // GL_SGI_depth_pass_instrument
6935   GL_DEPTH_PASS_INSTRUMENT_SGIX = $8310;
6936   GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = $8311;
6937   GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = $8312;
6938
6939   // GL_SGI_texture_color_table
6940   GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
6941   GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
6942
6943   // GL_SUNX_constant_data
6944   GL_UNPACK_CONSTANT_DATA_SUNX = $81D5;
6945   GL_TEXTURE_CONSTANT_DATA_SUNX = $81D6;
6946
6947   // GL_SUN_convolution_border_modes
6948   GL_WRAP_BORDER_SUN = $81D4;
6949
6950   // GL_SUN_global_alpha
6951   GL_GLOBAL_ALPHA_SUN = $81D9;
6952   GL_GLOBAL_ALPHA_FACTOR_SUN = $81DA;
6953
6954   // GL_SUN_mesh_array
6955   GL_QUAD_MESH_SUN = $8614;
6956   GL_TRIANGLE_MESH_SUN = $8615;
6957
6958   // GL_SUN_slice_accum
6959   GL_SLICE_ACCUM_SUN = $85CC;
6960
6961   // GL_SUN_triangle_list
6962   GL_RESTART_SUN = $0001;
6963   GL_REPLACE_MIDDLE_SUN = $0002;
6964   GL_REPLACE_OLDEST_SUN = $0003;
6965   GL_TRIANGLE_LIST_SUN = $81D7;
6966   GL_REPLACEMENT_CODE_SUN = $81D8;
6967   GL_REPLACEMENT_CODE_ARRAY_SUN = $85C0;
6968   GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = $85C1;
6969   GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = $85C2;
6970   GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = $85C3;
6971   GL_R1UI_V3F_SUN = $85C4;
6972   GL_R1UI_C4UB_V3F_SUN = $85C5;
6973   GL_R1UI_C3F_V3F_SUN = $85C6;
6974   GL_R1UI_N3F_V3F_SUN = $85C7;
6975   GL_R1UI_C4F_N3F_V3F_SUN = $85C8;
6976   GL_R1UI_T2F_V3F_SUN = $85C9;
6977   GL_R1UI_T2F_N3F_V3F_SUN = $85CA;
6978   GL_R1UI_T2F_C4F_N3F_V3F_SUN = $85CB;
6979
6980   // GL_WIN_phong_shading
6981   GL_PHONG_WIN = $80EA;
6982   GL_PHONG_HINT_WIN = $80EB;
6983
6984   // GL_WIN_specular_fog
6985   GL_FOG_SPECULAR_TEXTURE_WIN = $80EC;
6986
6987   // GL_ARB_vertex_shader
6988   GL_VERTEX_SHADER_ARB = $8B31;
6989   GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
6990   GL_MAX_VARYING_FLOATS_ARB = $8B4B;
6991   GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
6992   GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
6993   GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
6994   GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
6995
6996   // GL_KHR_blend_equation_advanced
6997   GL_MULTIPLY_KHR = $9294;
6998   GL_SCREEN_KHR = $9295;
6999   GL_OVERLAY_KHR = $9296;
7000   GL_DARKEN_KHR = $9297;
7001   GL_LIGHTEN_KHR = $9298;
7002   GL_COLORDODGE_KHR = $9299;
7003   GL_COLORBURN_KHR = $929A;
7004   GL_HARDLIGHT_KHR = $929B;
7005   GL_SOFTLIGHT_KHR = $929C;
7006   GL_DIFFERENCE_KHR = $929E;
7007   GL_EXCLUSION_KHR = $92A0;
7008   GL_HSL_HUE_KHR = $92AD;
7009   GL_HSL_SATURATION_KHR = $92AE;
7010   GL_HSL_COLOR_KHR = $92AF;
7011   GL_HSL_LUMINOSITY_KHR = $92B0;
7012
7013   // GL_KHR_blend_equation_advanced_coherent
7014   GL_BLEND_ADVANCED_COHERENT_KHR = $9285;
7015
7016   // GL_KHR_robustness
7017   GL_CONTEXT_ROBUST_ACCESS = $90F3;
7018
7019   // GL_ARB_fragment_shader
7020   GL_FRAGMENT_SHADER_ARB = $8B30;
7021   GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // 1.4
7022   GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = $8B8B; // 1.4
7023
7024   // GL_ARB_occlusion_query
7025   GL_SAMPLES_PASSED_ARB = $8914;
7026   GL_QUERY_COUNTER_BITS_ARB = $8864;
7027   GL_CURRENT_QUERY_ARB = $8865;
7028   GL_QUERY_RESULT_ARB = $8866;
7029   GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
7030
7031   // GL_ARB_pipeline_statistics_query
7032   GL_VERTICES_SUBMITTED_ARB         = $82EE;
7033   GL_PRIMITIVES_SUBMITTED_ARB       = $82EF;
7034   GL_VERTEX_SHADER_INVOCATIONS_ARB  = $82F0;
7035   GL_TESS_CONTROL_SHADER_PATCHES_ARB = $82F1;
7036   GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = $82F2;
7037   GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = $82F3;
7038   GL_FRAGMENT_SHADER_INVOCATIONS_ARB = $82F4;
7039   GL_COMPUTE_SHADER_INVOCATIONS_ARB = $82F5;
7040   GL_CLIPPING_INPUT_PRIMITIVES_ARB  = $82F6;
7041   GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = $82F7;
7042
7043   // GL_ARB_point_sprite
7044   GL_POINT_SPRITE_ARB = $8861;
7045   GL_COORD_REPLACE_ARB = $8862;
7046
7047   // GL_ARB_shading_language_100
7048   GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; // 1.4
7049
7050   // GL_ARB_shader_objects
7051   GL_PROGRAM_OBJECT_ARB = $8B40;
7052
7053   GL_OBJECT_TYPE_ARB = $8B4E;
7054   GL_OBJECT_SUBTYPE_ARB = $8B4F;
7055   GL_OBJECT_DELETE_STATUS_ARB = $8B80;
7056   GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
7057   GL_OBJECT_LINK_STATUS_ARB = $8B82;
7058   GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
7059   GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
7060   GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
7061   GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
7062   GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
7063   GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
7064
7065   GL_SHADER_OBJECT_ARB = $8B48;
7066
7067   GL_FLOAT_VEC2_ARB = $8B50;
7068   GL_FLOAT_VEC3_ARB = $8B51;
7069   GL_FLOAT_VEC4_ARB = $8B52;
7070   GL_INT_VEC2_ARB = $8B53;
7071   GL_INT_VEC3_ARB = $8B54;
7072   GL_INT_VEC4_ARB = $8B55;
7073   GL_BOOL_ARB = $8B56;
7074   GL_BOOL_VEC2_ARB = $8B57;
7075   GL_BOOL_VEC3_ARB = $8B58;
7076   GL_BOOL_VEC4_ARB = $8B59;
7077   GL_FLOAT_MAT2_ARB = $8B5A;
7078   GL_FLOAT_MAT3_ARB = $8B5B;
7079   GL_FLOAT_MAT4_ARB = $8B5C;
7080   GL_SAMPLER_1D_ARB = $8B5D;
7081   GL_SAMPLER_2D_ARB = $8B5E;
7082   GL_SAMPLER_3D_ARB = $8B5F;
7083   GL_SAMPLER_CUBE_ARB = $8B60;
7084   GL_SAMPLER_1D_SHADOW_ARB = $8B61;
7085   GL_SAMPLER_2D_SHADOW_ARB = $8B62;
7086   GL_SAMPLER_2D_RECT_ARB = $8B63;
7087   GL_SAMPLER_2D_RECT_SHADOW_ARB = $8B64;
7088
7089   // WGL_3DFX_multisample
7090   WGL_SAMPLE_BUFFERS_3DFX = $2060;
7091   WGL_SAMPLES_3DFX = $2061;
7092
7093   // WGL_ARB_buffer_region
7094   WGL_FRONT_COLOR_BUFFER_BIT_ARB = $00000001;
7095   WGL_BACK_COLOR_BUFFER_BIT_ARB = $00000002;
7096   WGL_DEPTH_BUFFER_BIT_ARB = $00000004;
7097   WGL_STENCIL_BUFFER_BIT_ARB = $00000008;
7098
7099   // WGL_ARB_context_flush_control
7100   WGL_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7101   WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7102   WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7103
7104   // WGL_ARB_make_current_read
7105   ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
7106   ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
7107
7108   // WGL_ARB_multisample
7109   WGL_SAMPLE_BUFFERS_ARB = $2041;
7110   WGL_SAMPLES_ARB = $2042;
7111
7112   // WGL_ARB_pbuffer
7113   WGL_DRAW_TO_PBUFFER_ARB = $202D;
7114   WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
7115   WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
7116   WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
7117   WGL_PBUFFER_LARGEST_ARB = $2033;
7118   WGL_PBUFFER_WIDTH_ARB = $2034;
7119   WGL_PBUFFER_HEIGHT_ARB = $2035;
7120   WGL_PBUFFER_LOST_ARB = $2036;
7121
7122   // WGL_ARB_pixel_format
7123   WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
7124   WGL_DRAW_TO_WINDOW_ARB = $2001;
7125   WGL_DRAW_TO_BITMAP_ARB = $2002;
7126   WGL_ACCELERATION_ARB = $2003;
7127   WGL_NEED_PALETTE_ARB = $2004;
7128   WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
7129   WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
7130   WGL_SWAP_METHOD_ARB = $2007;
7131   WGL_NUMBER_OVERLAYS_ARB = $2008;
7132   WGL_NUMBER_UNDERLAYS_ARB = $2009;
7133   WGL_TRANSPARENT_ARB = $200A;
7134   WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
7135   WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
7136   WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
7137   WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
7138   WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
7139   WGL_SHARE_DEPTH_ARB = $200C;
7140   WGL_SHARE_STENCIL_ARB = $200D;
7141   WGL_SHARE_ACCUM_ARB = $200E;
7142   WGL_SUPPORT_GDI_ARB = $200F;
7143   WGL_SUPPORT_OPENGL_ARB = $2010;
7144   WGL_DOUBLE_BUFFER_ARB = $2011;
7145   WGL_STEREO_ARB = $2012;
7146   WGL_PIXEL_TYPE_ARB = $2013;
7147   WGL_COLOR_BITS_ARB = $2014;
7148   WGL_RED_BITS_ARB = $2015;
7149   WGL_RED_SHIFT_ARB = $2016;
7150   WGL_GREEN_BITS_ARB = $2017;
7151   WGL_GREEN_SHIFT_ARB = $2018;
7152   WGL_BLUE_BITS_ARB = $2019;
7153   WGL_BLUE_SHIFT_ARB = $201A;
7154   WGL_ALPHA_BITS_ARB = $201B;
7155   WGL_ALPHA_SHIFT_ARB = $201C;
7156   WGL_ACCUM_BITS_ARB = $201D;
7157   WGL_ACCUM_RED_BITS_ARB = $201E;
7158   WGL_ACCUM_GREEN_BITS_ARB = $201F;
7159   WGL_ACCUM_BLUE_BITS_ARB = $2020;
7160   WGL_ACCUM_ALPHA_BITS_ARB = $2021;
7161   WGL_DEPTH_BITS_ARB = $2022;
7162   WGL_STENCIL_BITS_ARB = $2023;
7163   WGL_AUX_BUFFERS_ARB = $2024;
7164   WGL_NO_ACCELERATION_ARB = $2025;
7165   WGL_GENERIC_ACCELERATION_ARB = $2026;
7166   WGL_FULL_ACCELERATION_ARB = $2027;
7167   WGL_SWAP_EXCHANGE_ARB = $2028;
7168   WGL_SWAP_COPY_ARB = $2029;
7169   WGL_SWAP_UNDEFINED_ARB = $202A;
7170   WGL_TYPE_RGBA_ARB = $202B;
7171   WGL_TYPE_COLORINDEX_ARB = $202C;
7172
7173   // WGL_ARB_pixel_format_float
7174   WGL_RGBA_FLOAT_MODE_ARB = $8820;
7175   WGL_CLAMP_VERTEX_COLOR_ARB = $891A;
7176   WGL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
7177   WGL_CLAMP_READ_COLOR_ARB = $891C;
7178   WGL_FIXED_ONLY_ARB = $891D;
7179
7180   // WGL_ARB_render_texture
7181   WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
7182   WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
7183   WGL_TEXTURE_FORMAT_ARB = $2072;
7184   WGL_TEXTURE_TARGET_ARB = $2073;
7185   WGL_MIPMAP_TEXTURE_ARB = $2074;
7186   WGL_TEXTURE_RGB_ARB = $2075;
7187   WGL_TEXTURE_RGBA_ARB = $2076;
7188   WGL_NO_TEXTURE_ARB = $2077;
7189   WGL_TEXTURE_CUBE_MAP_ARB = $2078;
7190   WGL_TEXTURE_1D_ARB = $2079;
7191   WGL_TEXTURE_2D_ARB = $207A;
7192   WGL_MIPMAP_LEVEL_ARB = $207B;
7193   WGL_CUBE_MAP_FACE_ARB = $207C;
7194   WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
7195   WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
7196   WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
7197   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
7198   WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
7199   WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
7200   WGL_FRONT_LEFT_ARB = $2083;
7201   WGL_FRONT_RIGHT_ARB = $2084;
7202   WGL_BACK_LEFT_ARB = $2085;
7203   WGL_BACK_RIGHT_ARB = $2086;
7204   WGL_AUX0_ARB = $2087;
7205   WGL_AUX1_ARB = $2088;
7206   WGL_AUX2_ARB = $2089;
7207   WGL_AUX3_ARB = $208A;
7208   WGL_AUX4_ARB = $208B;
7209   WGL_AUX5_ARB = $208C;
7210   WGL_AUX6_ARB = $208D;
7211   WGL_AUX7_ARB = $208E;
7212   WGL_AUX8_ARB = $208F;
7213   WGL_AUX9_ARB = $2090;
7214
7215   // WGL_ARB_robustness_application_isolation
7216   WGL_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7217
7218   // WGL_ARB_create_context
7219   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7220   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7221   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7222   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7223   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7224   WGL_CONTEXT_FLAGS_ARB = $2094;
7225   ERROR_INVALID_VERSION_ARB = $2095;
7226
7227   // WGL_ARB_create_context_profile
7228   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7229   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7230   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7231   ERROR_INVALID_PROFILE_ARB = $2096;
7232
7233   // WGL_ARB_framebuffer_sRGB
7234   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7235
7236   // WGL_ARB_create_context_robustness
7237   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7238   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7239   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7240   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7241
7242   // WGL_ATI_pixel_format_float
7243   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7244   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7245   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7246
7247   // WGL_AMD_gpu_association
7248   WGL_GPU_VENDOR_AMD = $1F00;
7249   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7250   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7251   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7252   WGL_GPU_RAM_AMD = $21A3;
7253   WGL_GPU_CLOCK_AMD = $21A4;
7254   WGL_GPU_NUM_PIPES_AMD = $21A5;
7255   WGL_GPU_NUM_SIMD_AMD = $21A6;
7256   WGL_GPU_NUM_RB_AMD = $21A7;
7257   WGL_GPU_NUM_SPI_AMD = $21A8;
7258
7259   // WGL_EXT_depth_float
7260   WGL_DEPTH_FLOAT_EXT = $2040;
7261
7262   // WGL_EXT_make_current_read
7263   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7264
7265   // WGL_EXT_multisample
7266   WGL_SAMPLE_BUFFERS_EXT = $2041;
7267   WGL_SAMPLES_EXT = $2042;
7268
7269   // WGL_EXT_pbuffer
7270   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7271   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7272   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7273   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7274   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7275   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7276   WGL_PBUFFER_LARGEST_EXT = $2033;
7277   WGL_PBUFFER_WIDTH_EXT = $2034;
7278   WGL_PBUFFER_HEIGHT_EXT = $2035;
7279
7280   // WGL_EXT_pixel_format
7281   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7282   WGL_DRAW_TO_WINDOW_EXT = $2001;
7283   WGL_DRAW_TO_BITMAP_EXT = $2002;
7284   WGL_ACCELERATION_EXT = $2003;
7285   WGL_NEED_PALETTE_EXT = $2004;
7286   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7287   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7288   WGL_SWAP_METHOD_EXT = $2007;
7289   WGL_NUMBER_OVERLAYS_EXT = $2008;
7290   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7291   WGL_TRANSPARENT_EXT = $200A;
7292   WGL_TRANSPARENT_VALUE_EXT = $200B;
7293   WGL_SHARE_DEPTH_EXT = $200C;
7294   WGL_SHARE_STENCIL_EXT = $200D;
7295   WGL_SHARE_ACCUM_EXT = $200E;
7296   WGL_SUPPORT_GDI_EXT = $200F;
7297   WGL_SUPPORT_OPENGL_EXT = $2010;
7298   WGL_DOUBLE_BUFFER_EXT = $2011;
7299   WGL_STEREO_EXT = $2012;
7300   WGL_PIXEL_TYPE_EXT = $2013;
7301   WGL_COLOR_BITS_EXT = $2014;
7302   WGL_RED_BITS_EXT = $2015;
7303   WGL_RED_SHIFT_EXT = $2016;
7304   WGL_GREEN_BITS_EXT = $2017;
7305   WGL_GREEN_SHIFT_EXT = $2018;
7306   WGL_BLUE_BITS_EXT = $2019;
7307   WGL_BLUE_SHIFT_EXT = $201A;
7308   WGL_ALPHA_BITS_EXT = $201B;
7309   WGL_ALPHA_SHIFT_EXT = $201C;
7310   WGL_ACCUM_BITS_EXT = $201D;
7311   WGL_ACCUM_RED_BITS_EXT = $201E;
7312   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7313   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7314   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7315   WGL_DEPTH_BITS_EXT = $2022;
7316   WGL_STENCIL_BITS_EXT = $2023;
7317   WGL_AUX_BUFFERS_EXT = $2024;
7318   WGL_NO_ACCELERATION_EXT = $2025;
7319   WGL_GENERIC_ACCELERATION_EXT = $2026;
7320   WGL_FULL_ACCELERATION_EXT = $2027;
7321   WGL_SWAP_EXCHANGE_EXT = $2028;
7322   WGL_SWAP_COPY_EXT = $2029;
7323   WGL_SWAP_UNDEFINED_EXT = $202A;
7324   WGL_TYPE_RGBA_EXT = $202B;
7325   WGL_TYPE_COLORINDEX_EXT = $202C;
7326
7327   // WGL_I3D_digital_video_control
7328   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7329   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7330   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7331   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7332
7333   // WGL_I3D_gamma
7334   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7335   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7336
7337   // WGL_I3D_genlock
7338   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7339   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7340   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7341   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7342   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7343   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7344   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7345   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7346   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7347
7348   // WGL_I3D_image_buffer
7349   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7350   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7351
7352   // WGL_NV_float_buffer
7353   WGL_FLOAT_COMPONENTS_NV = $20B0;
7354   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7355   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7356   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7357   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7358   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7359   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7360   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7361   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7362
7363   // WGL_NV_render_depth_texture
7364   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7365   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7366   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7367   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7368   WGL_DEPTH_COMPONENT_NV = $20A7;
7369
7370   // WGL_NV_render_texture_rectangle
7371   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7372   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7373   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7374
7375   // WGL_NV_present_video
7376   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7377
7378   // WGL_NV_video_output
7379   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7380   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7381   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7382   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7383   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7384   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7385   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7386   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7387   WGL_VIDEO_OUT_FRAME = $20C8;
7388   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7389   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7390   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7391   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7392
7393   // WGL_NV_gpu_affinity
7394   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7395   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7396
7397   // WGL_NV_video_capture
7398   WGL_UNIQUE_ID_NV = $20CE;
7399   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7400
7401   // WGL_NV_multisample_coverage
7402   WGL_COVERAGE_SAMPLES_NV = $2042;
7403   WGL_COLOR_SAMPLES_NV = $20B9;
7404
7405   // WGL_EXT_create_context_es2_profile
7406   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7407
7408   // WGL_NV_DX_interop
7409   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7410   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7411   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7412
7413   // WIN_draw_range_elements
7414   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7415   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7416
7417   // GLX 1.1 and later:
7418   GLX_VENDOR = 1;
7419   GLX_VERSION = 2;
7420   GLX_EXTENSIONS = 3;
7421
7422   GLX_USE_GL = 1;
7423   GLX_BUFFER_SIZE = 2;
7424   GLX_LEVEL = 3;
7425   GLX_RGBA = 4;
7426   GLX_DOUBLEBUFFER = 5;
7427   GLX_STEREO = 6;
7428   GLX_AUX_BUFFERS = 7;
7429   GLX_RED_SIZE = 8;
7430   GLX_GREEN_SIZE = 9;
7431   GLX_BLUE_SIZE = 10;
7432   GLX_ALPHA_SIZE = 11;
7433   GLX_DEPTH_SIZE = 12;
7434   GLX_STENCIL_SIZE = 13;
7435   GLX_ACCUM_RED_SIZE = 14;
7436   GLX_ACCUM_GREEN_SIZE = 15;
7437   GLX_ACCUM_BLUE_SIZE = 16;
7438   GLX_ACCUM_ALPHA_SIZE = 17;
7439
7440   // GLX_VERSION_1_3
7441   GLX_WINDOW_BIT = $00000001;
7442   GLX_PIXMAP_BIT = $00000002;
7443   GLX_PBUFFER_BIT = $00000004;
7444   GLX_RGBA_BIT = $00000001;
7445   GLX_COLOR_INDEX_BIT = $00000002;
7446   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7447   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7448   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7449   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7450   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7451   GLX_AUX_BUFFERS_BIT = $00000010;
7452   GLX_DEPTH_BUFFER_BIT = $00000020;
7453   GLX_STENCIL_BUFFER_BIT = $00000040;
7454   GLX_ACCUM_BUFFER_BIT = $00000080;
7455   GLX_CONFIG_CAVEAT = $20;
7456   GLX_X_VISUAL_TYPE = $22;
7457   GLX_TRANSPARENT_TYPE = $23;
7458   GLX_TRANSPARENT_INDEX_VALUE = $24;
7459   GLX_TRANSPARENT_RED_VALUE = $25;
7460   GLX_TRANSPARENT_GREEN_VALUE = $26;
7461   GLX_TRANSPARENT_BLUE_VALUE = $27;
7462   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7463   GLX_DONT_CARE = $FFFFFFFF;
7464   GLX_NONE = $8000;
7465   GLX_SLOW_CONFIG = $8001;
7466   GLX_TRUE_COLOR = $8002;
7467   GLX_DIRECT_COLOR = $8003;
7468   GLX_PSEUDO_COLOR = $8004;
7469   GLX_STATIC_COLOR = $8005;
7470   GLX_GRAY_SCALE = $8006;
7471   GLX_STATIC_GRAY = $8007;
7472   GLX_TRANSPARENT_RGB = $8008;
7473   GLX_TRANSPARENT_INDEX = $8009;
7474   GLX_VISUAL_ID = $800B;
7475   GLX_SCREEN = $800C;
7476   GLX_NON_CONFORMANT_CONFIG = $800D;
7477   GLX_DRAWABLE_TYPE = $8010;
7478   GLX_RENDER_TYPE = $8011;
7479   GLX_X_RENDERABLE = $8012;
7480   GLX_FBCONFIG_ID = $8013;
7481   GLX_RGBA_TYPE = $8014;
7482   GLX_COLOR_INDEX_TYPE = $8015;
7483   GLX_MAX_PBUFFER_WIDTH = $8016;
7484   GLX_MAX_PBUFFER_HEIGHT = $8017;
7485   GLX_MAX_PBUFFER_PIXELS = $8018;
7486   GLX_PRESERVED_CONTENTS = $801B;
7487   GLX_LARGEST_PBUFFER = $801C;
7488   GLX_WIDTH = $801D;
7489   GLX_HEIGHT = $801E;
7490   GLX_EVENT_MASK = $801F;
7491   GLX_DAMAGED = $8020;
7492   GLX_SAVED = $8021;
7493   GLX_WINDOW = $8022;
7494   GLX_PBUFFER = $8023;
7495   GLX_PBUFFER_HEIGHT = $8040;
7496   GLX_PBUFFER_WIDTH = $8041;
7497
7498   // GLX_VERSION_1_4
7499   GLX_SAMPLE_BUFFERS = 100000;
7500   GLX_SAMPLES = 100001;
7501
7502   // GLX_ARB_multisample
7503   GLX_SAMPLE_BUFFERS_ARB = 100000;
7504   GLX_SAMPLES_ARB = 100001;
7505
7506   // GLX_ARB_robustness_application_isolation
7507   GLX_CONTEXT_RESET_ISOLATION_BIT_ARB = $00000008;
7508
7509   // GLX_ARB_fbconfig_float
7510   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7511   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7512
7513   // GLX_ARB_context_flush_control
7514   GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7515   GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7516   GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7517
7518   // GLX_ARB_create_context
7519   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7520   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7521   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7522   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7523   GLX_CONTEXT_FLAGS_ARB = $2094;
7524
7525   // GLX_ARB_create_context_profile
7526   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7527   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7528   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7529
7530   // GLX_ARB_vertex_buffer_object
7531   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7532
7533   // GLX_ARB_framebuffer_sRGB
7534   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7535
7536   // GLX_ARB_create_context_robustness
7537   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7538   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7539   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7540   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7541
7542   // GLX_EXT_visual_info
7543   GLX_X_VISUAL_TYPE_EXT = $22;
7544   GLX_TRANSPARENT_TYPE_EXT = $23;
7545   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7546   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7547   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7548   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7549   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7550   GLX_NONE_EXT = $8000;
7551   GLX_TRUE_COLOR_EXT = $8002;
7552   GLX_DIRECT_COLOR_EXT = $8003;
7553   GLX_PSEUDO_COLOR_EXT = $8004;
7554   GLX_STATIC_COLOR_EXT = $8005;
7555   GLX_GRAY_SCALE_EXT = $8006;
7556   GLX_STATIC_GRAY_EXT = $8007;
7557   GLX_TRANSPARENT_RGB_EXT = $8008;
7558   GLX_TRANSPARENT_INDEX_EXT = $8009;
7559
7560   // GLX_EXT_visual_rating
7561   GLX_VISUAL_CAVEAT_EXT = $20;
7562   GLX_SLOW_VISUAL_EXT = $8001;
7563   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7564   (* reuse GLX_NONE_EXT *)
7565
7566   // GLX_EXT_import_context
7567   GLX_SHARE_CONTEXT_EXT = $800A;
7568   GLX_VISUAL_ID_EXT = $800B;
7569   GLX_SCREEN_EXT = $800C;
7570
7571   // GLX_EXT_fbconfig_packed_float
7572 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7573 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7574
7575   // GLX_EXT_framebuffer_sRGB
7576 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7577
7578   // GLX_EXT_texture_from_pixmap
7579   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7580   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7581   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7582   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7583   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7584   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7585   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7586   GLX_Y_INVERTED_EXT = $20D4;
7587   GLX_TEXTURE_FORMAT_EXT = $20D5;
7588   GLX_TEXTURE_TARGET_EXT = $20D6;
7589   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7590   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7591   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7592   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7593   GLX_TEXTURE_1D_EXT = $20DB;
7594   GLX_TEXTURE_2D_EXT = $20DC;
7595   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7596   GLX_FRONT_LEFT_EXT = $20DE;
7597   GLX_FRONT_RIGHT_EXT = $20DF;
7598   GLX_BACK_LEFT_EXT = $20E0;
7599   GLX_BACK_RIGHT_EXT = $20E1;
7600   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7601   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7602   GLX_AUX0_EXT = $20E2;
7603   GLX_AUX1_EXT = $20E3;
7604   GLX_AUX2_EXT = $20E4;
7605   GLX_AUX3_EXT = $20E5;
7606   GLX_AUX4_EXT = $20E6;
7607   GLX_AUX5_EXT = $20E7;
7608   GLX_AUX6_EXT = $20E8;
7609   GLX_AUX7_EXT = $20E9;
7610   GLX_AUX8_EXT = $20EA;
7611   GLX_AUX9_EXT = $20EB;
7612
7613   // GLX_EXT_swap_control
7614   GLX_SWAP_INTERVAL_EXT = $20F1;
7615   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7616
7617   // GLX_EXT_create_context_es2_profile
7618   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7619
7620   // GL_EXT_Late_Swaps
7621   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7622
7623   // GLU
7624   GLU_INVALID_ENUM = 100900;
7625   GLU_INVALID_VALUE = 100901;
7626   GLU_OUT_OF_MEMORY = 100902;
7627   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7628   GLU_VERSION = 100800;
7629   GLU_EXTENSIONS = 100801;
7630   GLU_TRUE = GL_TRUE;
7631   GLU_FALSE = GL_FALSE;
7632   GLU_SMOOTH = 100000;
7633   GLU_FLAT = 100001;
7634   GLU_NONE = 100002;
7635   GLU_POINT = 100010;
7636   GLU_LINE = 100011;
7637   GLU_FILL = 100012;
7638   GLU_SILHOUETTE = 100013;
7639   GLU_OUTSIDE = 100020;
7640   GLU_INSIDE = 100021;
7641   GLU_TESS_MAX_COORD = 1.0E150;
7642   GLU_TESS_WINDING_RULE = 100140;
7643   GLU_TESS_BOUNDARY_ONLY = 100141;
7644   GLU_TESS_TOLERANCE = 100142;
7645   GLU_TESS_WINDING_ODD = 100130;
7646   GLU_TESS_WINDING_NONZERO = 100131;
7647   GLU_TESS_WINDING_POSITIVE = 100132;
7648   GLU_TESS_WINDING_NEGATIVE = 100133;
7649   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7650   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7651   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7652   GLU_TESS_END = 100102; // TGLUTessEndProc
7653   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7654   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7655   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7656   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7657   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7658   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7659   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7660   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7661   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7662   GLU_TESS_ERROR1 = 100151;
7663   GLU_TESS_ERROR2 = 100152;
7664   GLU_TESS_ERROR3 = 100153;
7665   GLU_TESS_ERROR4 = 100154;
7666   GLU_TESS_ERROR5 = 100155;
7667   GLU_TESS_ERROR6 = 100156;
7668   GLU_TESS_ERROR7 = 100157;
7669   GLU_TESS_ERROR8 = 100158;
7670   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7671   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7672   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7673   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7674   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7675   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7676   GLU_AUTO_LOAD_MATRIX = 100200;
7677   GLU_CULLING = 100201;
7678   GLU_SAMPLING_TOLERANCE = 100203;
7679   GLU_DISPLAY_MODE = 100204;
7680   GLU_PARAMETRIC_TOLERANCE = 100202;
7681   GLU_SAMPLING_METHOD = 100205;
7682   GLU_U_STEP = 100206;
7683   GLU_V_STEP = 100207;
7684   GLU_PATH_LENGTH = 100215;
7685   GLU_PARAMETRIC_ERROR = 100216;
7686   GLU_DOMAIN_DISTANCE = 100217;
7687   GLU_MAP1_TRIM_2 = 100210;
7688   GLU_MAP1_TRIM_3 = 100211;
7689   GLU_OUTLINE_POLYGON = 100240;
7690   GLU_OUTLINE_PATCH = 100241;
7691   GLU_NURBS_ERROR1 = 100251;
7692   GLU_NURBS_ERROR2 = 100252;
7693   GLU_NURBS_ERROR3 = 100253;
7694   GLU_NURBS_ERROR4 = 100254;
7695   GLU_NURBS_ERROR5 = 100255;
7696   GLU_NURBS_ERROR6 = 100256;
7697   GLU_NURBS_ERROR7 = 100257;
7698   GLU_NURBS_ERROR8 = 100258;
7699   GLU_NURBS_ERROR9 = 100259;
7700   GLU_NURBS_ERROR10 = 100260;
7701   GLU_NURBS_ERROR11 = 100261;
7702   GLU_NURBS_ERROR12 = 100262;
7703   GLU_NURBS_ERROR13 = 100263;
7704   GLU_NURBS_ERROR14 = 100264;
7705   GLU_NURBS_ERROR15 = 100265;
7706   GLU_NURBS_ERROR16 = 100266;
7707   GLU_NURBS_ERROR17 = 100267;
7708   GLU_NURBS_ERROR18 = 100268;
7709   GLU_NURBS_ERROR19 = 100269;
7710   GLU_NURBS_ERROR20 = 100270;
7711   GLU_NURBS_ERROR21 = 100271;
7712   GLU_NURBS_ERROR22 = 100272;
7713   GLU_NURBS_ERROR23 = 100273;
7714   GLU_NURBS_ERROR24 = 100274;
7715   GLU_NURBS_ERROR25 = 100275;
7716   GLU_NURBS_ERROR26 = 100276;
7717   GLU_NURBS_ERROR27 = 100277;
7718   GLU_NURBS_ERROR28 = 100278;
7719   GLU_NURBS_ERROR29 = 100279;
7720   GLU_NURBS_ERROR30 = 100280;
7721   GLU_NURBS_ERROR31 = 100281;
7722   GLU_NURBS_ERROR32 = 100282;
7723   GLU_NURBS_ERROR33 = 100283;
7724   GLU_NURBS_ERROR34 = 100284;
7725   GLU_NURBS_ERROR35 = 100285;
7726   GLU_NURBS_ERROR36 = 100286;
7727   GLU_NURBS_ERROR37 = 100287;
7728   GLU_CW = 100120;
7729   GLU_CCW = 100121;
7730   GLU_INTERIOR = 100122;
7731   GLU_EXTERIOR = 100123;
7732   GLU_UNKNOWN = 100124;
7733   GLU_BEGIN = GLU_TESS_BEGIN;
7734   GLU_VERTEX = GLU_TESS_VERTEX;
7735   GLU_END = GLU_TESS_END;
7736   GLU_ERROR = GLU_TESS_ERROR;
7737   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7738
7739 type
7740   // GL_VERSION_1_0
7741   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7742   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7743   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7744   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7745   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7746   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7747   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7748   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7749   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7750   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7751   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7752   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}
7753   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}
7754   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7755   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7756   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7757   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7758   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7759   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7760   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7761   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7762   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7763   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7764   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7765   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7766   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7767   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7768   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7769   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7770   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7771   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7772   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7773   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7774   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7775   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7776   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7777   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7778   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7779   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7780   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7781   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7782   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7783   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7784   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7785   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7786   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7787   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7788   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7789
7790   // GL_VERSION_1_1
7791   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7792   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7793   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7794   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7795   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7796   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}
7797   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7798   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}
7799   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7800   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}
7801   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7802   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7803   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7804
7805 {$ifdef DGL_DEPRECATED}
7806   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7807   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7808   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7809   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7810   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
7811   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7812   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7813   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7814   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7815   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7816   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7817   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7818   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7819   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7820   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7821   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7822   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7823   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7824   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7825   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7826   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7827   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7828   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7829   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7830   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7831   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7832   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7833   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7834   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7835   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7836   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7837   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7838   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7839   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7840   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7841   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7842   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7843   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7844   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7845   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7846   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7847   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7848   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7849   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7850   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7851   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7852   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7853   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7854   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7855   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7856   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7857   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7858   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7859   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7860   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7861   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7862   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7863   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7864   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7865   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7866   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7867   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7868   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7869   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7870   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7871   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7872   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7873   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7874   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7875   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7876   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7877   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7878   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7879   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7880   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7881   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7882   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7883   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7884   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7885   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7886   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7887   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7888   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7889   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7890   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7891   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7892   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7893   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7894   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7895   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7896   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7897   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7898   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7899   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7900   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7901   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7902   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7903   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7904   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7905   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7906   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7907   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7908   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7909   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7910   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7911   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7912   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7913   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7914   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7915   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7916   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7917   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7918   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7919   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7920   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7921   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7922   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7923   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7924   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7925   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7926   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7927   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7928   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7929   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}
7930   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}
7931   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7932   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7933   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7934   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7935   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7936   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7937   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7938   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7939   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7940   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7941   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7942   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7943   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7944   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7945   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7946   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7947   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7948   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7949   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7950   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7951   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7952   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7953   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7954   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7955   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7956   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7957   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7958   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7959   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7960   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7961   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7962   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7963   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7964   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7965   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7966   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7967   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7968   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7969   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7970   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7971   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7972   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7973   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7974   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7975   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7976   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7977   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7978   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7979   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7980   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7981   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7982   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7983   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7984   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7985   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7986   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7987   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7988   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7999   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8000   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8001   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8037   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8049   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8050   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8052   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054
8055
8056   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8057   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8058   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8064   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8065   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8066   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8072   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8073   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8078   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8079   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8080   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083 {$endif}
8084
8085   // GL_VERSION_1_2
8086   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8087   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   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}
8090   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}
8091   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}
8092 {$ifdef DGL_DEPRECATED}
8093   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8094   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8095   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8100   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8101   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8102   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8103   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8106   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8107   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8108   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8109   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   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}
8115   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8120   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8121   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8122   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8125 {$endif}
8126
8127   // GL_VERSION_1_3
8128   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8129   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   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}
8131   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}
8132   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   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}
8134   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}
8135   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8136   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8137 {$ifdef DGL_DEPRECATED}
8138   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8141   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8142   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8143   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8144   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8145   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8147   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8148   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8149   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8151   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8152   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8170   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8171   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8172   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175 {$endif}
8176
8177   // GL_VERSION_1_4
8178   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8180   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8185 {$ifdef DGL_DEPRECATED}
8186   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8187   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8192   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8193   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8194   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8195   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8219   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8220   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8221   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224 {$endif}
8225
8226   // GL_VERSION_1_5
8227   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8234   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8235   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8236   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8241   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8242   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8243   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246
8247   // GL_VERSION_2_0
8248   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8256   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8257   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8258   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8259   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263   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}
8264   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}
8265   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8281   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8302   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8331   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8332   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8335   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8336   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8337   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8338   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8339   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340
8341   // GL_VERSION_2_1
8342   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8343   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8344   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8345   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8346   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8347   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8348
8349   // GL_VERSION_3_0
8350   { OpenGL 3.0 also reuses entry points from these extensions: }
8351   { ARB_framebuffer_object }
8352   { ARB_map_buffer_range }
8353   { ARB_vertex_array_object }
8354   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8357   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8358   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8359   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8360   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8361   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8362   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8363   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8364   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8365   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8366   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8367   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8368   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8369   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8370   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8373   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8374   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8378   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8381   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8382   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8407   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8408   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8411   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8412
8413   // GL_VERSION_2_1
8414   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8415   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8416   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}
8417
8418   // GL_VERSION_3_1
8419   { OpenGL 3.1 also reuses entry points from these extensions: }
8420   { ARB_copy_buffer }
8421   { ARB_uniform_buffer_object }
8422   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8423   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8424   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8425   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8426
8427   // GL_VERSION_3_2
8428   { OpenGL 3.2 also reuses entry points from these extensions: }
8429   { ARB_draw_elements_base_vertex }
8430   { ARB_provoking_vertex }
8431   { ARB_sync }
8432   { ARB_texture_multisample }
8433   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8434   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8435   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8436 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8437
8438   // GL_VERSION_3_3
8439   { OpenGL 3.3 also reuses entry points from these extensions: }
8440   { ARB_blend_func_extended }
8441   { ARB_sampler_objects }
8442   { ARB_explicit_attrib_location, but it has none }
8443   { ARB_occlusion_query2 (no entry points) }
8444   { ARB_shader_bit_encoding (no entry points) }
8445   { ARB_texture_rgb10_a2ui (no entry points) }
8446   { ARB_texture_swizzle (no entry points) }
8447   { ARB_timer_query }
8448   { ARB_vertex_type_2_10_10_10_rev }
8449   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8450
8451   // GL_VERSION_4_0
8452   { OpenGL 4.0 also reuses entry points from these extensions: }
8453   { ARB_texture_query_lod (no entry points) }
8454   { ARB_draw_indirect }
8455   { ARB_gpu_shader5 (no entry points) }
8456   { ARB_gpu_shader_fp64 }
8457   { ARB_shader_subroutine }
8458   { ARB_tessellation_shader }
8459   { ARB_texture_buffer_object_rgb32 (no entry points) }
8460   { ARB_texture_cube_map_array (no entry points) }
8461   { ARB_texture_gather (no entry points) }
8462   { ARB_transform_feedback2 }
8463   { ARB_transform_feedback3 }
8464   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8465   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8466   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8467   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8468   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8469
8470   // GL_VERSION_4_1
8471   { OpenGL 4.1 also reuses entry points from these extensions: }
8472   { ARB_ES2_compatibility }
8473   { ARB_get_program_binary }
8474   { ARB_separate_shader_objects }
8475   { ARB_shader_precision (no entry points) }
8476   { ARB_vertex_attrib_64bit }
8477   { ARB_viewport_array }
8478
8479   // GL_3DFX_tbuffer
8480   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8481
8482   // GL_APPLE_element_array
8483   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8484   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8485   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8486   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8487   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8488
8489   // GL_APPLE_fence
8490   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8491   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8492   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8493   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8494   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8495   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8496   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8497   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8498
8499   // GL_APPLE_vertex_array_object
8500   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8504
8505   // GL_APPLE_vertex_array_range
8506   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8508   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8509
8510   // GL_APPLE_texture_range
8511   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513
8514   // GL_APPLE_vertex_program_evaluators
8515   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8516   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8517   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8518   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8519   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8520   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}
8521   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}
8522
8523   // GL_APPLE_object_purgeable
8524   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8525   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8527
8528   // GL_ARB_matrix_palette
8529   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8530   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8531   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8532   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8533   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534
8535   // GL_ARB_multisample
8536   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8537
8538   // GL_ARB_multitexture
8539   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8540   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8544   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8545   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8546   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8547   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8548   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8549   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8552   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8553   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8555   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8568   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8569   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8572   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8573
8574   // GL_ARB_point_parameters
8575   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8577
8578   // GL_ARB_texture_compression
8579   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}
8580   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}
8581   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8582   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}
8583   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}
8584   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586
8587   // GL_ARB_transpose_matrix
8588   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8589   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8590   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8591   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8592
8593   // GL_ARB_vertex_blend
8594   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8595   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8596   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8597   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8598   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8599   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8600   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8601   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8602   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8603   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8604
8605   // GL_ARB_vertex_buffer_object
8606   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8608   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8609   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8610   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8612   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8613   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8614   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8615   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8616   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617
8618   // GL_ARB_vertex_program
8619   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8620   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8621   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8622   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8627   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8628   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8635   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8660   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8664   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8665   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8666   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8667   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8668   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8674   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8675   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8676   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8677   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8678   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8679   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8680   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681
8682   // GL_ARB_window_pos
8683   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8684   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8685   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8686   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8687   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8688   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8689   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8690   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8691   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8692   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8693   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8694   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8695   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8696   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8697   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8698   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8699
8700   // GL_ARB_draw_buffers
8701   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8702
8703   // GL_ARB_color_buffer_float
8704   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8705
8706   // GL_ARB_vertex_shader
8707   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}
8708   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8709   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8710
8711   // GL_ARB_shader_objects
8712   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8713   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8714   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8715   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8716   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8717   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8718   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8719   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8720   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8721   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8722   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8723   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8724   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8725   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8726   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8727   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8728   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8729   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8730   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8736   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8737   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8742   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8745   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8746   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8747   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}
8748   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751
8752   // GL_ARB_Occlusion_Query
8753   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8756   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8757   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8758   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8760   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8761
8762   // GL_ARB_draw_instanced
8763   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765
8766   // GL_ARB_framebuffer_object
8767   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8768   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8769   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8770   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8771   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8772   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8773   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8775   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8776   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8777   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8778   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8779   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8780   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8781   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8782   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8783   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8784   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}
8785   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787
8788   // GL_ARB_geometry_shader4
8789   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8791   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8792   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793
8794   // GL_ARB_instanced_arrays
8795   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8796
8797   // GL_ARB_map_buffer_range
8798   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8799   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800
8801   // GL_ARB_texture_buffer_object
8802   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8803
8804   // GL_ARB_vertex_array_object
8805   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8806   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8807   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8808   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809
8810   // GL_ARB_uniform_buffer_object
8811   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8812   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8813   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8814   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8815   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8816   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8817   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8818
8819   // GL_ARB_copy_buffer
8820   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8821
8822   // GL_ARB_draw_elements_base_vertex
8823   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8824   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8825   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8826   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8827
8828   // GL_ARB_provoking_vertex
8829   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8830
8831   // GL_ARB_sync
8832   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8833   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8834   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8835   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8836   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8837   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8838   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8839
8840   // GL_ARB_texture_multisample
8841   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8842   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8845
8846   // GL_ARB_draw_buffers_blend
8847   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8848   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8849   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8850   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8851
8852   // GL_ARB_sample_shading
8853   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8854
8855   // GL_ARB_shading_language_include
8856   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8857   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8858   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8860   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8861   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8862
8863   // GL_ARB_blend_func_extended
8864   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8865   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8866
8867   // GL_ARB_sampler_objects
8868   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8869   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8870   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8872   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8873   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8876   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8877   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8878   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8880   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8881   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8882
8883   // GL_ARB_timer_query
8884   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8885   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887
8888   // GL_ARB_vertex_type_2_10_10_10_rev
8889   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8892   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8893   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8897   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8898   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8899   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8900   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8905   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8922   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8923   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8926   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8927
8928   // GL_ARB_draw_indirect
8929   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931
8932   // GL_ARB_gpu_shader_fp64
8933   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8937   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8938   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8941   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8942   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8943   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8945   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8946   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8947   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8948   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8949   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8950   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951
8952   // GL_ARB_shader_subroutine
8953   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8954   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8956   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8957   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8958   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8960   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8961
8962   // GL_ARB_tessellation_shader
8963   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965
8966   // GL_ARB_transform_feedback2
8967   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8968   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8969   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8970   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8971   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8972   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8973   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974
8975   // GL_ARB_transform_feedback3
8976   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8977   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8978   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8979   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8980
8981   // GL_ARB_ES2_compatibility
8982   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8983   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8984   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8985   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8987
8988   // GL_ARB_get_program_binary
8989   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8990   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8991   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8992
8993   // GL_ARB_separate_shader_objects
8994   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8995   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8997   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8998   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8999   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9002   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9003   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9004   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9005   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9008   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9009   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9010   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9013   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9034   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9035   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9041   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9044   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9048   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9049   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9050   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9051   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9052   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054
9055   // GL_ARB_vertex_attrib_64bit
9056   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9057   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9061   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9062   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9064   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9065   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9066
9067   // GL_ARB_viewport_array
9068   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9069   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9070   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9071   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9072   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9073   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9074   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9075   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9076   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9077   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9078
9079   // GL 4.2
9080
9081   // GL_ARB_base_instance
9082   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9084   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9085
9086   // GL_ARB_transform_feedback_instanced
9087   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9088   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9089
9090   // GL_ARB_internalformat_query
9091   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9092
9093   // GL_ARB_shader_atomic_counters
9094   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9095
9096   /// GL_ARB_shader_image_load_store
9097   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9098   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9099
9100   // GL_ARB_texture_storage
9101   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9102   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9103   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9104   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9105   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9106   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9107
9108
9109   // GL 4.3
9110
9111   // GL_KHR_debug
9112   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9113   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9114   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9115   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}
9116   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9117   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9118   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9119   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9120   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9121   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9122
9123   // GL_ARB_clear_buffer_object
9124   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9125   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9126   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9127   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9128
9129   // GL_ARB_compute_shader 1
9130   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9131   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9132
9133   // GL_ARB_copy_image
9134   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}
9135
9136   // GL_ARB_debug_group
9137   // ARB_debug_group reuses entry points from KHR_debug
9138
9139   // GL_ARB_debug_label
9140   // ARB_debug_label reuses entry points from KHR_debug
9141
9142   // GL_ARB_debug_output2
9143
9144   // GL_ARB_ES3_compatibility
9145
9146   // GL_ARB_explicit_uniform_location
9147
9148   // GL_ARB_fragment_layer_viewport
9149
9150   // GL_ARB_framebuffer_no_attachments
9151   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9152   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9153   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9154   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9155
9156   // GL_ARB_internalformat_query2
9157   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9158
9159   // GL_ARB_invalidate_subdata
9160   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}
9161   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9162   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9163   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9164   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9165   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9166
9167   // GL_ARB_multi_draw_indirect
9168   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9169   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9170
9171   // GL_ARB_program_interface_query
9172   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9173   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9174   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9175   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}
9176   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9177   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9178
9179   // GL_ARB_robust_buffer_access_behavior
9180
9181   // GL_ARB_shader_image_size
9182
9183   // GL_ARB_shader_storage_buffer_object
9184   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9185
9186   // GL_ARB_stencil_texturing
9187
9188   // GL_ARB_texture_buffer_range
9189   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9190   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9191
9192   // GL_ARB_texture_query_levels
9193
9194   // GL_ARB_texture_storage_multisample
9195   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9196   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9197   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9198   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}
9199
9200   // GL 4.4
9201
9202   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9203   TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9204   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}
9205   TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9206   TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9207   TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9208   TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9209   TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9210   TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9211   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}
9212
9213   // GL 4.5
9214   TglClipControl = procedure(origin : GLenum; depth : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9215   TglCreateTransformFeedbacks = procedure(n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9216   TglTransformFeedbackBufferBase = procedure (xfb : GLuint; index : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9217   TglTransformFeedbackBufferRange = procedure (xfb : GLuint; index : GLuint; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9218   TglGetTransformFeedbackiv = procedure (xfb : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9219   TglGetTransformFeedbacki_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220   TglGetTransformFeedbacki64_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9221   TglCreateBuffers = procedure (n : GLsizei; buffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9222   TglNamedBufferStorage = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9223   TglNamedBufferData = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; usage : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglCopyNamedBufferSubData = procedure (readBuffer : GLuint; writeBuffer : GLuint; readOffset : GLintptr; writeOffset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226   TglClearNamedBufferData = procedure (buffer : GLuint; internalformat : GLenum; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9227   TglClearNamedBufferSubData = procedure (buffer : GLuint; internalformat : GLenum; offset : GLintptr; size : GLsizei; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9228   TglMapNamedBuffer = function(buffer : GLuint; access : GLenum) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9229   TglMapNamedBufferRange = function(buffer : GLuint; offset : GLintptr; length : GLsizei; access : GLbitfield) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9230   TglUnmapNamedBuffer = function(buffer : GLuint) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglFlushMappedNamedBufferRange = procedure (buffer : GLuint; offset : GLintptr; length : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglGetNamedBufferParameteriv = procedure (buffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233   TglGetNamedBufferParameteri64v = procedure (buffer : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9234   TglGetNamedBufferPointerv = procedure (buffer : GLuint; pname : GLenum; params : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9235   TglGetNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglCreateFramebuffers = procedure (n : GLsizei; framebuffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglNamedFramebufferRenderbuffer = procedure (framebuffer : GLuint; attachment : GLenum ; renderbuffertarget : GLEnum; renderbuffer : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglNamedFramebufferParameteri = procedure (framebuffer : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   TglNamedFramebufferTexture = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9240   TglNamedFramebufferTextureLayer = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint; layer : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241   TglNamedFramebufferDrawBuffer = procedure (framebuffer : GLuint; buf : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglNamedFramebufferDrawBuffers = procedure (framebuffer : GLuint; n : GLsizei; bufs : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglNamedFramebufferReadBuffer = procedure (framebuffer : GLuint; src : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   TglInvalidateNamedFramebufferData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9245   TglInvalidateNamedFramebufferSubData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglClearNamedFramebufferiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglClearNamedFramebufferuiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglClearNamedFramebufferfv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglClearNamedFramebufferfi = procedure (framebuffer : GLuint; buffer : GLenum; const depth : GLfloat; stencil : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   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}
9251   TglCheckNamedFramebufferStatus = function(framebuffer : GLuint; target : GLenum) : GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglGetNamedFramebufferParameteriv = procedure (framebuffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglGetNamedFramebufferAttachmentParameteriv = procedure (framebuffer : GLuint; attachment : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglCreateRenderbuffers = procedure (n : GLsizei; renderbuffers : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglNamedRenderbufferStorage = procedure (renderbuffer : GLUInt; internalformat : GLenum ; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglNamedRenderbufferStorageMultisample = procedure (renderbuffer : GLUInt; samples : GLSizei; internalformat : GLenum ; width : GLSizei; height : GLSizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglGetNamedRenderbufferParameteriv = procedure (renderbuffer : GLUInt; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglCreateTextures = procedure (target : GLenum ; n : GLsizei; textures : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglTextureBuffer = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   TglTextureBufferRange = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9261   TglTextureStorage1D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9262   TglTextureStorage2D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9263   TglTextureStorage3D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   TglTextureStorage2DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9265   TglTextureStorage3DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9266   TglTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   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}
9268   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}
9269   TglCompressedTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   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}
9271   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}
9272   TglCopyTextureSubImage1D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; x : GLint; y : GLint; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   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}
9274   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}
9275   TglTextureParameterf = procedure (texture : GLuint; pname : GLenum; param : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglTextureParameterfv = procedure (texture : GLuint; pname : GLenum; const param : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglTextureParameteri = procedure (texture : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; const params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; const params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglTextureParameteriv = procedure (texture : GLuint; pname : GLenum; const param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   TglGenerateTextureMipmap = procedure(texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9282   TglBindTextureUnit = procedure (_unit : GLuint; texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   TglGetTextureImage = procedure (texture : GLuint; level : GLint ; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9284   TglGetCompressedTextureImage = procedure (texture : GLuint; level : GLint; bufSize : GLSizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9285   TglGetTextureLevelParameterfv = procedure (texture : GLuint; level : GLint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9286   TglGetTextureLevelParameteriv = procedure (texture : GLuint; level : GLint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   TglGetTextureParameterfv = procedure (texture : GLuint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9288   TglGetTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9289   TglGetTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; params : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   TglGetTextureParameteriv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9291   TglCreateVertexArrays = procedure (n : GLsizei; arrays : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglDisableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglEnableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglVertexArrayElementBuffer = procedure (vaobj : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglVertexArrayVertexBuffer = procedure (vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglVertexArrayVertexBuffers = procedure (vaobj : GLuint; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : PGLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglVertexArrayAttribBinding = procedure (vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglVertexArrayAttribFormat = procedure(vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; normalized : GLboolean; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglVertexArrayAttribIFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglVertexArrayAttribLFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301   TglVertexArrayBindingDivisor = procedure (vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9302   TglGetVertexArrayiv = procedure (vaobj : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   TglGetVertexArrayIndexediv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9304   TglGetVertexArrayIndexed64iv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9305   TglCreateSamplers = procedure (n : GLsizei; samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglCreateProgramPipelines = procedure (n : GLsizei; pipelines : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglCreateQueries = procedure (target : GLenum; n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglMemoryBarrierByRegion = procedure (barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   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}
9310   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}
9311   TglGetGraphicsResetStatus = function : GLEnum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   TglGetnCompressedTexImage = procedure (target : GLenum; lod : GLint; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9313   TglGetnTexImage = procedure (target : GLenum; level : GLint; format : GLenum; _type : GLenum; bufSize : GLSizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9314   TglGetnUniformdv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglGetnUniformfv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglGetnUniformiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglGetnUniformuiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   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}
9319   TglGetnMapdv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglGetnMapfv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321   TglGetnMapiv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   TglGetnPixelMapfv = procedure (map : GLenum; bufSize : GLsizei; values : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9323   TglGetnPixelMapuiv = procedure (map : GLenum; bufSize : GLsizei; values : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324   TglGetnPixelMapusv = procedure (map : GLenum; bufSize : GLsizei; values : PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9325   TglGetnPolygonStipple = procedure (bufSize : GLsizei; pattern : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9326   TglGetnColorTable = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; table : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9327   TglGetnConvolutionFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; image : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9328   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}
9329   TglGetnHistogram = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglGetnMinmax = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331   TglTextureBarrier = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9332
9333   // GL_ARB_sparse_buffer
9334   TglBufferPageCommitmentARB = procedure (target : GLenum; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9335   TglNamedBufferPageCommitmentEXT = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9336   TglNamedBufferPageCommitmentARB = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9337
9338   // GL_KHR_blend_equation_advanced
9339   TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9340
9341   // GL_ARB_texture_view
9342   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}
9343
9344   // GL_ARB_vertex_attrib_binding
9345   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9346   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9347   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9348   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9349   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9350   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9351   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9352   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9353   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9354   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9355   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9356   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9357
9358   // GL_ARB_robustness_isolation
9359
9360   //
9361
9362   // GL_ARB_cl_event
9363   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9364
9365   // GL_ARB_debug_output
9366   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9367   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9368   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9369   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}
9370
9371   // GL_ARB_robustness
9372   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9373   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9374   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9375   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9376   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9377   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9378   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9379   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9380   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9381   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9382   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}
9383   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9384   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9385   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9386   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}
9387   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9388   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9389   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9390   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9391   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9392
9393   // GL_ATI_draw_buffers
9394   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9395
9396   // GL_ATI_element_array
9397   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9400
9401   // GL_ATI_envmap_bumpmap
9402   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9403   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9404   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9405   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9406
9407   // GL_ATI_fragment_shader
9408   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9409   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9410   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9411   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9412   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9413   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9414   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9415   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9416   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}
9417   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}
9418   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9419   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}
9420   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}
9421   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9422
9423   // GL_ATI_map_object_buffer
9424   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9425   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9426
9427   // GL_ATI_pn_triangles
9428   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9429   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9430
9431   // GL_ATI_separate_stencil
9432   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9433   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9434
9435   // GL_ATI_vertex_array_object
9436   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9437   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9438   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9439   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9440   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9441   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9442   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9443   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9444   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9445   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9446   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9447   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9448
9449   // GL_ATI_vertex_attrib_array_object
9450   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9451   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9452   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9453
9454   // GL_ATI_vertex_streams
9455   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9458   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9459   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9460   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9461   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9462   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9463   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9464   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9465   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9466   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9467   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9468   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9469   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9471   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9472   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9479   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9480   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9481   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9482   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9483   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9484   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9485   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9486   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9487   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9491   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9492   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9495   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9496   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500
9501   // GL_AMD_performance_monitor
9502   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9503   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9504   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9508   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9509   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9510   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9511   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9512   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9513
9514   // GL_AMD_vertex_shader_tesselator
9515   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9516   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9517
9518   // GL_AMD_draw_buffers_blend
9519   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9522   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9523
9524   // GL_AMD_name_gen_delete
9525   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9527   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9528
9529   // GL_AMD_debug_output
9530   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9531   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9532   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9533   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9534
9535   // GL_EXT_blend_color
9536   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9537
9538   // GL_EXT_blend_func_separate
9539   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9540
9541   // GL_EXT_blend_minmax
9542   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9543
9544   // GL_EXT_color_subtable
9545   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9546   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9547
9548   // GL_EXT_compiled_vertex_array
9549   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9550   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9551
9552   // GL_EXT_convolution
9553   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9554   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9555   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9556   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9557   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9558   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9559   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9560   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9561   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9562   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9563   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9564   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9565   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}
9566
9567   // GL_EXT_coordinate_frame
9568   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9569   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9570   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9571   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9574   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9575   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9576   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9577   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9578   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9582   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9583   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9584   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9585   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9586   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9588   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9590
9591   // GL_EXT_copy_texture
9592   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9593   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}
9594   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595   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}
9596   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}
9597
9598   // GL_EXT_cull_vertex
9599   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9600   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9601
9602   // GL_EXT_draw_range_elements
9603   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604
9605   // GL_EXT_fog_coord
9606   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9607   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9608   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9609   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9610   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9611
9612   // GL_EXT_framebuffer_object
9613   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9614   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9615   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9616   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9619   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9620   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9621   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9622   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9623   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9625   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9626   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9629   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630
9631   // GL_EXT_histogram
9632   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9635   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9637   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9638   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9639   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9640   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9641   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642
9643   // GL_EXT_index_func
9644   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9645
9646   // GL_EXT_index_material
9647   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9648
9649   // GL_EXT_light_texture
9650   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9652   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9653
9654   // GL_EXT_multi_draw_arrays
9655   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9656   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9657
9658   // GL_EXT_multisample
9659   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9660   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9661
9662   // GL_EXT_paletted_texture
9663   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9664   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9665   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9666   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9667
9668   // GL_EXT_pixel_transform
9669   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9670   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9671   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9672   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9673
9674   // GL_EXT_point_parameters
9675   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9676   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9677
9678   // GL_EXT_polygon_offset
9679   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680
9681   // GL_EXT_secondary_color
9682   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9683   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9684   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9685   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9686   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9687   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9688   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9689   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9690   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9691   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9692   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9694   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9695   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9696   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9697   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9698   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699
9700   // GL_EXT_stencil_two_side
9701   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9702
9703   // GL_EXT_subtexture
9704   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9705   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}
9706
9707   // GL_EXT_texture3D
9708   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}
9709   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}
9710
9711   // GL_EXT_texture_object
9712   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9713   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9714   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9715   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9716   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9717   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9718
9719   // GL_EXT_texture_perturb_normal
9720   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9721
9722   // GL_EXT_vertex_array
9723   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9724   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9725   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9726   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9727   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9728   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9729   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9731   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9732
9733   // GL_EXT_vertex_shader
9734   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9735   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9736   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9737   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9739   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9740   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9742   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9743   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9748   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9749   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9750   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9751   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9752   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9764   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9767   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9770   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9771   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9772   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9774   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9775   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9776
9777   // GL_EXT_vertex_weighting
9778   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9779   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9780   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9781
9782   // GL_EXT_stencil_clear_tag
9783   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784
9785   // GL_EXT_framebuffer_blit
9786   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}
9787
9788   // GL_EXT_framebuffer_multisample
9789   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9790
9791   // GL_EXT_timer_query
9792   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9793   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9794
9795   // GL_EXT_gpu_program_parameters
9796   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9797   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9798
9799   // GL_EXT_bindable_uniform
9800   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9801   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9802   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9803
9804   // GL_EXT_draw_buffers2
9805   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9806   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9807   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9808   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9809   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9810   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9811
9812   // GL_EXT_draw_instanced
9813   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9814   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9815
9816   // GL_EXT_geometry_shader4
9817   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9818   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819
9820   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9821
9822   // GL_EXT_gpu_shader4
9823   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9824   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9825   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9826   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9827   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9828   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9829   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9830   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9831   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9832   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9833   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9834   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9836   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9837   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9839   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9840   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9843   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9844   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9851   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9852   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9853   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9854   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9855   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9856   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9857
9858   // GL_EXT_texture_array
9859   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860
9861   // GL_EXT_texture_buffer_object
9862   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863
9864   // GL_EXT_texture_integer
9865   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9866   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9867   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9868   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9870   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9871
9872   // GL_HP_image_transform
9873   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9874   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9875   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9876   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9877   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9878   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9879
9880   // GL_EXT_depth_bounds_test
9881   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9882
9883   // GL_EXT_blend_equation_separate
9884   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885
9886   // GL_EXT_transform_feedback
9887   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9889   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9890   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9892   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9893   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9894
9895   // GL_EXT_direct_state_access
9896   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9897   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9898   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9899   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9900   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9901   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9902   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9903   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9904   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9905   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9906   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9907   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9908   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9909   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9910   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9911   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9912   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9913   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9916   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9917   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9918   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9919   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9920   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9921   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}
9922   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}
9923   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}
9924   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}
9925   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}
9926   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}
9927   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   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}
9929   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9930   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9931   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9932   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9933   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9934   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}
9935   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}
9936   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}
9937   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9938   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9939   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9940   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9941   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}
9942   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}
9943   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}
9944   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}
9945   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}
9946   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}
9947   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   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}
9949   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9950   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9951   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9952   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9953   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9954   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}
9955   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}
9956   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}
9957   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9958   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9959   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9960   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9961   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9962   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9963   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9965   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9966   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9971   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9972   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9973   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9974   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9975   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9976   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9977   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9978   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9979   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}
9980   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}
9981   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}
9982   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}
9983   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}
9984   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}
9985   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9986   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}
9987   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}
9988   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}
9989   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}
9990   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}
9991   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}
9992   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9993   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9994   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9995   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9996   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9997   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9998   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9999   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10000   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10001   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10002   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10003   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10004   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10005   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10006   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10007   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10008   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10015   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10016   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10043   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10044   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10045   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10046   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10047   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10056   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10057   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10063   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10064   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10065   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10066   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10067   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10068   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10069   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10070   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10076   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10077   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10078   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10097   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10098   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10100   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10101   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10102
10103   // GL_EXT_separate_shader_objects
10104   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10105   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10106   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10107
10108   // GL_EXT_shader_image_load_store
10109   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10110   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10111
10112   // GL_EXT_vertex_attrib_64bit
10113   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10117   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10118   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10119   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10120   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10121   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10122   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10123   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10124
10125   // GL_IBM_multimode_draw_arrays
10126   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10127   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10128
10129   // GL_IBM_vertex_array_lists
10130   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10133   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10134   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10135   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10136   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10137   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10138
10139   // GL_INGR_blend_func_separate
10140   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141
10142   // GL_INTEL_parallel_arrays
10143   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10145   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10146   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147
10148   // GL_MESA_resize_buffers
10149   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150
10151   // GL_MESA_window_pos
10152   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10153   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10156   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10157   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10158   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10159   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10160   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10161   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10162   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10165   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10166   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10168   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10171   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10172   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10173   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176
10177   // GL_NV_evaluators
10178   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}
10179   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10182   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10183   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10186   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10187
10188   // GL_NV_fence
10189   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10191   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10192   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10193   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10194   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10195   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196
10197   // GL_NV_fragment_program
10198   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10199   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10200   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204
10205   // GL_NV_half_float
10206   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10207   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10214   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10215   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10222   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10223   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10224   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10229   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10233   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10246   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10247   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10248   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10250   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10251   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252
10253   // GL_NV_occlusion_query
10254   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10256   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10257   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10260   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10261
10262   // GL_NV_pixel_data_range
10263   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10264   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10265
10266   // GL_NV_point_sprite
10267   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10268   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10269
10270   // GL_NV_primitive_restart
10271   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10272   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10273
10274   // GL_NV_register_combiners
10275   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10276   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10277   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10279   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10280   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}
10281   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10282   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10283   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10284   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10285   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10286   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10287   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10288
10289   // GL_NV_register_combiners2
10290   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10291   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10292
10293   // GL_NV_vertex_array_range
10294   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10295   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296
10297   // GL_NV_vertex_program
10298   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10299   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10300   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10302   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10303   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10304   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10306   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10307   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10308   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10309   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10310   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10311   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10314   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10318   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10326   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10357   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10358   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10362
10363   // GL_NV_depth_buffer_float
10364   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10365   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10366   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367
10368   // GL_NV_framebuffer_multisample_coverage
10369   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370
10371   // GL_NV_geometry_program4
10372   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10373
10374   // GL_NV_gpu_program4
10375   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10377   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10378   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10379   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10380   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10381   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10382   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10383   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10384   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10385   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10386   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10387   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10388   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10389   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10390   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10391
10392   // GL_NV_parameter_buffer_object
10393   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10395   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10396
10397   // GL_NV_transform_feedback
10398   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10401   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10402   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10405   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10406   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10407   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10408   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10409   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10410
10411   // GL_NV_conditional_render
10412   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10413   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10414
10415   // GL_NV_present_video
10416   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}
10417   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}
10418   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10419   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10420   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10421   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10423
10424   // GL_NV_explicit_multisample
10425   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10426   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10427   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10428
10429   // GL_NV_transform_feedback2
10430   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10431   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10432   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10433   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10434   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10435   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437
10438   // GL_NV_video_capture
10439   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10440   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10441   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10446   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10447   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10448   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10449   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10450   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451
10452   // GL_NV_copy_image
10453   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}
10454
10455   // GL_NV_shader_buffer_load
10456   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10461   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10462   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10464   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10465   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10466   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10468   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10469   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10470
10471   // GL_NV_vertex_buffer_unified_memory
10472   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10479   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10480   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10481   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10483   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10484
10485   // GL_NV_gpu_program5
10486   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10488
10489   // GL_NV_gpu_shader5
10490   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10492   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10494   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10495   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10496   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10498   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10499   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10500   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10502   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10503   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10506   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10507   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10512   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10513   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10514   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10517   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10518   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10519   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523
10524   // GL_NV_vertex_attrib_integer_64bit
10525   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10532   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10533   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10534   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10535   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10536   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10537   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10538   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10539   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10540   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10541   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544
10545   // GL_NV_vdpau_interop
10546   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10550   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10551   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10552   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10554   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10555   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10556
10557   // GL_NV_texture_barrier
10558   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10559
10560   // (4.3)
10561         // GL_NV_path_rendering
10562   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10565   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10566   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10567   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}
10568   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10569   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10570   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}
10571   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}
10572   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10573   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10574   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10575   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10576   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10577   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10578   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10580   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10581   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10582   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10585   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}
10586   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}
10587   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10588   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10589   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10592   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   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}
10594   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}
10595   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10596   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10597   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   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}
10603   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10604   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10605   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10606   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10607   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10608   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10609   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10610   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}
10611
10612   // GL_AMD_pinned_memory
10613
10614   // GL_AMD_stencil_operation_extended
10615   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10616
10617   // GL_AMD_vertex_shader_viewport_index
10618
10619   // GL_AMD_vertex_shader_layer
10620
10621   // GL_NV_bindless_texture
10622   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10623   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10624   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10625   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10626   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10627   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10628   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10629   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10630   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10631   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10632   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10633   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10634   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10635
10636   // GL_ARB_bindless_texture
10637
10638   TglGetTextureHandleARB = function (texture : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglGetTextureSamplerHandleARB = function (texture : GLuint; sampler : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglMakeTextureHandleResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglMakeTextureHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglGetImageHandleARB = function (texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglMakeImageHandleResidentARB = procedure (handle : GLuint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644   TglMakeImageHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10645   TglUniformHandleui64ARB = procedure (location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10646   TglUniformHandleui64vARB = procedure (location : GLint; count : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10647   TglProgramUniformHandleui64ARB = procedure (program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648   TglProgramUniformHandleui64vARB = procedure (program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10649   TglIsTextureHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10650   TglIsImageHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10651   TglVertexAttribL1ui64ARB = procedure (index : GLuint; x : GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10652   TglVertexAttribL1ui64vARB = procedure (index : GLuint; const v : PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10653   TglGetVertexAttribLui64vARB = procedure (index : GLuint; pname : GLenum; params : PGLuint64EXT ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10654
10655         // GL_NV_shader_atomic_float
10656
10657         // GL_AMD_query_buffer_object
10658
10659   //
10660
10661   // GL_PGI_misc_hints
10662   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10663
10664   // GL_SGIS_detail_texture
10665   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10666   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10667
10668   // GL_SGIS_fog_function
10669   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10670   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10671
10672   // GL_SGIS_multisample
10673   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10674   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10675
10676   // GL_SGIS_pixel_texture
10677   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10678   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10679   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10680   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10681   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10682   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10683
10684   // GL_SGIS_point_parameters
10685   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10686   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10687
10688   // GL_SGIS_sharpen_texture
10689   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10690   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10691
10692   // GL_SGIS_texture4D
10693   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}
10694   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}
10695
10696   // GL_SGIS_texture_color_mask
10697   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10698
10699   // GL_SGIS_texture_filter4
10700   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10701   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10702
10703   // GL_SGIX_async
10704   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10705   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10706   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10707   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10708   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10709   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10710
10711   // GL_SGIX_flush_raster
10712   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10713
10714   // GL_SGIX_fragment_lighting
10715   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10716   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10717   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10720   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10721   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10723   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10724   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10725   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10728   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10729   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10730   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10731   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10732   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10733
10734   // GL_SGIX_framezoom
10735   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736
10737   // GL_SGIX_igloo_interface
10738   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10739
10740   // GL_SGIX_instruments
10741   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10742   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10743   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10744   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10746   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10747
10748   // GL_SGIX_list_priority
10749   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10750   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10751   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10752   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10753   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10754   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10755
10756   // GL_SGIX_pixel_texture
10757   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10758
10759   // GL_SGIX_polynomial_ffd
10760   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}
10761   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}
10762   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10763   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10764
10765   // GL_SGIX_reference_plane
10766   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10767
10768   // GL_SGIX_sprite
10769   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10770   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10771   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10772   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10773
10774   // GL_SGIX_tag_sample_buffer
10775   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10776
10777   // GL_SGI_color_table
10778   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10779   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10780   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10781   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10782   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10783   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10784   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10785
10786   // GL_SUNX_constant_data
10787   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10788
10789   // GL_SUN_global_alpha
10790   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10791   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10792   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10793   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10794   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10795   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10796   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10797   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10798
10799   // GL_SUN_mesh_array
10800   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10801
10802   // GL_SUN_triangle_list
10803   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10804   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10805   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10806   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10807   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10808   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10809   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810
10811   // GL_SUN_vertex
10812   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10813   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10814   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10815   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10816   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10817   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10819   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10820   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}
10821   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10823   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   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}
10825   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826   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}
10827   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10828   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}
10829   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   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}
10831   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   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}
10833   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834   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}
10835   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10836   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10837   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10838   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}
10839   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10840   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10841   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10842   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10843   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   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}
10845   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10846   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10847   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10848   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}
10849   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10850   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}
10851   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10852
10853   // window support functions
10854 {$IFDEF DGL_WIN}
10855   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10856   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10857   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10858   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10859   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10860   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10861   TwglGetCurrentContext = function: HGLRC; stdcall;
10862   TwglGetCurrentDC = function: HDC; stdcall;
10863   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10864   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10865   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10866   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10867   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10868   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10869   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10870   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10871   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10872   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10873
10874   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10875   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10876   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10877
10878
10879   // WGL_ARB_buffer_region
10880   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10881   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10882   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10883   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10884
10885   // WGL_ARB_extensions_string
10886   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10887
10888   // WGL_ARB_make_current_read
10889   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10890   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10891
10892   // WGL_ARB_pbuffer
10893   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10894   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10895   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10896   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10897   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10898
10899   // WGL_ARB_pixel_format
10900   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10901   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10902   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
10903
10904   // WGL_ARB_color_buffer_float
10905   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
10906
10907   // WGL_ARB_render_texture
10908   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10909   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10910   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
10911
10912   // WGL_ARB_create_context
10913   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
10914
10915   // WGL_AMD_gpu_association
10916   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
10917   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
10918   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
10919   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
10920   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
10921   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
10922   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
10923   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
10924   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;
10925
10926   // WGL_EXT_display_color_table
10927   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10928   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
10929   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10930   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
10931
10932   // WGL_EXT_extensions_string
10933   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
10934
10935   // WGL_EXT_make_current_read
10936   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10937   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
10938
10939   // WGL_EXT_pbuffer
10940   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
10941   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
10942   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
10943   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
10944   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10945
10946   // WGL_EXT_pixel_format
10947   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10948   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10949   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
10950
10951   // WGL_EXT_swap_control
10952   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
10953   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
10954
10955   // WGL_I3D_digital_video_control
10956   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10957   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10958
10959   // WGL_I3D_gamma
10960   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10961   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10962   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
10963   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
10964
10965   // WGL_I3D_genlock
10966   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10967   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10968   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
10969   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
10970   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
10971   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
10972   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
10973   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
10974   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
10975   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
10976   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
10977   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
10978
10979   // WGL_I3D_image_buffer
10980   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
10981   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
10982   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
10983   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
10984
10985   // WGL_I3D_swap_frame_lock
10986   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
10987   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
10988   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
10989   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
10990
10991   // WGL_I3D_swap_frame_usage
10992   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
10993   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
10994   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
10995   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
10996
10997   // WGL_NV_vertex_array_range
10998   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
10999   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
11000
11001   // WGL_NV_present_video
11002   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
11003   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
11004   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11005
11006   // WGL_NV_video_output
11007   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11008   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11009   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11010   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11011   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11012   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11013
11014   // WGL_NV_swap_group
11015   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11016   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11017   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11018   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11019   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11020   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11021
11022   // WGL_NV_gpu_affinity
11023   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11024   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11025   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11026   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11027   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11028
11029   // WGL_NV_video_capture
11030   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11031   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11032   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11033   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11034   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11035
11036   // WGL_NV_copy_image
11037   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;
11038
11039   // WGL_NV_DX_interop
11040   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11041   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11042   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11043   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11044   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11045   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11046   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11047   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11048
11049   // WGL_OML_sync_control
11050   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11051   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11052   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11053   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11054   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11055   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11056
11057   // WGL_3DL_stereo_control
11058   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11059
11060   // WIN_draw_range_elements
11061   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11062
11063   // WIN_swap_hint
11064   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11065 {$ENDIF}
11066
11067 {$IFDEF DGL_LINUX}
11068   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11069   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11070   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11071   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11072   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11073   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11074   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11075   TglXGetCurrentContext = function: GLXContext cdecl;
11076   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11077   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11078   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11079   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11080   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11081   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11082   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11083   TglXWaitGL = procedure; cdecl;
11084   TglXWaitX = procedure; cdecl;
11085
11086   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11087   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11088   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11089
11090   // GLX_VERSION_1_3
11091   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11092   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11093   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11094   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11095   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11096   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11097   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11098
11099   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11100   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11101   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11102   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11103   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11104   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11105   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11106   TglXGetCurreentDisplay = function: PDisplay;
11107
11108   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11109   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11110   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11111
11112   // GLX_VERSION_1_4
11113   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11114
11115   // GLX_ARB_get_proc_address
11116   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11117
11118   // GLX_ARB_create_context
11119   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11120
11121   // GLX_EXT_import_context
11122   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11123   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11124   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11125   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11126   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11127
11128   // GLX_EXT_texture_from_pixmap
11129   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11130   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11131 {$ENDIF}
11132
11133   // GL utility functions and procedures
11134   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11135   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11136   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11137   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11138   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11139   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11140   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}
11141   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}
11142   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}
11143   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11144   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11145   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11146   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11147   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11148   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11149   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11150   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11151   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11152   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11153   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11154   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11155   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11156   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11157   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11158   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11159   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11160   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11161   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11162   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11163   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11164   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11165   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11166   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11167   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11168   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11169   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11170   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11171   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11172   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11173   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11174   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11175   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11176   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11177   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}
11178   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11179   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11180   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11181   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11182   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11183   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11184   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11185
11186 var
11187   // GL_VERSION_1_0
11188   glCullFace: TglCullFace;
11189   glFrontFace: TglFrontFace;
11190   glHint: TglHint;
11191   glLineWidth: TglLineWidth;
11192   glPointSize: TglPointSize;
11193   glPolygonMode: TglPolygonMode;
11194   glScissor: TglScissor;
11195   glTexParameterf: TglTexParameterf;
11196   glTexParameterfv: TglTexParameterfv;
11197   glTexParameteri: TglTexParameteri;
11198   glTexParameteriv: TglTexParameteriv;
11199   glTexImage1D: TglTexImage1D;
11200   glTexImage2D: TglTexImage2D;
11201   glDrawBuffer: TglDrawBuffer;
11202   glClear: TglClear;
11203   glClearColor: TglClearColor;
11204   glClearStencil: TglClearStencil;
11205   glClearDepth: TglClearDepth;
11206   glStencilMask: TglStencilMask;
11207   glColorMask: TglColorMask;
11208   glDepthMask: TglDepthMask;
11209   glDisable: TglDisable;
11210   glEnable: TglEnable;
11211   glFinish: TglFinish;
11212   glFlush: TglFlush;
11213   glBlendFunc: TglBlendFunc;
11214   glLogicOp: TglLogicOp;
11215   glStencilFunc: TglStencilFunc;
11216   glStencilOp: TglStencilOp;
11217   glDepthFunc: TglDepthFunc;
11218   glPixelStoref: TglPixelStoref;
11219   glPixelStorei: TglPixelStorei;
11220   glReadBuffer: TglReadBuffer;
11221   glReadPixels: TglReadPixels;
11222   glGetBooleanv: TglGetBooleanv;
11223   glGetDoublev: TglGetDoublev;
11224   glGetError: TglGetError;
11225   glGetFloatv: TglGetFloatv;
11226   glGetIntegerv: TglGetIntegerv;
11227   glGetString: TglGetString;
11228   glGetTexImage: TglGetTexImage;
11229   glGetTexParameteriv: TglGetTexParameteriv;
11230   glGetTexParameterfv: TglGetTexParameterfv;
11231   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11232   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11233   glIsEnabled: TglIsEnabled;
11234   glDepthRange: TglDepthRange;
11235   glViewport: TglViewport;
11236
11237   // GL_VERSION_1_1
11238   glDrawArrays: TglDrawArrays;
11239   glDrawElements: TglDrawElements;
11240   glGetPointerv: TglGetPointerv;
11241   glPolygonOffset: TglPolygonOffset;
11242   glCopyTexImage1D: TglCopyTexImage1D;
11243   glCopyTexImage2D: TglCopyTexImage2D;
11244   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11245   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11246   glTexSubImage1D: TglTexSubImage1D;
11247   glTexSubImage2D: TglTexSubImage2D;
11248   glBindTexture: TglBindTexture;
11249   glDeleteTextures: TglDeleteTextures;
11250   glGenTextures: TglGenTextures;
11251 {$ifdef DGL_DEPRECATED}
11252   glAccum: TglAccum;
11253   glAlphaFunc: TglAlphaFunc;
11254   glAreTexturesResident: TglAreTexturesResident;
11255   glArrayElement: TglArrayElement;
11256   glBegin: TglBegin;
11257   glBitmap: TglBitmap;
11258   glCallList: TglCallList;
11259   glCallLists: TglCallLists;
11260   glClearAccum: TglClearAccum;
11261   glClearIndex: TglClearIndex;
11262   glClipPlane: TglClipPlane;
11263   glColor3b: TglColor3b;
11264   glColor3bv: TglColor3bv;
11265   glColor3d: TglColor3d;
11266   glColor3dv: TglColor3dv;
11267   glColor3f: TglColor3f;
11268   glColor3fv: TglColor3fv;
11269   glColor3i: TglColor3i;
11270   glColor3iv: TglColor3iv;
11271   glColor3s: TglColor3s;
11272   glColor3sv: TglColor3sv;
11273   glColor3ub: TglColor3ub;
11274   glColor3ubv: TglColor3ubv;
11275   glColor3ui: TglColor3ui;
11276   glColor3uiv: TglColor3uiv;
11277   glColor3us: TglColor3us;
11278   glColor3usv: TglColor3usv;
11279   glColor4b: TglColor4b;
11280   glColor4bv: TglColor4bv;
11281   glColor4d: TglColor4d;
11282   glColor4dv: TglColor4dv;
11283   glColor4f: TglColor4f;
11284   glColor4fv: TglColor4fv;
11285   glColor4i: TglColor4i;
11286   glColor4iv: TglColor4iv;
11287   glColor4s: TglColor4s;
11288   glColor4sv: TglColor4sv;
11289   glColor4ub: TglColor4ub;
11290   glColor4ubv: TglColor4ubv;
11291   glColor4ui: TglColor4ui;
11292   glColor4uiv: TglColor4uiv;
11293   glColor4us: TglColor4us;
11294   glColor4usv: TglColor4usv;
11295   glColorMaterial: TglColorMaterial;
11296   glColorPointer: TglColorPointer;
11297   glCopyPixels: TglCopyPixels;
11298   glDeleteLists: TglDeleteLists;
11299   glDisableClientState: TglDisableClientState;
11300   glDrawPixels: TglDrawPixels;
11301   glEdgeFlag: TglEdgeFlag;
11302   glEdgeFlagPointer: TglEdgeFlagPointer;
11303   glEdgeFlagv: TglEdgeFlagv;
11304   glEnableClientState: TglEnableClientState;
11305   glEnd: TglEnd;
11306   glEndList: TglEndList;
11307   glEvalCoord1d: TglEvalCoord1d;
11308   glEvalCoord1dv: TglEvalCoord1dv;
11309   glEvalCoord1f: TglEvalCoord1f;
11310   glEvalCoord1fv: TglEvalCoord1fv;
11311   glEvalCoord2d: TglEvalCoord2d;
11312   glEvalCoord2dv: TglEvalCoord2dv;
11313   glEvalCoord2f: TglEvalCoord2f;
11314   glEvalCoord2fv: TglEvalCoord2fv;
11315   glEvalMesh1: TglEvalMesh1;
11316   glEvalMesh2: TglEvalMesh2;
11317   glEvalPoint1: TglEvalPoint1;
11318   glEvalPoint2: TglEvalPoint2;
11319   glFeedbackBuffer: TglFeedbackBuffer;
11320   glFogf: TglFogf;
11321   glFogfv: TglFogfv;
11322   glFogi: TglFogi;
11323   glFogiv: TglFogiv;
11324   glFrustum: TglFrustum;
11325   glGenLists: TglGenLists;
11326   glGetClipPlane: TglGetClipPlane;
11327   glGetLightfv: TglGetLightfv;
11328   glGetLightiv: TglGetLightiv;
11329   glGetMapdv: TglGetMapdv;
11330   glGetMapfv: TglGetMapfv;
11331   glGetMapiv: TglGetMapiv;
11332   glGetMaterialfv: TglGetMaterialfv;
11333   glGetMaterialiv: TglGetMaterialiv;
11334   glGetPixelMapfv: TglGetPixelMapfv;
11335   glGetPixelMapuiv: TglGetPixelMapuiv;
11336   glGetPixelMapusv: TglGetPixelMapusv;
11337   glGetPolygonStipple: TglGetPolygonStipple;
11338   glGetTexEnvfv: TglGetTexEnvfv;
11339   glGetTexEnviv: TglGetTexEnviv;
11340   glGetTexGendv: TglGetTexGendv;
11341   glGetTexGenfv: TglGetTexGenfv;
11342   glGetTexGeniv: TglGetTexGeniv;
11343   glIndexMask: TglIndexMask;
11344   glIndexPointer: TglIndexPointer;
11345   glIndexd: TglIndexd;
11346   glIndexdv: TglIndexdv;
11347   glIndexf: TglIndexf;
11348   glIndexfv: TglIndexfv;
11349   glIndexi: TglIndexi;
11350   glIndexiv: TglIndexiv;
11351   glIndexs: TglIndexs;
11352   glIndexsv: TglIndexsv;
11353   glIndexub: TglIndexub;
11354   glIndexubv: TglIndexubv;
11355   glInitNames: TglInitNames;
11356   glInterleavedArrays: TglInterleavedArrays;
11357   glIsList: TglIsList;
11358   glIsTexture: TglIsTexture;
11359   glLightModelf: TglLightModelf;
11360   glLightModelfv: TglLightModelfv;
11361   glLightModeli: TglLightModeli;
11362   glLightModeliv: TglLightModeliv;
11363   glLightf: TglLightf;
11364   glLightfv: TglLightfv;
11365   glLighti: TglLighti;
11366   glLightiv: TglLightiv;
11367   glLineStipple: TglLineStipple;
11368   glListBase: TglListBase;
11369   glLoadIdentity: TglLoadIdentity;
11370   glLoadMatrixd: TglLoadMatrixd;
11371   glLoadMatrixf: TglLoadMatrixf;
11372   glLoadName: TglLoadName;
11373   glMap1d: TglMap1d;
11374   glMap1f: TglMap1f;
11375   glMap2d: TglMap2d;
11376   glMap2f: TglMap2f;
11377   glMapGrid1d: TglMapGrid1d;
11378   glMapGrid1f: TglMapGrid1f;
11379   glMapGrid2d: TglMapGrid2d;
11380   glMapGrid2f: TglMapGrid2f;
11381   glMaterialf: TglMaterialf;
11382   glMaterialfv: TglMaterialfv;
11383   glMateriali: TglMateriali;
11384   glMaterialiv: TglMaterialiv;
11385   glMatrixMode: TglMatrixMode;
11386   glMultMatrixd: TglMultMatrixd;
11387   glMultMatrixf: TglMultMatrixf;
11388   glNewList: TglNewList;
11389   glNormal3b: TglNormal3b;
11390   glNormal3bv: TglNormal3bv;
11391   glNormal3d: TglNormal3d;
11392   glNormal3dv: TglNormal3dv;
11393   glNormal3f: TglNormal3f;
11394   glNormal3fv: TglNormal3fv;
11395   glNormal3i: TglNormal3i;
11396   glNormal3iv: TglNormal3iv;
11397   glNormal3s: TglNormal3s;
11398   glNormal3sv: TglNormal3sv;
11399   glNormalPointer: TglNormalPointer;
11400   glOrtho: TglOrtho;
11401   glPassThrough: TglPassThrough;
11402   glPixelMapfv: TglPixelMapfv;
11403   glPixelMapuiv: TglPixelMapuiv;
11404   glPixelMapusv: TglPixelMapusv;
11405   glPixelTransferf: TglPixelTransferf;
11406   glPixelTransferi: TglPixelTransferi;
11407   glPixelZoom: TglPixelZoom;
11408   glPolygonStipple: TglPolygonStipple;
11409   glPopAttrib: TglPopAttrib;
11410   glPopClientAttrib: TglPopClientAttrib;
11411   glPopMatrix: TglPopMatrix;
11412   glPopName: TglPopName;
11413   glPrioritizeTextures: TglPrioritizeTextures;
11414   glPushAttrib: TglPushAttrib;
11415   glPushClientAttrib: TglPushClientAttrib;
11416   glPushMatrix: TglPushMatrix;
11417   glPushName: TglPushName;
11418   glRasterPos2d: TglRasterPos2d;
11419   glRasterPos2dv: TglRasterPos2dv;
11420   glRasterPos2f: TglRasterPos2f;
11421   glRasterPos2fv: TglRasterPos2fv;
11422   glRasterPos2i: TglRasterPos2i;
11423   glRasterPos2iv: TglRasterPos2iv;
11424   glRasterPos2s: TglRasterPos2s;
11425   glRasterPos2sv: TglRasterPos2sv;
11426   glRasterPos3d: TglRasterPos3d;
11427   glRasterPos3dv: TglRasterPos3dv;
11428   glRasterPos3f: TglRasterPos3f;
11429   glRasterPos3fv: TglRasterPos3fv;
11430   glRasterPos3i: TglRasterPos3i;
11431   glRasterPos3iv: TglRasterPos3iv;
11432   glRasterPos3s: TglRasterPos3s;
11433   glRasterPos3sv: TglRasterPos3sv;
11434   glRasterPos4d: TglRasterPos4d;
11435   glRasterPos4dv: TglRasterPos4dv;
11436   glRasterPos4f: TglRasterPos4f;
11437   glRasterPos4fv: TglRasterPos4fv;
11438   glRasterPos4i: TglRasterPos4i;
11439   glRasterPos4iv: TglRasterPos4iv;
11440   glRasterPos4s: TglRasterPos4s;
11441   glRasterPos4sv: TglRasterPos4sv;
11442   glRectd: TglRectd;
11443   glRectdv: TglRectdv;
11444   glRectf: TglRectf;
11445   glRectfv: TglRectfv;
11446   glRecti: TglRecti;
11447   glRectiv: TglRectiv;
11448   glRects: TglRects;
11449   glRectsv: TglRectsv;
11450   glRenderMode: TglRenderMode;
11451   glRotated: TglRotated;
11452   glRotatef: TglRotatef;
11453   glScaled: TglScaled;
11454   glScalef: TglScalef;
11455   glSelectBuffer: TglSelectBuffer;
11456   glShadeModel: TglShadeModel;
11457   glTexCoord1d: TglTexCoord1d;
11458   glTexCoord1dv: TglTexCoord1dv;
11459   glTexCoord1f: TglTexCoord1f;
11460   glTexCoord1fv: TglTexCoord1fv;
11461   glTexCoord1i: TglTexCoord1i;
11462   glTexCoord1iv: TglTexCoord1iv;
11463   glTexCoord1s: TglTexCoord1s;
11464   glTexCoord1sv: TglTexCoord1sv;
11465   glTexCoord2d: TglTexCoord2d;
11466   glTexCoord2dv: TglTexCoord2dv;
11467   glTexCoord2f: TglTexCoord2f;
11468   glTexCoord2fv: TglTexCoord2fv;
11469   glTexCoord2i: TglTexCoord2i;
11470   glTexCoord2iv: TglTexCoord2iv;
11471   glTexCoord2s: TglTexCoord2s;
11472   glTexCoord2sv: TglTexCoord2sv;
11473   glTexCoord3d: TglTexCoord3d;
11474   glTexCoord3dv: TglTexCoord3dv;
11475   glTexCoord3f: TglTexCoord3f;
11476   glTexCoord3fv: TglTexCoord3fv;
11477   glTexCoord3i: TglTexCoord3i;
11478   glTexCoord3iv: TglTexCoord3iv;
11479   glTexCoord3s: TglTexCoord3s;
11480   glTexCoord3sv: TglTexCoord3sv;
11481   glTexCoord4d: TglTexCoord4d;
11482   glTexCoord4dv: TglTexCoord4dv;
11483   glTexCoord4f: TglTexCoord4f;
11484   glTexCoord4fv: TglTexCoord4fv;
11485   glTexCoord4i: TglTexCoord4i;
11486   glTexCoord4iv: TglTexCoord4iv;
11487   glTexCoord4s: TglTexCoord4s;
11488   glTexCoord4sv: TglTexCoord4sv;
11489   glTexCoordPointer: TglTexCoordPointer;
11490   glTexEnvf: TglTexEnvf;
11491   glTexEnvfv: TglTexEnvfv;
11492   glTexEnvi: TglTexEnvi;
11493   glTexEnviv: TglTexEnviv;
11494   glTexGend: TglTexGend;
11495   glTexGendv: TglTexGendv;
11496   glTexGenf: TglTexGenf;
11497   glTexGenfv: TglTexGenfv;
11498   glTexGeni: TglTexGeni;
11499   glTexGeniv: TglTexGeniv;
11500   glTranslated: TglTranslated;
11501   glTranslatef: TglTranslatef;
11502   glVertex2d: TglVertex2d;
11503   glVertex2dv: TglVertex2dv;
11504   glVertex2f: TglVertex2f;
11505   glVertex2fv: TglVertex2fv;
11506   glVertex2i: TglVertex2i;
11507   glVertex2iv: TglVertex2iv;
11508   glVertex2s: TglVertex2s;
11509   glVertex2sv: TglVertex2sv;
11510   glVertex3d: TglVertex3d;
11511   glVertex3dv: TglVertex3dv;
11512   glVertex3f: TglVertex3f;
11513   glVertex3fv: TglVertex3fv;
11514   glVertex3i: TglVertex3i;
11515   glVertex3iv: TglVertex3iv;
11516   glVertex3s: TglVertex3s;
11517   glVertex3sv: TglVertex3sv;
11518   glVertex4d: TglVertex4d;
11519   glVertex4dv: TglVertex4dv;
11520   glVertex4f: TglVertex4f;
11521   glVertex4fv: TglVertex4fv;
11522   glVertex4i: TglVertex4i;
11523   glVertex4iv: TglVertex4iv;
11524   glVertex4s: TglVertex4s;
11525   glVertex4sv: TglVertex4sv;
11526   glVertexPointer: TglVertexPointer;
11527 {$endif}
11528
11529   // GL_VERSION_1_2
11530   glBlendColor: TglBlendColor;
11531   glBlendEquation: TglBlendEquation;
11532   glDrawRangeElements: TglDrawRangeElements;
11533   glTexImage3D: TglTexImage3D;
11534   glTexSubImage3D: TglTexSubImage3D;
11535   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11536 {$ifdef DGL_DEPRECATED}
11537   glColorTable: TglColorTable;
11538   glColorTableParameterfv: TglColorTableParameterfv;
11539   glColorTableParameteriv: TglColorTableParameteriv;
11540   glCopyColorTable: TglCopyColorTable;
11541   glGetColorTable: TglGetColorTable;
11542   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11543   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11544   glColorSubTable: TglColorSubTable;
11545   glCopyColorSubTable: TglCopyColorSubTable;
11546   glConvolutionFilter1D: TglConvolutionFilter1D;
11547   glConvolutionFilter2D: TglConvolutionFilter2D;
11548   glConvolutionParameterf: TglConvolutionParameterf;
11549   glConvolutionParameterfv: TglConvolutionParameterfv;
11550   glConvolutionParameteri: TglConvolutionParameteri;
11551   glConvolutionParameteriv: TglConvolutionParameteriv;
11552   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11553   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11554   glGetConvolutionFilter: TglGetConvolutionFilter;
11555   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11556   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11557   glGetSeparableFilter: TglGetSeparableFilter;
11558   glSeparableFilter2D: TglSeparableFilter2D;
11559   glGetHistogram: TglGetHistogram;
11560   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11561   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11562   glGetMinmax: TglGetMinmax;
11563   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11564   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11565   glHistogram: TglHistogram;
11566   glMinmax: TglMinmax;
11567   glResetHistogram: TglResetHistogram;
11568   glResetMinmax: TglResetMinmax;
11569 {$endif}
11570
11571   // GL_VERSION_1_3
11572   glActiveTexture: TglActiveTexture;
11573   glSampleCoverage: TglSampleCoverage;
11574   glCompressedTexImage3D: TglCompressedTexImage3D;
11575   glCompressedTexImage2D: TglCompressedTexImage2D;
11576   glCompressedTexImage1D: TglCompressedTexImage1D;
11577   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11578   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11579   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11580   glGetCompressedTexImage: TglGetCompressedTexImage;
11581 {$ifdef DGL_DEPRECATED}
11582   glClientActiveTexture: TglClientActiveTexture;
11583   glMultiTexCoord1d: TglMultiTexCoord1d;
11584   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11585   glMultiTexCoord1f: TglMultiTexCoord1f;
11586   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11587   glMultiTexCoord1i: TglMultiTexCoord1i;
11588   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11589   glMultiTexCoord1s: TglMultiTexCoord1s;
11590   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11591   glMultiTexCoord2d: TglMultiTexCoord2d;
11592   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11593   glMultiTexCoord2f: TglMultiTexCoord2f;
11594   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11595   glMultiTexCoord2i: TglMultiTexCoord2i;
11596   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11597   glMultiTexCoord2s: TglMultiTexCoord2s;
11598   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11599   glMultiTexCoord3d: TglMultiTexCoord3d;
11600   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11601   glMultiTexCoord3f: TglMultiTexCoord3f;
11602   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11603   glMultiTexCoord3i: TglMultiTexCoord3i;
11604   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11605   glMultiTexCoord3s: TglMultiTexCoord3s;
11606   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11607   glMultiTexCoord4d: TglMultiTexCoord4d;
11608   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11609   glMultiTexCoord4f: TglMultiTexCoord4f;
11610   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11611   glMultiTexCoord4i: TglMultiTexCoord4i;
11612   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11613   glMultiTexCoord4s: TglMultiTexCoord4s;
11614   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11615   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11616   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11617   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11618   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11619 {$endif}
11620
11621   // GL_VERSION_1_4
11622   glBlendFuncSeparate: TglBlendFuncSeparate;
11623   glMultiDrawArrays: TglMultiDrawArrays;
11624   glMultiDrawElements: TglMultiDrawElements;
11625   glPointParameterf: TglPointParameterf;
11626   glPointParameterfv: TglPointParameterfv;
11627   glPointParameteri: TglPointParameteri;
11628   glPointParameteriv: TglPointParameteriv;
11629 {$ifdef DGL_DEPRECATED}
11630   glFogCoordf: TglFogCoordf;
11631   glFogCoordfv: TglFogCoordfv;
11632   glFogCoordd: TglFogCoordd;
11633   glFogCoorddv: TglFogCoorddv;
11634   glFogCoordPointer: TglFogCoordPointer;
11635   glSecondaryColor3b: TglSecondaryColor3b;
11636   glSecondaryColor3bv: TglSecondaryColor3bv;
11637   glSecondaryColor3d: TglSecondaryColor3d;
11638   glSecondaryColor3dv: TglSecondaryColor3dv;
11639   glSecondaryColor3f: TglSecondaryColor3f;
11640   glSecondaryColor3fv: TglSecondaryColor3fv;
11641   glSecondaryColor3i: TglSecondaryColor3i;
11642   glSecondaryColor3iv: TglSecondaryColor3iv;
11643   glSecondaryColor3s: TglSecondaryColor3s;
11644   glSecondaryColor3sv: TglSecondaryColor3sv;
11645   glSecondaryColor3ub: TglSecondaryColor3ub;
11646   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11647   glSecondaryColor3ui: TglSecondaryColor3ui;
11648   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11649   glSecondaryColor3us: TglSecondaryColor3us;
11650   glSecondaryColor3usv: TglSecondaryColor3usv;
11651   glSecondaryColorPointer: TglSecondaryColorPointer;
11652   glWindowPos2d: TglWindowPos2d;
11653   glWindowPos2dv: TglWindowPos2dv;
11654   glWindowPos2f: TglWindowPos2f;
11655   glWindowPos2fv: TglWindowPos2fv;
11656   glWindowPos2i: TglWindowPos2i;
11657   glWindowPos2iv: TglWindowPos2iv;
11658   glWindowPos2s: TglWindowPos2s;
11659   glWindowPos2sv: TglWindowPos2sv;
11660   glWindowPos3d: TglWindowPos3d;
11661   glWindowPos3dv: TglWindowPos3dv;
11662   glWindowPos3f: TglWindowPos3f;
11663   glWindowPos3fv: TglWindowPos3fv;
11664   glWindowPos3i: TglWindowPos3i;
11665   glWindowPos3iv: TglWindowPos3iv;
11666   glWindowPos3s: TglWindowPos3s;
11667   glWindowPos3sv: TglWindowPos3sv;
11668 {$endif}
11669
11670   // GL_VERSION_1_5
11671   glGenQueries: TglGenQueries;
11672   glDeleteQueries: TglDeleteQueries;
11673   glIsQuery: TglIsQuery;
11674   glBeginQuery: TglBeginQuery;
11675   glEndQuery: TglEndQuery;
11676   glGetQueryiv: TglGetQueryiv;
11677   glGetQueryObjectiv: TglGetQueryObjectiv;
11678   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11679   glBindBuffer: TglBindBuffer;
11680   glDeleteBuffers: TglDeleteBuffers;
11681   glGenBuffers: TglGenBuffers;
11682   glIsBuffer: TglIsBuffer;
11683   glBufferData: TglBufferData;
11684   glBufferSubData: TglBufferSubData;
11685   glGetBufferSubData: TglGetBufferSubData;
11686   glMapBuffer: TglMapBuffer;
11687   glUnmapBuffer: TglUnmapBuffer;
11688   glGetBufferParameteriv: TglGetBufferParameteriv;
11689   glGetBufferPointerv: TglGetBufferPointerv;
11690
11691   // GL_VERSION_2_0
11692   glBlendEquationSeparate: TglBlendEquationSeparate;
11693   glDrawBuffers: TglDrawBuffers;
11694   glStencilOpSeparate: TglStencilOpSeparate;
11695   glStencilFuncSeparate: TglStencilFuncSeparate;
11696   glStencilMaskSeparate: TglStencilMaskSeparate;
11697   glAttachShader: TglAttachShader;
11698   glBindAttribLocation: TglBindAttribLocation;
11699   glCompileShader: TglCompileShader;
11700   glCreateProgram: TglCreateProgram;
11701   glCreateShader: TglCreateShader;
11702   glDeleteProgram: TglDeleteProgram;
11703   glDeleteShader: TglDeleteShader;
11704   glDetachShader: TglDetachShader;
11705   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11706   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11707   glGetActiveAttrib: TglGetActiveAttrib;
11708   glGetActiveUniform: TglGetActiveUniform;
11709   glGetAttachedShaders: TglGetAttachedShaders;
11710   glGetAttribLocation: TglGetAttribLocation;
11711   glGetProgramiv: TglGetProgramiv;
11712   glGetProgramInfoLog: TglGetProgramInfoLog;
11713   glGetShaderiv: TglGetShaderiv;
11714   glGetShaderInfoLog: TglGetShaderInfoLog;
11715   glGetShaderSource: TglGetShaderSource;
11716   glGetUniformLocation: TglGetUniformLocation;
11717   glGetUniformfv: TglGetUniformfv;
11718   glGetUniformiv: TglGetUniformiv;
11719   glGetVertexAttribfv: TglGetVertexAttribfv;
11720   glGetVertexAttribiv: TglGetVertexAttribiv;
11721   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11722   glIsProgram: TglIsProgram;
11723   glIsShader: TglIsShader;
11724   glLinkProgram: TglLinkProgram;
11725   glShaderSource: TglShaderSource;
11726   glUseProgram: TglUseProgram;
11727   glUniform1f: TglUniform1f;
11728   glUniform2f: TglUniform2f;
11729   glUniform3f: TglUniform3f;
11730   glUniform4f: TglUniform4f;
11731   glUniform1i: TglUniform1i;
11732   glUniform2i: TglUniform2i;
11733   glUniform3i: TglUniform3i;
11734   glUniform4i: TglUniform4i;
11735   glUniform1fv: TglUniform1fv;
11736   glUniform2fv: TglUniform2fv;
11737   glUniform3fv: TglUniform3fv;
11738   glUniform4fv: TglUniform4fv;
11739   glUniform1iv: TglUniform1iv;
11740   glUniform2iv: TglUniform2iv;
11741   glUniform3iv: TglUniform3iv;
11742   glUniform4iv: TglUniform4iv;
11743   glUniformMatrix2fv: TglUniformMatrix2fv;
11744   glUniformMatrix3fv: TglUniformMatrix3fv;
11745   glUniformMatrix4fv: TglUniformMatrix4fv;
11746   glValidateProgram: TglValidateProgram;
11747   glVertexAttrib1d: TglVertexAttrib1d;
11748   glVertexAttrib1dv: TglVertexAttrib1dv;
11749   glVertexAttrib1f: TglVertexAttrib1f;
11750   glVertexAttrib1fv: TglVertexAttrib1fv;
11751   glVertexAttrib1s: TglVertexAttrib1s;
11752   glVertexAttrib1sv: TglVertexAttrib1sv;
11753   glVertexAttrib2d: TglVertexAttrib2d;
11754   glVertexAttrib2dv: TglVertexAttrib2dv;
11755   glVertexAttrib2f: TglVertexAttrib2f;
11756   glVertexAttrib2fv: TglVertexAttrib2fv;
11757   glVertexAttrib2s: TglVertexAttrib2s;
11758   glVertexAttrib2sv: TglVertexAttrib2sv;
11759   glVertexAttrib3d: TglVertexAttrib3d;
11760   glVertexAttrib3dv: TglVertexAttrib3dv;
11761   glVertexAttrib3f: TglVertexAttrib3f;
11762   glVertexAttrib3fv: TglVertexAttrib3fv;
11763   glVertexAttrib3s: TglVertexAttrib3s;
11764   glVertexAttrib3sv: TglVertexAttrib3sv;
11765   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11766   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11767   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11768   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11769   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11770   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11771   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11772   glVertexAttrib4bv: TglVertexAttrib4bv;
11773   glVertexAttrib4d: TglVertexAttrib4d;
11774   glVertexAttrib4dv: TglVertexAttrib4dv;
11775   glVertexAttrib4f: TglVertexAttrib4f;
11776   glVertexAttrib4fv: TglVertexAttrib4fv;
11777   glVertexAttrib4iv: TglVertexAttrib4iv;
11778   glVertexAttrib4s: TglVertexAttrib4s;
11779   glVertexAttrib4sv: TglVertexAttrib4sv;
11780   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11781   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11782   glVertexAttrib4usv: TglVertexAttrib4usv;
11783   glVertexAttribPointer: TglVertexAttribPointer;
11784
11785   // GL_VERSION_2_1
11786   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11787   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11788   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11789   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11790   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11791   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11792
11793   // GL_VERSION_3_0
11794   glColorMaski: TglColorMaski;
11795   glGetBooleani_v: TglGetBooleani_v;
11796   glGetIntegeri_v: TglGetIntegeri_v;
11797   glEnablei: TglEnablei;
11798   glDisablei: TglDisablei;
11799   glIsEnabledi: TglIsEnabledi;
11800   glBeginTransformFeedback: TglBeginTransformFeedback;
11801   glEndTransformFeedback: TglEndTransformFeedback;
11802   glBindBufferRange: TglBindBufferRange;
11803   glBindBufferBase: TglBindBufferBase;
11804   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11805   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11806   glClampColor: TglClampColor;
11807   glBeginConditionalRender: TglBeginConditionalRender;
11808   glEndConditionalRender: TglEndConditionalRender;
11809   glVertexAttribI1i: TglVertexAttribI1i;
11810   glVertexAttribI2i: TglVertexAttribI2i;
11811   glVertexAttribI3i: TglVertexAttribI3i;
11812   glVertexAttribI4i: TglVertexAttribI4i;
11813   glVertexAttribI1ui: TglVertexAttribI1ui;
11814   glVertexAttribI2ui: TglVertexAttribI2ui;
11815   glVertexAttribI3ui: TglVertexAttribI3ui;
11816   glVertexAttribI4ui: TglVertexAttribI4ui;
11817   glVertexAttribI1iv: TglVertexAttribI1iv;
11818   glVertexAttribI2iv: TglVertexAttribI2iv;
11819   glVertexAttribI3iv: TglVertexAttribI3iv;
11820   glVertexAttribI4iv: TglVertexAttribI4iv;
11821   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11822   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11823   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11824   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11825   glVertexAttribI4bv: TglVertexAttribI4bv;
11826   glVertexAttribI4sv: TglVertexAttribI4sv;
11827   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11828   glVertexAttribI4usv: TglVertexAttribI4usv;
11829   glVertexAttribIPointer: TglVertexAttribIPointer;
11830   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11831   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11832   glGetUniformuiv: TglGetUniformuiv;
11833   glBindFragDataLocation: TglBindFragDataLocation;
11834   glGetFragDataLocation: TglGetFragDataLocation;
11835   glUniform1ui: TglUniform1ui;
11836   glUniform2ui: TglUniform2ui;
11837   glUniform3ui: TglUniform3ui;
11838   glUniform4ui: TglUniform4ui;
11839   glUniform1uiv: TglUniform1uiv;
11840   glUniform2uiv: TglUniform2uiv;
11841   glUniform3uiv: TglUniform3uiv;
11842   glUniform4uiv: TglUniform4uiv;
11843   glTexParameterIiv: TglTexParameterIiv;
11844   glTexParameterIuiv: TglTexParameterIuiv;
11845   glGetTexParameterIiv: TglGetTexParameterIiv;
11846   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11847   glClearBufferiv: TglClearBufferiv;
11848   glClearBufferuiv: TglClearBufferuiv;
11849   glClearBufferfv: TglClearBufferfv;
11850   glClearBufferfi: TglClearBufferfi;
11851   glGetStringi: TglGetStringi;
11852
11853   // GL_VERSION_2_1
11854   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11855   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11856   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11857
11858   // GL_VERSION_3_1
11859   glDrawArraysInstanced: TglDrawArraysInstanced;
11860   glDrawElementsInstanced: TglDrawElementsInstanced;
11861   glTexBuffer: TglTexBuffer;
11862   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11863
11864   // GL_VERSION_3_2
11865   glGetInteger64i_v: TglGetInteger64i_v;
11866   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11867   glFramebufferTexture: TglFramebufferTexture;
11868
11869   // GL_VERSION_3_3
11870   glVertexAttribDivisor: TglVertexAttribDivisor;
11871
11872   // GL_VERSION_4_0
11873   { OpenGL 4.0 also reuses entry points from these extensions: }
11874   { ARB_texture_query_lod (no entry points) }
11875   { ARB_draw_indirect }
11876   { ARB_gpu_shader5 (no entry points) }
11877   { ARB_gpu_shader_fp64 }
11878   { ARB_shader_subroutine }
11879   { ARB_tessellation_shader }
11880   { ARB_texture_buffer_object_rgb32 (no entry points) }
11881   { ARB_texture_cube_map_array (no entry points) }
11882   { ARB_texture_gather (no entry points) }
11883   { ARB_transform_feedback2 }
11884   { ARB_transform_feedback3 }
11885   glMinSampleShading: TglMinSampleShading;
11886   glBlendEquationi: TglBlendEquationi;
11887   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11888   glBlendFunci: TglBlendFunci;
11889   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11890
11891   // GL_3DFX_tbuffer
11892   glTbufferMask3DFX: TglTbufferMask3DFX;
11893
11894   // GL_APPLE_element_array
11895   glElementPointerAPPLE: TglElementPointerAPPLE;
11896   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
11897   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
11898   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
11899   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
11900
11901   // GL_APPLE_fence
11902   glGenFencesAPPLE: TglGenFencesAPPLE;
11903   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
11904   glSetFenceAPPLE: TglSetFenceAPPLE;
11905   glIsFenceAPPLE: TglIsFenceAPPLE;
11906   glTestFenceAPPLE: TglTestFenceAPPLE;
11907   glFinishFenceAPPLE: TglFinishFenceAPPLE;
11908   glTestObjectAPPLE: TglTestObjectAPPLE;
11909   glFinishObjectAPPLE: TglFinishObjectAPPLE;
11910
11911   // GL_APPLE_vertex_array_object
11912   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
11913   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
11914   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
11915   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
11916
11917   // GL_APPLE_vertex_array_range
11918   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
11919   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
11920   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
11921
11922   // GL_APPLE_texture_range
11923   glTextureRangeAPPLE: TglTextureRangeAPPLE;
11924   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
11925
11926   // GL_APPLE_vertex_program_evaluators
11927   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
11928   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
11929   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
11930   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
11931   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
11932   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
11933   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
11934
11935   // GL_APPLE_object_purgeable
11936   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
11937   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
11938   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
11939
11940   // GL_ARB_matrix_palette
11941   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
11942   glMatrixIndexubvARB: TglMatrixIndexubvARB;
11943   glMatrixIndexusvARB: TglMatrixIndexusvARB;
11944   glMatrixIndexuivARB: TglMatrixIndexuivARB;
11945   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
11946
11947   // GL_ARB_multisample
11948   glSampleCoverageARB: TglSampleCoverageARB;
11949
11950   // GL_ARB_multitexture
11951   glActiveTextureARB: TglActiveTextureARB;
11952   glClientActiveTextureARB: TglClientActiveTextureARB;
11953   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
11954   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
11955   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
11956   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
11957   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
11958   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
11959   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
11960   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
11961   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
11962   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
11963   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
11964   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
11965   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
11966   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
11967   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
11968   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
11969   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
11970   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
11971   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
11972   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
11973   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
11974   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
11975   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
11976   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
11977   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
11978   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
11979   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
11980   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
11981   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
11982   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
11983   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
11984   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
11985
11986   // GL_ARB_point_parameters
11987   glPointParameterfARB: TglPointParameterfARB;
11988   glPointParameterfvARB: TglPointParameterfvARB;
11989
11990   // GL_ARB_texture_compression
11991   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
11992   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
11993   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
11994   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
11995   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
11996   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
11997   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
11998
11999   // GL_ARB_transpose_matrix
12000   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
12001   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
12002   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
12003   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
12004
12005   // GL_ARB_vertex_blend
12006   glWeightbvARB: TglWeightbvARB;
12007   glWeightsvARB: TglWeightsvARB;
12008   glWeightivARB: TglWeightivARB;
12009   glWeightfvARB: TglWeightfvARB;
12010   glWeightdvARB: TglWeightdvARB;
12011   glWeightubvARB: TglWeightubvARB;
12012   glWeightusvARB: TglWeightusvARB;
12013   glWeightuivARB: TglWeightuivARB;
12014   glWeightPointerARB: TglWeightPointerARB;
12015   glVertexBlendARB: TglVertexBlendARB;
12016
12017   // GL_ARB_vertex_buffer_object
12018   glBindBufferARB: TglBindBufferARB;
12019   glDeleteBuffersARB: TglDeleteBuffersARB;
12020   glGenBuffersARB: TglGenBuffersARB;
12021   glIsBufferARB: TglIsBufferARB;
12022   glBufferDataARB: TglBufferDataARB;
12023   glBufferSubDataARB: TglBufferSubData;
12024   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12025   glMapBufferARB: TglMapBufferARB;
12026   glUnmapBufferARB: TglUnmapBufferARB;
12027   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12028   glGetBufferPointervARB: TglGetBufferPointervARB;
12029
12030   // GL_ARB_vertex_program
12031   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12032   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12033   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12034   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12035   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12036   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12037   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12038   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12039   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12040   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12041   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12042   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12043   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12044   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12045   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12046   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12047   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12048   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12049   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12050   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12051   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12052   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12053   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12054   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12055   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12056   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12057   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12058   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12059   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12060   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12061   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12062   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12063   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12064   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12065   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12066   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12067   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12068   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12069   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12070   glProgramStringARB: TglProgramStringARB;
12071   glBindProgramARB: TglBindProgramARB;
12072   glDeleteProgramsARB: TglDeleteProgramsARB;
12073   glGenProgramsARB: TglGenProgramsARB;
12074
12075   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12076   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12077   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12078   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12079   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12080   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12081   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12082   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12083   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12084   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12085   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12086   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12087   glGetProgramivARB: TglGetProgramivARB;
12088   glGetProgramStringARB: TglGetProgramStringARB;
12089   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12090   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12091   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12092   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12093   glIsProgramARB: TglIsProgramARB;
12094
12095   // GL_ARB_window_pos
12096   glWindowPos2dARB: TglWindowPos2dARB;
12097   glWindowPos2dvARB: TglWindowPos2dvARB;
12098   glWindowPos2fARB: TglWindowPos2fARB;
12099   glWindowPos2fvARB: TglWindowPos2fvARB;
12100   glWindowPos2iARB: TglWindowPos2iARB;
12101   glWindowPos2ivARB: TglWindowPos2ivARB;
12102   glWindowPos2sARB: TglWindowPos2sARB;
12103   glWindowPos2svARB: TglWindowPos2svARB;
12104   glWindowPos3dARB: TglWindowPos3dARB;
12105   glWindowPos3dvARB: TglWindowPos3dvARB;
12106   glWindowPos3fARB: TglWindowPos3fARB;
12107   glWindowPos3fvARB: TglWindowPos3fvARB;
12108   glWindowPos3iARB: TglWindowPos3iARB;
12109   glWindowPos3ivARB: TglWindowPos3ivARB;
12110   glWindowPos3sARB: TglWindowPos3sARB;
12111   glWindowPos3svARB: TglWindowPos3svARB;
12112
12113   // GL_ARB_draw_buffers
12114   glDrawBuffersARB: TglDrawBuffersARB;
12115
12116   // GL_ARB_color_buffer_float
12117   glClampColorARB: TglClampColorARB;
12118
12119   // GL_ARB_vertex_shader
12120   glGetActiveAttribARB: TglGetActiveAttribARB;
12121   glGetAttribLocationARB: TglGetAttribLocationARB;
12122   glBindAttribLocationARB: TglBindAttribLocationARB;
12123
12124   // GL_ARB_shader_objects
12125   glDeleteObjectARB: TglDeleteObjectARB;
12126   glGetHandleARB: TglGetHandleARB;
12127   glDetachObjectARB: TglDetachObjectARB;
12128   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12129   glShaderSourceARB: TglShaderSourceARB;
12130   glCompileShaderARB: TglCompileShaderARB;
12131   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12132   glAttachObjectARB: TglAttachObjectARB;
12133   glLinkProgramARB: TglLinkProgramARB;
12134   glUseProgramObjectARB: TglUseProgramObjectARB;
12135   glValidateProgramARB: TglValidateProgramARB;
12136   glUniform1fARB: TglUniform1fARB;
12137   glUniform2fARB: TglUniform2fARB;
12138   glUniform3fARB: TglUniform3fARB;
12139   glUniform4fARB: TglUniform4fARB;
12140   glUniform1iARB: TglUniform1iARB;
12141   glUniform2iARB: TglUniform2iARB;
12142   glUniform3iARB: TglUniform3iARB;
12143   glUniform4iARB: TglUniform4iARB;
12144   glUniform1fvARB: TglUniform1fvARB;
12145   glUniform2fvARB: TglUniform2fvARB;
12146   glUniform3fvARB: TglUniform3fvARB;
12147   glUniform4fvARB: TglUniform4fvARB;
12148   glUniform1ivARB: TglUniform1ivARB;
12149   glUniform2ivARB: TglUniform2ivARB;
12150   glUniform3ivARB: TglUniform3ivARB;
12151   glUniform4ivARB: TglUniform4ivARB;
12152   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12153   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12154   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12155   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12156   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12157   glGetInfoLogARB: TglGetInfoLogARB;
12158   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12159   glGetUniformLocationARB: TglGetUniformLocationARB;
12160   glGetActiveUniformARB: TglGetActiveUniformARB;
12161   glGetUniformfvARB: TglGetUniformfvARB;
12162   glGetUniformivARB: TglGetUniformivARB;
12163   glGetShaderSourceARB: TglGetShaderSourceARB;
12164
12165   // GL_ARB_Occlusion_Query
12166   glGenQueriesARB: TglGenQueriesARB;
12167   glDeleteQueriesARB: TglDeleteQueriesARB;
12168   glIsQueryARB: TglIsQueryARB;
12169   glBeginQueryARB: TglBeginQueryARB;
12170   glEndQueryARB: TglEndQueryARB;
12171   glGetQueryivARB: TglGetQueryivARB;
12172   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12173   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12174
12175   // GL_ARB_draw_instanced
12176   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12177   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12178
12179   // GL_ARB_framebuffer_object
12180   glIsRenderbuffer: TglIsRenderbuffer;
12181   glBindRenderbuffer: TglBindRenderbuffer;
12182   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12183   glGenRenderbuffers: TglGenRenderbuffers;
12184   glRenderbufferStorage: TglRenderbufferStorage;
12185   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12186   glIsFramebuffer: TglIsFramebuffer;
12187   glBindFramebuffer: TglBindFramebuffer;
12188   glDeleteFramebuffers: TglDeleteFramebuffers;
12189   glGenFramebuffers: TglGenFramebuffers;
12190   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12191   glFramebufferTexture1D: TglFramebufferTexture1D;
12192   glFramebufferTexture2D: TglFramebufferTexture2D;
12193   glFramebufferTexture3D: TglFramebufferTexture3D;
12194   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12195   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12196   glGenerateMipmap: TglGenerateMipmap;
12197   glBlitFramebuffer: TglBlitFramebuffer;
12198   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12199   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12200
12201   // GL_ARB_geometry_shader4
12202   glProgramParameteriARB: TglProgramParameteriARB;
12203   glFramebufferTextureARB: TglFramebufferTextureARB;
12204   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12205   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12206
12207   // GL_ARB_instanced_arrays
12208   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12209
12210   // GL_ARB_map_buffer_range
12211   glMapBufferRange: TglMapBufferRange;
12212   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12213
12214   // GL_ARB_texture_buffer_object
12215   glTexBufferARB: TglTexBufferARB;
12216
12217   // GL_ARB_vertex_array_object
12218   glBindVertexArray: TglBindVertexArray;
12219   glDeleteVertexArrays: TglDeleteVertexArrays;
12220   glGenVertexArrays: TglGenVertexArrays;
12221   glIsVertexArray: TglIsVertexArray;
12222
12223   // GL_ARB_uniform_buffer_object
12224   glGetUniformIndices: TglGetUniformIndices;
12225   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12226   glGetActiveUniformName: TglGetActiveUniformName;
12227   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12228   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12229   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12230   glUniformBlockBinding: TglUniformBlockBinding;
12231
12232   // GL_ARB_copy_buffer
12233   glCopyBufferSubData: TglCopyBufferSubData;
12234
12235   // GL_ARB_draw_elements_base_vertex
12236   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12237   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12238   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12239   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12240
12241   // GL_ARB_provoking_vertex
12242   glProvokingVertex: TglProvokingVertex;
12243
12244   // GL_ARB_sync
12245   glFenceSync: TglFenceSync;
12246   glIsSync: TglIsSync;
12247   glDeleteSync: TglDeleteSync;
12248   glClientWaitSync: TglClientWaitSync;
12249   glWaitSync: TglWaitSync;
12250   glGetInteger64v: TglGetInteger64v;
12251   glGetSynciv: TglGetSynciv;
12252
12253   // GL_ARB_texture_multisample
12254   glTexImage2DMultisample: TglTexImage2DMultisample;
12255   glTexImage3DMultisample: TglTexImage3DMultisample;
12256   glGetMultisamplefv: TglGetMultisamplefv;
12257   glSampleMaski: TglSampleMaski;
12258
12259   // GL_ARB_draw_buffers_blend
12260   glBlendEquationiARB: TglBlendEquationiARB;
12261   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12262   glBlendFunciARB: TglBlendFunciARB;
12263   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12264
12265   // GL_ARB_sample_shading
12266   glMinSampleShadingARB: TglMinSampleShadingARB;
12267
12268   // GL_ARB_shading_language_include
12269   glNamedStringARB: TglNamedStringARB;
12270   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12271   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12272   glIsNamedStringARB: TglIsNamedStringARB;
12273   glGetNamedStringARB: TglGetNamedStringARB;
12274   glGetNamedStringivARB: TglGetNamedStringivARB;
12275
12276   // GL_ARB_blend_func_extended
12277   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12278   glGetFragDataIndex: TglGetFragDataIndex;
12279
12280   // GL_ARB_sampler_objects
12281   glGenSamplers: TglGenSamplers;
12282   glDeleteSamplers: TglDeleteSamplers;
12283   glIsSampler: TglIsSampler;
12284   glBindSampler: TglBindSampler;
12285   glSamplerParameteri: TglSamplerParameteri;
12286   glSamplerParameteriv: TglSamplerParameteriv;
12287   glSamplerParameterf: TglSamplerParameterf;
12288   glSamplerParameterfv: TglSamplerParameterfv;
12289   glSamplerParameterIiv: TglSamplerParameterIiv;
12290   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12291   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12292   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12293   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12294   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12295
12296   // GL_ARB_timer_query
12297   glQueryCounter: TglQueryCounter;
12298   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12299   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12300
12301   // GL_ARB_vertex_type_2_10_10_10_rev
12302   glVertexP2ui: TglVertexP2ui;
12303   glVertexP2uiv: TglVertexP2uiv;
12304   glVertexP3ui: TglVertexP3ui;
12305   glVertexP3uiv: TglVertexP3uiv;
12306   glVertexP4ui: TglVertexP4ui;
12307   glVertexP4uiv: TglVertexP4uiv;
12308   glTexCoordP1ui: TglTexCoordP1ui;
12309   glTexCoordP1uiv: TglTexCoordP1uiv;
12310   glTexCoordP2ui: TglTexCoordP2ui;
12311   glTexCoordP2uiv: TglTexCoordP2uiv;
12312   glTexCoordP3ui: TglTexCoordP3ui;
12313   glTexCoordP3uiv: TglTexCoordP3uiv;
12314   glTexCoordP4ui: TglTexCoordP4ui;
12315   glTexCoordP4uiv: TglTexCoordP4uiv;
12316   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12317   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12318   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12319   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12320   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12321   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12322   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12323   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12324   glNormalP3ui: TglNormalP3ui;
12325   glNormalP3uiv: TglNormalP3uiv;
12326   glColorP3ui: TglColorP3ui;
12327   glColorP3uiv: TglColorP3uiv;
12328   glColorP4ui: TglColorP4ui;
12329   glColorP4uiv: TglColorP4uiv;
12330   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12331   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12332   glVertexAttribP1ui: TglVertexAttribP1ui;
12333   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12334   glVertexAttribP2ui: TglVertexAttribP2ui;
12335   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12336   glVertexAttribP3ui: TglVertexAttribP3ui;
12337   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12338   glVertexAttribP4ui: TglVertexAttribP4ui;
12339   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12340
12341   // GL_ARB_draw_indirect
12342   glDrawArraysIndirect: TglDrawArraysIndirect;
12343   glDrawElementsIndirect: TglDrawElementsIndirect;
12344
12345   // GL_ARB_gpu_shader_fp64
12346   glUniform1d: TglUniform1d;
12347   glUniform2d: TglUniform2d;
12348   glUniform3d: TglUniform3d;
12349   glUniform4d: TglUniform4d;
12350   glUniform1dv: TglUniform1dv;
12351   glUniform2dv: TglUniform2dv;
12352   glUniform3dv: TglUniform3dv;
12353   glUniform4dv: TglUniform4dv;
12354   glUniformMatrix2dv: TglUniformMatrix2dv;
12355   glUniformMatrix3dv: TglUniformMatrix3dv;
12356   glUniformMatrix4dv: TglUniformMatrix4dv;
12357   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12358   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12359   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12360   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12361   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12362   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12363   glGetUniformdv: TglGetUniformdv;
12364
12365   // GL_ARB_shader_subroutine
12366   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12367   glGetSubroutineIndex: TglGetSubroutineIndex;
12368   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12369   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12370   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12371   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12372   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12373   glGetProgramStageiv: TglGetProgramStageiv;
12374
12375   // GL_ARB_tessellation_shader
12376   glPatchParameteri: TglPatchParameteri;
12377   glPatchParameterfv: TglPatchParameterfv;
12378
12379   // GL_ARB_transform_feedback2
12380   glBindTransformFeedback: TglBindTransformFeedback;
12381   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12382   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12383   glIsTransformFeedback: TglIsTransformFeedback;
12384   glPauseTransformFeedback: TglPauseTransformFeedback;
12385   glResumeTransformFeedback: TglResumeTransformFeedback;
12386   glDrawTransformFeedback: TglDrawTransformFeedback;
12387
12388   // GL_ARB_transform_feedback3
12389   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12390   glBeginQueryIndexed: TglBeginQueryIndexed;
12391   glEndQueryIndexed: TglEndQueryIndexed;
12392   glGetQueryIndexediv: TglGetQueryIndexediv;
12393
12394   // GL_ARB_ES2_compatibility
12395   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12396   glShaderBinary: TglShaderBinary;
12397   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12398   glDepthRangef: TglDepthRangef;
12399   glClearDepthf: TglClearDepthf;
12400
12401   // GL_ARB_get_program_binary
12402   glGetProgramBinary: TglGetProgramBinary;
12403   glProgramBinary: TglProgramBinary;
12404   glProgramParameteri: TglProgramParameteri;
12405
12406   // GL_ARB_separate_shader_objects
12407   glUseProgramStages: TglUseProgramStages;
12408   glActiveShaderProgram: TglActiveShaderProgram;
12409   glCreateShaderProgramv: TglCreateShaderProgramv;
12410   glBindProgramPipeline: TglBindProgramPipeline;
12411   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12412   glGenProgramPipelines: TglGenProgramPipelines;
12413   glIsProgramPipeline: TglIsProgramPipeline;
12414   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12415   glProgramUniform1i: TglProgramUniform1i;
12416   glProgramUniform1iv: TglProgramUniform1iv;
12417   glProgramUniform1f: TglProgramUniform1f;
12418   glProgramUniform1fv: TglProgramUniform1fv;
12419   glProgramUniform1d: TglProgramUniform1d;
12420   glProgramUniform1dv: TglProgramUniform1dv;
12421   glProgramUniform1ui: TglProgramUniform1ui;
12422   glProgramUniform1uiv: TglProgramUniform1uiv;
12423   glProgramUniform2i: TglProgramUniform2i;
12424   glProgramUniform2iv: TglProgramUniform2iv;
12425   glProgramUniform2f: TglProgramUniform2f;
12426   glProgramUniform2fv: TglProgramUniform2fv;
12427   glProgramUniform2d: TglProgramUniform2d;
12428   glProgramUniform2dv: TglProgramUniform2dv;
12429   glProgramUniform2ui: TglProgramUniform2ui;
12430   glProgramUniform2uiv: TglProgramUniform2uiv;
12431   glProgramUniform3i: TglProgramUniform3i;
12432   glProgramUniform3iv: TglProgramUniform3iv;
12433   glProgramUniform3f: TglProgramUniform3f;
12434   glProgramUniform3fv: TglProgramUniform3fv;
12435   glProgramUniform3d: TglProgramUniform3d;
12436   glProgramUniform3dv: TglProgramUniform3dv;
12437   glProgramUniform3ui: TglProgramUniform3ui;
12438   glProgramUniform3uiv: TglProgramUniform3uiv;
12439   glProgramUniform4i: TglProgramUniform4i;
12440   glProgramUniform4iv: TglProgramUniform4iv;
12441   glProgramUniform4f: TglProgramUniform4f;
12442   glProgramUniform4fv: TglProgramUniform4fv;
12443   glProgramUniform4d: TglProgramUniform4d;
12444   glProgramUniform4dv: TglProgramUniform4dv;
12445   glProgramUniform4ui: TglProgramUniform4ui;
12446   glProgramUniform4uiv: TglProgramUniform4uiv;
12447   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12448   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12449   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12450   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12451   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12452   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12453   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12454   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12455   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12456   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12457   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12458   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12459   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12460   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12461   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12462   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12463   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12464   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12465   glValidateProgramPipeline: TglValidateProgramPipeline;
12466   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12467
12468   // GL_ARB_vertex_attrib_64bit
12469   glVertexAttribL1d: TglVertexAttribL1d;
12470   glVertexAttribL2d: TglVertexAttribL2d;
12471   glVertexAttribL3d: TglVertexAttribL3d;
12472   glVertexAttribL4d: TglVertexAttribL4d;
12473   glVertexAttribL1dv: TglVertexAttribL1dv;
12474   glVertexAttribL2dv: TglVertexAttribL2dv;
12475   glVertexAttribL3dv: TglVertexAttribL3dv;
12476   glVertexAttribL4dv: TglVertexAttribL4dv;
12477   glVertexAttribLPointer: TglVertexAttribLPointer;
12478   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12479
12480   // GL_ARB_viewport_array
12481   glViewportArrayv: TglViewportArrayv;
12482   glViewportIndexedf: TglViewportIndexedf;
12483   glViewportIndexedfv: TglViewportIndexedfv;
12484   glScissorArrayv: TglScissorArrayv;
12485   glScissorIndexed: TglScissorIndexed;
12486   glScissorIndexedv: TglScissorIndexedv;
12487   glDepthRangeArrayv: TglDepthRangeArrayv;
12488   glDepthRangeIndexed: TglDepthRangeIndexed;
12489   glGetFloati_v: TglGetFloati_v;
12490   glGetDoublei_v: TglGetDoublei_v;
12491
12492   // GL 4.2
12493
12494   // GL_ARB_base_instance
12495   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12496   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12497   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12498
12499   // GL_ARB_transform_feedback_instanced
12500   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12501   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12502
12503   // GL_ARB_internalformat_query
12504   glGetInternalformativ : TglGetInternalformativ;
12505
12506   // GL_ARB_shader_atomic_counters
12507   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12508
12509   /// GL_ARB_shader_image_load_store
12510   glBindImageTexture : TglBindImageTexture;
12511   glMemoryBarrier : TglMemoryBarrier;
12512
12513   // GL_ARB_texture_storage
12514   glTexStorage1D : TglTexStorage1D;
12515   glTexStorage2D : TglTexStorage2D;
12516   glTexStorage3D : TglTexStorage3D;
12517   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12518   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12519   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12520
12521
12522   // GL 4.3
12523     // GL_KHR_debug
12524     glDebugMessageControl : TglDebugMessageControl;
12525     glDebugMessageInsert : TglDebugMessageInsert;
12526     glDebugMessageCallback : TglDebugMessageCallback;
12527     glGetDebugMessageLog : TglGetDebugMessageLog;
12528     glPushDebugGroup : TglPushDebugGroup;
12529     glPopDebugGroup : TglPopDebugGroup;
12530     glObjectLabel : TglObjectLabel;
12531     glGetObjectLabel : TglGetObjectLabel;
12532     glObjectPtrLabel : TglObjectPtrLabel;
12533     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12534     // GL_ARB_clear_buffer_object
12535     glClearBufferData : TglClearBufferData;
12536     glClearBufferSubData : TglClearBufferSubData;
12537     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12538     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12539     // GL_ARB_compute_shader
12540     glDispatchCompute : TglDispatchCompute;
12541     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12542     // GL_ARB_copy_image
12543     glCopyImageSubData : TglCopyImageSubData;
12544     // GL_ARB_framebuffer_no_attachments
12545     glFramebufferParameteri : TglFramebufferParameteri;
12546     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12547     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12548     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12549     // GL_ARB_internalformat_query2
12550     glGetInternalformati64v : TglGetInternalformati64v;
12551     // GL_ARB_invalidate_subdata
12552     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12553     glInvalidateTexImage : TglInvalidateTexImage;
12554     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12555     glInvalidateBufferData : TglInvalidateBufferData;
12556     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12557     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12558     // GL_ARB_multi_draw_indirect
12559     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12560     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12561     // GL_ARB_program_interface_query
12562     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12563     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12564     glGetProgramResourceName : TglGetProgramResourceName;
12565     glGetProgramResourceiv : TglGetProgramResourceiv;
12566     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12567     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12568     // GL_ARB_shader_storage_buffer_object
12569     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12570     // GL_ARB_texture_buffer_range
12571     glTexBufferRange : TglTexBufferRange;
12572     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12573     // GL_ARB_texture_storage_multisample
12574     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12575     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12576     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12577     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12578     // GL_ARB_texture_view
12579     glTextureView : TglTextureView;
12580     // GL_ARB_vertex_attrib_binding
12581     glBindVertexBuffer : TglBindVertexBuffer;
12582     glVertexAttribFormat : TglVertexAttribFormat;
12583     glVertexAttribIFormat : TglVertexAttribIFormat;
12584     glVertexAttribLFormat : TglVertexAttribLFormat;
12585     glVertexAttribBinding : TglVertexAttribBinding;
12586     glVertexBindingDivisor : TglVertexBindingDivisor;
12587     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12588     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12589     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12590     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12591     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12592     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12593   // END GL 4.3
12594
12595
12596   // GL 4.4
12597     glBufferStorage : TglBufferStorage;
12598     glClearTexImage : TglClearTexImage;
12599     glClearTexSubImage : TglClearTexSubImage;
12600     glBindBuffersBase : TglBindBuffersBase;
12601     glBindBuffersRange : TglBindBuffersRange;
12602     glBindTextures : TglBindTextures;
12603     glBindSamplers : TglBindSamplers;
12604     glBindImageTextures : TglBindImageTextures;
12605     glBindVertexBuffers : TglBindVertexBuffers;
12606     glTexPageCommitmentARB : TglTexPageCommitmentARB;
12607
12608   // GL 4.5
12609   glClipControl : TglClipControl;
12610   glCreateTransformFeedbacks : TglCreateTransformFeedbacks;
12611   glTransformFeedbackBufferBase : TglTransformFeedbackBufferBase;
12612   glTransformFeedbackBufferRange : TglTransformFeedbackBufferRange;
12613   glGetTransformFeedbackiv : TglGetTransformFeedbackiv;
12614   glGetTransformFeedbacki_v : TglGetTransformFeedbacki_v;
12615   glGetTransformFeedbacki64_v : TglGetTransformFeedbacki64_v;
12616   glCreateBuffers : TglCreateBuffers;
12617   glNamedBufferStorage : TglNamedBufferStorage;
12618   glNamedBufferData : TglNamedBufferData;
12619   glNamedBufferSubData : TglNamedBufferSubData;
12620   glCopyNamedBufferSubData : TglCopyNamedBufferSubData;
12621   glClearNamedBufferData : TglClearNamedBufferData;
12622   glClearNamedBufferSubData : TglClearNamedBufferSubData;
12623   glMapNamedBuffer : TglMapNamedBuffer;
12624   glMapNamedBufferRange : TglMapNamedBufferRange;
12625   glUnmapNamedBuffer : TglUnmapNamedBuffer;
12626   glFlushMappedNamedBufferRange : TglFlushMappedNamedBufferRange;
12627   glGetNamedBufferParameteriv : TglGetNamedBufferParameteriv;
12628   glGetNamedBufferParameteri64v : TglGetNamedBufferParameteri64v;
12629   glGetNamedBufferPointerv : TglGetNamedBufferPointerv;
12630   glGetNamedBufferSubData : TglGetNamedBufferSubData;
12631   glCreateFramebuffers : TglCreateFramebuffers;
12632   glNamedFramebufferRenderbuffer : TglNamedFramebufferRenderbuffer;
12633   glNamedFramebufferParameteri : TglNamedFramebufferParameteri;
12634   glNamedFramebufferTexture : TglNamedFramebufferTexture;
12635   glNamedFramebufferTextureLayer : TglNamedFramebufferTextureLayer;
12636   glNamedFramebufferDrawBuffer : TglNamedFramebufferDrawBuffer;
12637   glNamedFramebufferDrawBuffers : TglNamedFramebufferDrawBuffers;
12638   glNamedFramebufferReadBuffer : TglNamedFramebufferReadBuffer;
12639   glInvalidateNamedFramebufferData : TglInvalidateNamedFramebufferData;
12640   glInvalidateNamedFramebufferSubData : TglInvalidateNamedFramebufferSubData;
12641   glClearNamedFramebufferiv : TglClearNamedFramebufferiv;
12642   glClearNamedFramebufferuiv : TglClearNamedFramebufferuiv;
12643   glClearNamedFramebufferfv : TglClearNamedFramebufferfv;
12644   glClearNamedFramebufferfi : TglClearNamedFramebufferfi;
12645   glBlitNamedFramebuffer : TglBlitNamedFramebuffer;
12646   glCheckNamedFramebufferStatus : TglCheckNamedFramebufferStatus;
12647   glGetNamedFramebufferParameteriv : TglGetNamedFramebufferParameteriv;
12648   glGetNamedFramebufferAttachmentParameteriv : TglGetNamedFramebufferAttachmentParameteriv;
12649   glCreateRenderbuffers : TglCreateRenderbuffers;
12650   glNamedRenderbufferStorage : TglNamedRenderbufferStorage;
12651   glNamedRenderbufferStorageMultisample : TglNamedRenderbufferStorageMultisample;
12652   glGetNamedRenderbufferParameteriv : TglGetNamedRenderbufferParameteriv;
12653   glCreateTextures : TglCreateTextures;
12654   glTextureBuffer : TglTextureBuffer;
12655   glTextureBufferRange : TglTextureBufferRange;
12656   glTextureStorage1D : TglTextureStorage1D;
12657   glTextureStorage2D : TglTextureStorage2D;
12658   glTextureStorage3D : TglTextureStorage3D;
12659   glTextureStorage2DMultisample : TglTextureStorage2DMultisample;
12660   glTextureStorage3DMultisample : TglTextureStorage3DMultisample;
12661   glTextureSubImage1D : TglTextureSubImage1D;
12662   glTextureSubImage2D : TglTextureSubImage2D;
12663   glTextureSubImage3D : TglTextureSubImage3D;
12664   glCompressedTextureSubImage1D : TglCompressedTextureSubImage1D;
12665   glCompressedTextureSubImage2D : TglCompressedTextureSubImage2D;
12666   glCompressedTextureSubImage3D : TglCompressedTextureSubImage3D;
12667   glCopyTextureSubImage1D : TglCopyTextureSubImage1D;
12668   glCopyTextureSubImage2D : TglCopyTextureSubImage2D;
12669   glCopyTextureSubImage3D : TglCopyTextureSubImage3D;
12670   glTextureParameterf : TglTextureParameterf;
12671   glTextureParameterfv : TglTextureParameterfv;
12672   glTextureParameteri : TglTextureParameteri;
12673   glTextureParameterIiv : TglTextureParameterIiv;
12674   glTextureParameterIuiv : TglTextureParameterIuiv;
12675   glTextureParameteriv : TglTextureParameteriv;
12676   glGenerateTextureMipmap : TglGenerateTextureMipmap;
12677   glBindTextureUnit : TglBindTextureUnit;
12678   glGetTextureImage : TglGetTextureImage;
12679   glGetCompressedTextureImage : TglGetCompressedTextureImage;
12680   glGetTextureLevelParameterfv : TglGetTextureLevelParameterfv;
12681   glGetTextureLevelParameteriv : TglGetTextureLevelParameteriv;
12682   glGetTextureParameterfv : TglGetTextureParameterfv;
12683   glGetTextureParameterIiv : TglGetTextureParameterIiv;
12684   glGetTextureParameterIuiv : TglGetTextureParameterIuiv;
12685   glGetTextureParameteriv : TglGetTextureParameteriv;
12686   glCreateVertexArrays : TglCreateVertexArrays;
12687   glDisableVertexArrayAttrib : TglDisableVertexArrayAttrib;
12688   glEnableVertexArrayAttrib : TglEnableVertexArrayAttrib;
12689   glVertexArrayElementBuffer : TglVertexArrayElementBuffer;
12690   glVertexArrayVertexBuffer : TglVertexArrayVertexBuffer;
12691   glVertexArrayVertexBuffers : TglVertexArrayVertexBuffers;
12692   glVertexArrayAttribBinding : TglVertexArrayAttribBinding;
12693   glVertexArrayAttribFormat : TglVertexArrayAttribFormat;
12694   glVertexArrayAttribIFormat : TglVertexArrayAttribIFormat;
12695   glVertexArrayAttribLFormat : TglVertexArrayAttribLFormat;
12696   glVertexArrayBindingDivisor : TglVertexArrayBindingDivisor;
12697   glGetVertexArrayiv : TglGetVertexArrayiv;
12698   glGetVertexArrayIndexediv : TglGetVertexArrayIndexediv;
12699   glGetVertexArrayIndexed64iv : TglGetVertexArrayIndexed64iv;
12700   glCreateSamplers : TglCreateSamplers;
12701   glCreateProgramPipelines : TglCreateProgramPipelines;
12702   glCreateQueries : TglCreateQueries;
12703   glMemoryBarrierByRegion : TglMemoryBarrierByRegion;
12704   glGetTextureSubImage : TglGetTextureSubImage;
12705   glGetCompressedTextureSubImage : TglGetCompressedTextureSubImage;
12706   glGetGraphicsResetStatus : TglGetGraphicsResetStatus;
12707   glGetnCompressedTexImage : TglGetnCompressedTexImage;
12708   glGetnTexImage : TglGetnTexImage;
12709   glGetnUniformdv : TglGetnUniformdv;
12710   glGetnUniformfv : TglGetnUniformfv;
12711   glGetnUniformiv : TglGetnUniformiv;
12712   glGetnUniformuiv : TglGetnUniformuiv;
12713   glReadnPixels : TglReadnPixels;
12714   glGetnMapdv : TglGetnMapdv;
12715   glGetnMapfv : TglGetnMapfv;
12716   glGetnMapiv : TglGetnMapiv;
12717   glGetnPixelMapfv : TglGetnPixelMapfv;
12718   glGetnPixelMapuiv : TglGetnPixelMapuiv;
12719   glGetnPixelMapusv : TglGetnPixelMapusv;
12720   glGetnPolygonStipple : TglGetnPolygonStipple;
12721   glGetnColorTable : TglGetnColorTable;
12722   glGetnConvolutionFilter : TglGetnConvolutionFilter;
12723   glGetnSeparableFilter : TglGetnSeparableFilter;
12724   glGetnHistogram : TglGetnHistogram;
12725   glGetnMinmax : TglGetnMinmax;
12726   glTextureBarrier : TglTextureBarrier;
12727
12728   // GL_ARB_sparse_buffer
12729   glBufferPageCommitmentARB : TglBufferPageCommitmentARB;
12730   glNamedBufferPageCommitmentEXT : TglNamedBufferPageCommitmentEXT;
12731   glNamedBufferPageCommitmentARB : TglNamedBufferPageCommitmentARB;
12732
12733   // GL_KHR_blend_equation_advanced
12734   glBlendBarrierKHR : TglBlendBarrierKHR;
12735
12736   // GL_ARB_cl_event
12737   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12738
12739   // GL_ARB_debug_output
12740   glDebugMessageControlARB: TglDebugMessageControlARB;
12741   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12742   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12743   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12744
12745   // GL_ARB_robustness
12746   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12747   glGetnMapdvARB: TglGetnMapdvARB;
12748   glGetnMapfvARB: TglGetnMapfvARB;
12749   glGetnMapivARB: TglGetnMapivARB;
12750   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12751   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12752   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12753   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12754   glGetnColorTableARB: TglGetnColorTableARB;
12755   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12756   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12757   glGetnHistogramARB: TglGetnHistogramARB;
12758   glGetnMinmaxARB: TglGetnMinmaxARB;
12759   glGetnTexImageARB: TglGetnTexImageARB;
12760   glReadnPixelsARB: TglReadnPixelsARB;
12761   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12762   glGetnUniformfvARB: TglGetnUniformfvARB;
12763   glGetnUniformivARB: TglGetnUniformivARB;
12764   glGetnUniformuivARB: TglGetnUniformuivARB;
12765   glGetnUniformdvARB: TglGetnUniformdvARB;
12766
12767   // GL_ATI_draw_buffers
12768   glDrawBuffersATI: TglDrawBuffersATI;
12769
12770   // GL_ATI_element_array
12771   glElementPointerATI: TglElementPointerATI;
12772   glDrawElementArrayATI: TglDrawElementArrayATI;
12773   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12774
12775   // GL_ATI_envmap_bumpmap
12776   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12777   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12778   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12779   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12780
12781   // GL_ATI_fragment_shader
12782   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12783   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12784   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12785   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12786   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12787   glPassTexCoordATI: TglPassTexCoordATI;
12788   glSampleMapATI: TglSampleMapATI;
12789   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12790   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12791   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12792   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12793   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12794   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12795   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12796
12797   // GL_ATI_map_object_buffer
12798   glMapObjectBufferATI: TglMapObjectBufferATI;
12799   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12800
12801   // GL_ATI_pn_triangles
12802   glPNTrianglesiATI: TglPNTrianglesiATI;
12803   glPNTrianglesfATI: TglPNTrianglesfATI;
12804
12805   // GL_ATI_separate_stencil
12806   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12807   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12808
12809   // GL_ATI_vertex_array_object
12810   glNewObjectBufferATI: TglNewObjectBufferATI;
12811   glIsObjectBufferATI: TglIsObjectBufferATI;
12812   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12813   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12814   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12815   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12816   glArrayObjectATI: TglArrayObjectATI;
12817   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12818   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12819   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12820   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12821   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12822   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12823   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12824   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12825
12826   // GL_ATI_vertex_streams
12827   glVertexStream1sATI: TglVertexStream1sATI;
12828   glVertexStream1svATI: TglVertexStream1svATI;
12829   glVertexStream1iATI: TglVertexStream1iATI;
12830   glVertexStream1ivATI: TglVertexStream1ivATI;
12831   glVertexStream1fATI: TglVertexStream1fATI;
12832   glVertexStream1fvATI: TglVertexStream1fvATI;
12833   glVertexStream1dATI: TglVertexStream1dATI;
12834   glVertexStream1dvATI: TglVertexStream1dvATI;
12835   glVertexStream2sATI: TglVertexStream2sATI;
12836   glVertexStream2svATI: TglVertexStream2svATI;
12837   glVertexStream2iATI: TglVertexStream2iATI;
12838   glVertexStream2ivATI: TglVertexStream2ivATI;
12839   glVertexStream2fATI: TglVertexStream2fATI;
12840   glVertexStream2fvATI: TglVertexStream2fvATI;
12841   glVertexStream2dATI: TglVertexStream2dATI;
12842   glVertexStream2dvATI: TglVertexStream2dvATI;
12843   glVertexStream3sATI: TglVertexStream3sATI;
12844   glVertexStream3svATI: TglVertexStream3svATI;
12845   glVertexStream3iATI: TglVertexStream3iATI;
12846   glVertexStream3ivATI: TglVertexStream3ivATI;
12847   glVertexStream3fATI: TglVertexStream3fATI;
12848   glVertexStream3fvATI: TglVertexStream3fvATI;
12849   glVertexStream3dATI: TglVertexStream3dATI;
12850   glVertexStream3dvATI: TglVertexStream3dvATI;
12851   glVertexStream4sATI: TglVertexStream4sATI;
12852   glVertexStream4svATI: TglVertexStream4svATI;
12853   glVertexStream4iATI: TglVertexStream4iATI;
12854   glVertexStream4ivATI: TglVertexStream4ivATI;
12855   glVertexStream4fATI: TglVertexStream4fATI;
12856   glVertexStream4fvATI: TglVertexStream4fvATI;
12857   glVertexStream4dATI: TglVertexStream4dATI;
12858   glVertexStream4dvATI: TglVertexStream4dvATI;
12859   glNormalStream3bATI: TglNormalStream3bATI;
12860   glNormalStream3bvATI: TglNormalStream3bvATI;
12861   glNormalStream3sATI: TglNormalStream3sATI;
12862   glNormalStream3svATI: TglNormalStream3svATI;
12863   glNormalStream3iATI: TglNormalStream3iATI;
12864   glNormalStream3ivATI: TglNormalStream3ivATI;
12865   glNormalStream3fATI: TglNormalStream3fATI;
12866   glNormalStream3fvATI: TglNormalStream3fvATI;
12867   glNormalStream3dATI: TglNormalStream3dATI;
12868   glNormalStream3dvATI: TglNormalStream3dvATI;
12869   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12870   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12871   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12872
12873   // GL_AMD_performance_monitor
12874   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12875   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12876   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12877   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12878   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12879   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12880   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12881   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12882   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12883   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12884   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12885
12886   // GL_AMD_vertex_shader_tesselator
12887   glTessellationFactorAMD: TglTessellationFactorAMD;
12888   glTessellationModeAMD: TglTessellationModeAMD;
12889
12890   // GL_AMD_draw_buffers_blend
12891   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12892   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12893   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12894   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12895
12896   // GL_AMD_name_gen_delete
12897   glGenNamesAMD: TglGenNamesAMD;
12898   glDeleteNamesAMD: TglDeleteNamesAMD;
12899   glIsNameAMD: TglIsNameAMD;
12900
12901   // GL_AMD_debug_output
12902   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12903   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12904   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12905   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12906
12907   // GL_EXT_blend_color
12908   glBlendColorEXT: TglBlendColorEXT;
12909
12910   // GL_EXT_blend_func_separate
12911   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12912
12913   // GL_EXT_blend_minmax
12914   glBlendEquationEXT: TglBlendEquationEXT;
12915
12916   // GL_EXT_color_subtable
12917   glColorSubTableEXT: TglColorSubTableEXT;
12918   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12919
12920   // GL_EXT_compiled_vertex_array
12921   glLockArraysEXT: TglLockArraysEXT;
12922   glUnlockArraysEXT: TglUnlockArraysEXT;
12923
12924   // GL_EXT_convolution
12925   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12926   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12927   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12928   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12929   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12930   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12931   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12932   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12933   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12934   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12935   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12936   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12937   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12938
12939   // GL_EXT_coordinate_frame
12940   glTangent3bEXT: TglTangent3bEXT;
12941   glTangent3bvEXT: TglTangent3bvEXT;
12942   glTangent3dEXT: TglTangent3dEXT;
12943   glTangent3dvEXT: TglTangent3dvEXT;
12944   glTangent3fEXT: TglTangent3fEXT;
12945   glTangent3fvEXT: TglTangent3fvEXT;
12946   glTangent3iEXT: TglTangent3iEXT;
12947   glTangent3ivEXT: TglTangent3ivEXT;
12948   glTangent3sEXT: TglTangent3sEXT;
12949   glTangent3svEXT: TglTangent3svEXT;
12950   glBinormal3bEXT: TglBinormal3bEXT;
12951   glBinormal3bvEXT: TglBinormal3bvEXT;
12952   glBinormal3dEXT: TglBinormal3dEXT;
12953   glBinormal3dvEXT: TglBinormal3dvEXT;
12954   glBinormal3fEXT: TglBinormal3fEXT;
12955   glBinormal3fvEXT: TglBinormal3fvEXT;
12956   glBinormal3iEXT: TglBinormal3iEXT;
12957   glBinormal3ivEXT: TglBinormal3ivEXT;
12958   glBinormal3sEXT: TglBinormal3sEXT;
12959   glBinormal3svEXT: TglBinormal3svEXT;
12960   glTangentPointerEXT: TglTangentPointerEXT;
12961   glBinormalPointerEXT: TglBinormalPointerEXT;
12962
12963   // GL_EXT_copy_texture
12964   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12965   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12966   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12967   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12968   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12969
12970   // GL_EXT_cull_vertex
12971   glCullParameterdvEXT: TglCullParameterdvEXT;
12972   glCullParameterfvEXT: TglCullParameterfvEXT;
12973
12974   // GL_EXT_draw_range_elements
12975   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12976
12977   // GL_EXT_fog_coord
12978   glFogCoordfEXT: TglFogCoordfEXT;
12979   glFogCoordfvEXT: TglFogCoordfvEXT;
12980   glFogCoorddEXT: TglFogCoorddEXT;
12981   glFogCoorddvEXT: TglFogCoorddvEXT;
12982   glFogCoordPointerEXT: TglFogCoordPointerEXT;
12983
12984   // GL_EXT_framebuffer_object
12985   glIsRenderbufferEXT: TglIsRenderbufferEXT;
12986   glBindRenderbufferEXT: TglBindRenderbufferEXT;
12987   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
12988   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
12989   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
12990   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
12991   glIsFramebufferEXT: TglIsFramebufferEXT;
12992   glBindFramebufferEXT: TglBindFramebufferEXT;
12993   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
12994   glGenFramebuffersEXT: TglGenFramebuffersEXT;
12995   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
12996   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
12997   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
12998   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
12999   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
13000   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
13001   glGenerateMipmapEXT: TglGenerateMipmapEXT;
13002
13003   // GL_EXT_histogram
13004   glGetHistogramEXT: TglGetHistogramEXT;
13005   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
13006   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
13007   glGetMinmaxEXT: TglGetMinmaxEXT;
13008   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
13009   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
13010   glHistogramEXT: TglHistogramEXT;
13011   glMinmaxEXT: TglMinmaxEXT;
13012   glResetHistogramEXT: TglResetHistogramEXT;
13013   glResetMinmaxEXT: TglResetMinmaxEXT;
13014
13015   // GL_EXT_index_func
13016   glIndexFuncEXT: TglIndexFuncEXT;
13017
13018   // GL_EXT_index_material
13019   glIndexMaterialEXT: TglIndexMaterialEXT;
13020
13021   // GL_EXT_light_texture
13022   glApplyTextureEXT: TglApplyTextureEXT;
13023   glTextureLightEXT: TglTextureLightEXT;
13024   glTextureMaterialEXT: TglTextureMaterialEXT;
13025
13026   // GL_EXT_multi_draw_arrays
13027   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13028   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13029
13030   // GL_EXT_multisample
13031   glSampleMaskEXT: TglSampleMaskEXT;
13032   glSamplePatternEXT: TglSamplePatternEXT;
13033
13034   // GL_EXT_paletted_texture
13035   glColorTableEXT: TglColorTableEXT;
13036   glGetColorTableEXT: TglGetColorTableEXT;
13037   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13038   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13039
13040   // GL_EXT_pixel_transform
13041   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13042   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13043   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13044   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13045
13046   // GL_EXT_point_parameters
13047   glPointParameterfEXT: TglPointParameterfEXT;
13048   glPointParameterfvEXT: TglPointParameterfvEXT;
13049
13050   // GL_EXT_polygon_offset
13051   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13052
13053   // GL_EXT_secondary_color
13054   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13055   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13056   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13057   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13058   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13059   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13060   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13061   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13062   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13063   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13064   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13065   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13066   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13067   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13068   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13069   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13070   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13071
13072   // GL_EXT_stencil_two_side
13073   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13074
13075   // GL_EXT_subtexture
13076   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13077   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13078
13079   // GL_EXT_texture3D
13080   glTexImage3DEXT: TglTexImage3DEXT;
13081   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13082
13083   // GL_EXT_texture_object
13084   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13085   glBindTextureEXT: TglBindTextureEXT;
13086   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13087   glGenTexturesEXT: TglGenTexturesEXT;
13088   glIsTextureEXT: TglIsTextureEXT;
13089   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13090
13091   // GL_EXT_texture_perturb_normal
13092   glTextureNormalEXT: TglTextureNormalEXT;
13093
13094   // GL_EXT_vertex_array
13095   glArrayElementEXT: TglArrayElementEXT;
13096   glColorPointerEXT: TglColorPointerEXT;
13097   glDrawArraysEXT: TglDrawArraysEXT;
13098   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13099   glGetPointervEXT: TglGetPointervEXT;
13100   glIndexPointerEXT: TglIndexPointerEXT;
13101   glNormalPointerEXT: TglNormalPointerEXT;
13102   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13103   glVertexPointerEXT: TglVertexPointerEXT;
13104
13105   // GL_EXT_vertex_shader
13106   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13107   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13108   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13109   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13110   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13111   glShaderOp1EXT: TglShaderOp1EXT;
13112   glShaderOp2EXT: TglShaderOp2EXT;
13113   glShaderOp3EXT: TglShaderOp3EXT;
13114   glSwizzleEXT: TglSwizzleEXT;
13115   glWriteMaskEXT: TglWriteMaskEXT;
13116   glInsertComponentEXT: TglInsertComponentEXT;
13117   glExtractComponentEXT: TglExtractComponentEXT;
13118   glGenSymbolsEXT: TglGenSymbolsEXT;
13119   glSetInvariantEXT: TglSetInvariantEXT;
13120   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13121   glVariantbvEXT: TglVariantbvEXT;
13122   glVariantsvEXT: TglVariantsvEXT;
13123   glVariantivEXT: TglVariantivEXT;
13124   glVariantfvEXT: TglVariantfvEXT;
13125   glVariantdvEXT: TglVariantdvEXT;
13126   glVariantubvEXT: TglVariantubvEXT;
13127   glVariantusvEXT: TglVariantusvEXT;
13128   glVariantuivEXT: TglVariantuivEXT;
13129   glVariantPointerEXT: TglVariantPointerEXT;
13130   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13131   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13132   glBindLightParameterEXT: TglBindLightParameterEXT;
13133   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13134   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13135   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13136   glBindParameterEXT: TglBindParameterEXT;
13137   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13138   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13139   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13140   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13141   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13142   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13143   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13144   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13145   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13146   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13147   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13148
13149   // GL_EXT_vertex_weighting
13150   glVertexWeightfEXT: TglVertexWeightfEXT;
13151   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13152   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13153
13154   // GL_EXT_stencil_clear_tag
13155   glStencilClearTagEXT: TglStencilClearTagEXT;
13156
13157   // GL_EXT_framebuffer_blit
13158   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13159
13160   // GL_EXT_framebuffer_multisample
13161   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13162
13163   // GL_EXT_timer_query
13164   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13165   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13166
13167   // GL_EXT_gpu_program_parameters
13168   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13169   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13170
13171   // GL_EXT_bindable_uniform
13172   glUniformBufferEXT: TglUniformBufferEXT;
13173   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13174   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13175
13176   // GL_EXT_draw_buffers2
13177   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13178   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13179   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13180   glEnableIndexedEXT: TglEnableIndexedEXT;
13181   glDisableIndexedEXT: TglDisableIndexedEXT;
13182   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13183
13184   // GL_EXT_draw_instanced
13185   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13186   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13187
13188   // GL_EXT_geometry_shader4
13189   glProgramParameteriEXT: TglProgramParameteriEXT;
13190   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13191 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13192   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13193
13194   // GL_EXT_gpu_shader4
13195   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13196   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13197   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13198   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13199   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13200   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13201   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13202   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13203   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13204   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13205   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13206   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13207   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13208   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13209   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13210   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13211   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13212   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13213   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13214   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13215   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13216   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13217   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13218   glUniform1uiEXT: TglUniform1uiEXT;
13219   glUniform2uiEXT: TglUniform2uiEXT;
13220   glUniform3uiEXT: TglUniform3uiEXT;
13221   glUniform4uiEXT: TglUniform4uiEXT;
13222   glUniform1uivEXT: TglUniform1uivEXT;
13223   glUniform2uivEXT: TglUniform2uivEXT;
13224   glUniform3uivEXT: TglUniform3uivEXT;
13225   glUniform4uivEXT: TglUniform4uivEXT;
13226   glGetUniformuivEXT: TglGetUniformuivEXT;
13227   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13228   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13229
13230   // GL_EXT_texture_array
13231   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13232
13233   // GL_EXT_texture_buffer_object
13234   glTexBufferEXT: TglTexBufferEXT;
13235
13236   // GL_EXT_texture_integer
13237   glClearColorIiEXT: TglClearColorIiEXT;
13238   glClearColorIuiEXT: TglClearColorIuiEXT;
13239   glTexParameterIivEXT: TglTexParameterIivEXT;
13240   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13241   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13242   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13243
13244   // GL_EXT_transform_feedback
13245   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13246   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13247   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13248   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13249   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13250   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13251   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13252
13253   // GL_EXT_direct_state_access
13254   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13255   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13256   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13257   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13258   glMatrixMultfEXT: TglMatrixMultfEXT;
13259   glMatrixMultdEXT: TglMatrixMultdEXT;
13260   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13261   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13262   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13263   glMatrixScalefEXT: TglMatrixScalefEXT;
13264   glMatrixScaledEXT: TglMatrixScaledEXT;
13265   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13266   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13267   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13268   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13269   glMatrixPopEXT: TglMatrixPopEXT;
13270   glMatrixPushEXT: TglMatrixPushEXT;
13271   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13272   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13273   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13274   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13275   glTextureParameterfEXT: TglTextureParameterfEXT;
13276   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13277   glTextureParameteriEXT: TglTextureParameteriEXT;
13278   glTextureParameterivEXT: TglTextureParameterivEXT;
13279   glTextureImage1DEXT: TglTextureImage1DEXT;
13280   glTextureImage2DEXT: TglTextureImage2DEXT;
13281   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13282   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13283   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13284   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13285   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13286   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13287   glGetTextureImageEXT: TglGetTextureImageEXT;
13288   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13289   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13290   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13291   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13292   glTextureImage3DEXT: TglTextureImage3DEXT;
13293   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13294   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13295   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13296   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13297   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13298   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13299   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13300   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13301   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13302   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13303   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13304   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13305   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13306   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13307   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13308   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13309   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13310   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13311   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13312   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13313   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13314   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13315   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13316   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13317   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13318   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13319   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13320   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13321   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13322   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13323   glMultiTexGendEXT: TglMultiTexGendEXT;
13324   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13325   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13326   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13327   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13328   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13329   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13330   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13331   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13332   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13333   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13334   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13335   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13336   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13337   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13338   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13339   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13340   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13341   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13342   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13343   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13344   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13345   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13346   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13347   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13348   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13349   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13350   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13351   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13352   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13353   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13354   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13355   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13356   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13357   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13358   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13359   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13360   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13361   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13362   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13363   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13364   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13365   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13366   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13367   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13368   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13369   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13370   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13371   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13372   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13373   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13374   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13375   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13376   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13377   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13378   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13379   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13380   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13381   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13382   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13383   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13384   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13385   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13386   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13387   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13388   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13389   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13390   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13391   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13392   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13393   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13394   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13395   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13396   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13397   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13398   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13399   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13400   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13401   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13402   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13403   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13404   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13405   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13406   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13407   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13408   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13409   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13410   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13411   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13412   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13413   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13414   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13415   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13416   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13417   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13418   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13419   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13420   glTextureBufferEXT: TglTextureBufferEXT;
13421   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13422   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13423   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13424   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13425   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13426   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13427   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13428   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13429   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13430   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13431   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13432   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13433   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13434   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13435   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13436   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13437   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13438   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13439   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13440   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13441   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13442   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13443   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13444   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13445   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13446   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13447   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13448   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13449   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13450   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13451   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13452   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13453   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13454   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13455   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13456   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13457   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13458   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13459   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13460
13461   // GL_EXT_separate_shader_objects
13462   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13463   glActiveProgramEXT: TglActiveProgramEXT;
13464   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13465
13466   // GL_EXT_shader_image_load_store
13467   glBindImageTextureEXT: TglBindImageTextureEXT;
13468   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13469
13470   // GL_EXT_vertex_attrib_64bit
13471   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13472   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13473   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13474   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13475   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13476   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13477   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13478   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13479   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13480   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13481   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13482
13483   // GL_HP_image_transform
13484   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13485   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13486   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13487   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13488   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13489   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13490
13491   // GL_EXT_depth_bounds_test
13492   glDepthBoundsEXT: TglDepthBoundsEXT;
13493
13494   // GL_EXT_blend_equation_separate
13495   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13496
13497   // GL_IBM_multimode_draw_arrays
13498   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13499   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13500
13501   // GL_IBM_vertex_array_lists
13502   glColorPointerListIBM: TglColorPointerListIBM;
13503   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13504   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13505   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13506   glIndexPointerListIBM: TglIndexPointerListIBM;
13507   glNormalPointerListIBM: TglNormalPointerListIBM;
13508   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13509   glVertexPointerListIBM: TglVertexPointerListIBM;
13510
13511   // GL_INGR_blend_func_separate
13512   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13513
13514   // GL_INTEL_parallel_arrays
13515   glVertexPointervINTEL: TglVertexPointervINTEL;
13516   glNormalPointervINTEL: TglNormalPointervINTEL;
13517   glColorPointervINTEL: TglColorPointervINTEL;
13518   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13519
13520   // GL_MESA_resize_buffers
13521   glResizeBuffersMESA: TglResizeBuffersMESA;
13522
13523   // GL_MESA_window_pos
13524   glWindowPos2dMESA: TglWindowPos2dMESA;
13525   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13526   glWindowPos2fMESA: TglWindowPos2fMESA;
13527   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13528   glWindowPos2iMESA: TglWindowPos2iMESA;
13529   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13530   glWindowPos2sMESA: TglWindowPos2sMESA;
13531   glWindowPos2svMESA: TglWindowPos2svMESA;
13532   glWindowPos3dMESA: TglWindowPos3dMESA;
13533   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13534   glWindowPos3fMESA: TglWindowPos3fMESA;
13535   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13536   glWindowPos3iMESA: TglWindowPos3iMESA;
13537   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13538   glWindowPos3sMESA: TglWindowPos3sMESA;
13539   glWindowPos3svMESA: TglWindowPos3svMESA;
13540   glWindowPos4dMESA: TglWindowPos4dMESA;
13541   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13542   glWindowPos4fMESA: TglWindowPos4fMESA;
13543   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13544   glWindowPos4iMESA: TglWindowPos4iMESA;
13545   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13546   glWindowPos4sMESA: TglWindowPos4sMESA;
13547   glWindowPos4svMESA: TglWindowPos4svMESA;
13548
13549   // GL_NV_evaluators
13550   glMapControlPointsNV: TglMapControlPointsNV;
13551   glMapParameterivNV: TglMapParameterivNV;
13552   glMapParameterfvNV: TglMapParameterfvNV;
13553   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13554   glGetMapParameterivNV: TglGetMapParameterivNV;
13555   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13556   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13557   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13558   glEvalMapsNV: TglEvalMapsNV;
13559
13560   // GL_NV_fence
13561   glDeleteFencesNV: TglDeleteFencesNV;
13562   glGenFencesNV: TglGenFencesNV;
13563   glIsFenceNV: TglIsFenceNV;
13564   glTestFenceNV: TglTestFenceNV;
13565   glGetFenceivNV: TglGetFenceivNV;
13566   glFinishFenceNV: TglFinishFenceNV;
13567   glSetFenceNV: TglSetFenceNV;
13568
13569   // GL_NV_fragment_program
13570   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13571   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13572   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13573   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13574   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13575   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13576
13577   // GL_NV_half_float
13578   glVertex2hNV: TglVertex2hNV;
13579   glVertex2hvNV: TglVertex2hvNV;
13580   glVertex3hNV: TglVertex3hNV;
13581   glVertex3hvNV: TglVertex3hvNV;
13582   glVertex4hNV: TglVertex4hNV;
13583   glVertex4hvNV: TglVertex4hvNV;
13584   glNormal3hNV: TglNormal3hNV;
13585   glNormal3hvNV: TglNormal3hvNV;
13586   glColor3hNV: TglColor3hNV;
13587   glColor3hvNV: TglColor3hvNV;
13588   glColor4hNV: TglColor4hNV;
13589   glColor4hvNV: TglColor4hvNV;
13590   glTexCoord1hNV: TglTexCoord1hNV;
13591   glTexCoord1hvNV: TglTexCoord1hvNV;
13592   glTexCoord2hNV: TglTexCoord2hNV;
13593   glTexCoord2hvNV: TglTexCoord2hvNV;
13594   glTexCoord3hNV: TglTexCoord3hNV;
13595   glTexCoord3hvNV: TglTexCoord3hvNV;
13596   glTexCoord4hNV: TglTexCoord4hNV;
13597   glTexCoord4hvNV: TglTexCoord4hvNV;
13598   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13599   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13600   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13601   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13602   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13603   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13604   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13605   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13606   glFogCoordhNV: TglFogCoordhNV;
13607   glFogCoordhvNV: TglFogCoordhvNV;
13608   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13609   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13610   glVertexWeighthNV: TglVertexWeighthNV;
13611   glVertexWeighthvNV: TglVertexWeighthvNV;
13612   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13613   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13614   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13615   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13616   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13617   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13618   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13619   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13620   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13621   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13622   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13623   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13624
13625   // GL_NV_occlusion_query
13626   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13627   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13628   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13629   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13630   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13631   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13632   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13633
13634   // GL_NV_pixel_data_range
13635   glPixelDataRangeNV: TglPixelDataRangeNV;
13636   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13637
13638   // GL_NV_point_sprite
13639   glPointParameteriNV: TglPointParameteriNV;
13640   glPointParameterivNV: TglPointParameterivNV;
13641
13642   // GL_NV_primitive_restart
13643   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13644   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13645
13646   // GL_NV_register_combiners
13647   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13648   glCombinerParameterfNV: TglCombinerParameterfNV;
13649   glCombinerParameterivNV: TglCombinerParameterivNV;
13650   glCombinerParameteriNV: TglCombinerParameteriNV;
13651   glCombinerInputNV: TglCombinerInputNV;
13652   glCombinerOutputNV: TglCombinerOutputNV;
13653   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13654   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13655   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13656   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13657   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13658   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13659   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13660
13661   // GL_NV_register_combiners2
13662   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13663   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13664
13665   // GL_NV_vertex_array_range
13666   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13667   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13668
13669   // GL_NV_vertex_program
13670   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13671   glBindProgramNV: TglBindProgramNV;
13672   glDeleteProgramsNV: TglDeleteProgramsNV;
13673   glExecuteProgramNV: TglExecuteProgramNV;
13674   glGenProgramsNV: TglGenProgramsNV;
13675   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13676   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13677   glGetProgramivNV: TglGetProgramivNV;
13678   glGetProgramStringNV: TglGetProgramStringNV;
13679   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13680   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13681   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13682   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13683   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13684   glIsProgramNV: TglIsProgramNV;
13685   glLoadProgramNV: TglLoadProgramNV;
13686   glProgramParameter4dNV: TglProgramParameter4dNV;
13687   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13688   glProgramParameter4fNV: TglProgramParameter4fNV;
13689   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13690   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13691   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13692   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13693   glTrackMatrixNV: TglTrackMatrixNV;
13694   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13695   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13696   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13697   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13698   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13699   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13700   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13701   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13702   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13703   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13704   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13705   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13706   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13707   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13708   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13709   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13710   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13711   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13712   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13713   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13714   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13715   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13716   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13717   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13718   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13719   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13720   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13721   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13722   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13723   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13724   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13725   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13726   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13727   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13728   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13729   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13730   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13731   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13732   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13733   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13734
13735   // GL_NV_depth_buffer_float
13736   glDepthRangedNV: TglDepthRangedNV;
13737   glClearDepthdNV: TglClearDepthdNV;
13738   glDepthBoundsdNV: TglDepthBoundsdNV;
13739
13740   // GL_NV_framebuffer_multisample_coverage
13741   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13742
13743   // GL_NV_geometry_program4
13744   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13745
13746   // GL_NV_gpu_program4
13747   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13748   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13749   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13750   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13751   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13752   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13753   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13754   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13755   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13756   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13757   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13758   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13759   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13760   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13761   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13762   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13763
13764   // GL_NV_parameter_buffer_object
13765   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13766   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13767   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13768
13769   // GL_NV_transform_feedback
13770   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13771   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13772   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13773   glBindBufferRangeNV: TglBindBufferRangeNV;
13774   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13775   glBindBufferBaseNV: TglBindBufferBaseNV;
13776   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13777   glActiveVaryingNV: TglActiveVaryingNV;
13778   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13779   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13780   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13781   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13782
13783   // GL_NV_conditional_render
13784   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13785   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13786
13787   // GL_NV_present_video
13788   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13789   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13790   glGetVideoivNV: TglGetVideoivNV;
13791   glGetVideouivNV: TglGetVideouivNV;
13792   glGetVideoi64vNV: TglGetVideoi64vNV;
13793   glGetVideoui64vNV: TglGetVideoui64vNV;
13794 //  glVideoParameterivNV: TglVideoParameterivNV;
13795
13796   // GL_NV_explicit_multisample
13797   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13798   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13799   glTexRenderbufferNV: TglTexRenderbufferNV;
13800
13801   // GL_NV_transform_feedback2
13802   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13803   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13804   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13805   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13806   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13807   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13808   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13809
13810   // GL_NV_video_capture
13811   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13812   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13813   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13814   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13815   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13816   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13817   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13818   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13819   glVideoCaptureNV: TglVideoCaptureNV;
13820   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13821   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13822   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13823
13824   // GL_NV_copy_image
13825   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13826
13827   // GL_NV_shader_buffer_load
13828   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13829   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13830   glIsBufferResidentNV: TglIsBufferResidentNV;
13831   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13832   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13833   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13834   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13835   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13836   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13837   glUniformui64NV: TglUniformui64NV;
13838   glUniformui64vNV: TglUniformui64vNV;
13839   glGetUniformui64vNV: TglGetUniformui64vNV;
13840   glProgramUniformui64NV: TglProgramUniformui64NV;
13841   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13842
13843   // GL_NV_vertex_buffer_unified_memory
13844   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13845   glVertexFormatNV: TglVertexFormatNV;
13846   glNormalFormatNV: TglNormalFormatNV;
13847   glColorFormatNV: TglColorFormatNV;
13848   glIndexFormatNV: TglIndexFormatNV;
13849   glTexCoordFormatNV: TglTexCoordFormatNV;
13850   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13851   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13852   glFogCoordFormatNV: TglFogCoordFormatNV;
13853   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13854   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13855   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13856
13857   // GL_NV_gpu_program5
13858   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13859   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13860
13861   // GL_NV_gpu_shader5
13862   glUniform1i64NV: TglUniform1i64NV;
13863   glUniform2i64NV: TglUniform2i64NV;
13864   glUniform3i64NV: TglUniform3i64NV;
13865   glUniform4i64NV: TglUniform4i64NV;
13866   glUniform1i64vNV: TglUniform1i64vNV;
13867   glUniform2i64vNV: TglUniform2i64vNV;
13868   glUniform3i64vNV: TglUniform3i64vNV;
13869   glUniform4i64vNV: TglUniform4i64vNV;
13870   glUniform1ui64NV: TglUniform1ui64NV;
13871   glUniform2ui64NV: TglUniform2ui64NV;
13872   glUniform3ui64NV: TglUniform3ui64NV;
13873   glUniform4ui64NV: TglUniform4ui64NV;
13874   glUniform1ui64vNV: TglUniform1ui64vNV;
13875   glUniform2ui64vNV: TglUniform2ui64vNV;
13876   glUniform3ui64vNV: TglUniform3ui64vNV;
13877   glUniform4ui64vNV: TglUniform4ui64vNV;
13878   glGetUniformi64vNV: TglGetUniformi64vNV;
13879   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13880   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13881   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13882   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13883   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13884   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13885   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13886   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13887   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13888   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13889   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13890   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13891   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13892   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13893   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13894   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13895
13896   // GL_NV_vertex_attrib_integer_64bit
13897   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13898   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13899   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13900   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13901   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13902   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13903   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13904   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13905   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13906   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13907   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13908   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13909   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13910   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13911   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13912   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13913   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13914   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13915   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13916
13917   // GL_NV_vdpau_interop
13918   glVDPAUInitNV: TglVDPAUInitNV;
13919   glVDPAUFiniNV: TglVDPAUFiniNV;
13920   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13921   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13922   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13923   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13924   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13925   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13926   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13927   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13928
13929   // GL_NV_texture_barrier
13930   glTextureBarrierNV: TglTextureBarrierNV;
13931
13932   // (4.3) GL_NV_path_rendering
13933   glGenPathsNV : TglGenPathsNV;
13934   glDeletePathsNV : TglDeletePathsNV;
13935   glIsPathNV : TglIsPathNV;
13936   glPathCommandsNV : TglPathCommandsNV;
13937   glPathCoordsNV : TglPathCoordsNV;
13938   glPathSubCommandsNV : TglPathSubCommandsNV;
13939   glPathSubCoordsNV : TglPathSubCoordsNV;
13940   glPathStringNV : TglPathStringNV;
13941   glPathGlyphsNV : TglPathGlyphsNV;
13942   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13943   glWeightPathsNV : TglWeightPathsNV;
13944   glCopyPathNV : TglCopyPathNV;
13945   glInterpolatePathsNV : TglInterpolatePathsNV;
13946   glTransformPathNV : TglTransformPathNV;
13947   glPathParameterivNV : TglPathParameterivNV;
13948   glPathParameteriNV : TglPathParameteriNV;
13949   glPathParameterfvNV : TglPathParameterfvNV;
13950   glPathParameterfNV : TglPathParameterfNV;
13951   glPathDashArrayNV : TglPathDashArrayNV;
13952   glPathStencilFuncNV : TglPathStencilFuncNV;
13953   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13954   glStencilFillPathNV : TglStencilFillPathNV;
13955   glStencilStrokePathNV : TglStencilStrokePathNV;
13956   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13957   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13958   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13959   glPathColorGenNV : TglPathColorGenNV;
13960   glPathTexGenNV : TglPathTexGenNV;
13961   glPathFogGenNV : TglPathFogGenNV;
13962   glCoverFillPathNV : TglCoverFillPathNV;
13963   glCoverStrokePathNV : TglCoverStrokePathNV;
13964   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13965   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13966   glGetPathParameterivNV : TglGetPathParameterivNV;
13967   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13968   glGetPathCommandsNV : TglGetPathCommandsNV;
13969   glGetPathCoordsNV : TglGetPathCoordsNV;
13970   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13971   glGetPathMetricsNV : TglGetPathMetricsNV;
13972   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13973   glGetPathSpacingNV : TglGetPathSpacingNV;
13974   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13975   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13976   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13977   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13978   glIsPointInFillPathNV : TglIsPointInFillPathNV;
13979   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
13980   glGetPathLengthNV : TglGetPathLengthNV;
13981   glPointAlongPathNV : TglPointAlongPathNV;
13982
13983   // GL_AMD_pinned_memory
13984
13985   // GL_AMD_stencil_operation_extended
13986   glStencilOpValueAMD : TglStencilOpValueAMD;
13987
13988   // GL_AMD_vertex_shader_viewport_index
13989
13990   // GL_AMD_vertex_shader_layer
13991
13992   // GL_NV_bindless_texture
13993   glGetTextureHandleNV : TglGetTextureHandleNV;
13994   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
13995   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
13996   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
13997   glGetImageHandleNV : TglGetImageHandleNV;
13998   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
13999   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
14000   glUniformHandleui64NV : TglUniformHandleui64NV;
14001   glUniformHandleui64vNV : TglUniformHandleui64vNV;
14002   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
14003   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
14004   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
14005   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
14006
14007   // GL_ARB_bindless_texture
14008   glGetTextureHandleARB : TglGetTextureHandleARB;
14009   glGetTextureSamplerHandleARB : TglGetTextureSamplerHandleARB;
14010   glMakeTextureHandleResidentARB : TglMakeTextureHandleResidentARB;
14011   glMakeTextureHandleNonResidentARB : TglMakeTextureHandleNonResidentARB;
14012   glGetImageHandleARB : TglGetImageHandleARB;
14013   glMakeImageHandleResidentARB : TglMakeImageHandleResidentARB;
14014   glMakeImageHandleNonResidentARB : TglMakeImageHandleNonResidentARB;
14015   glUniformHandleui64ARB : TglUniformHandleui64ARB;
14016   glUniformHandleui64vARB : TglUniformHandleui64vARB;
14017   glProgramUniformHandleui64ARB : TglProgramUniformHandleui64ARB;
14018   glProgramUniformHandleui64vARB : TglProgramUniformHandleui64vARB;
14019   glIsTextureHandleResidentARB : TglIsTextureHandleResidentARB;
14020   glIsImageHandleResidentARB : TglIsImageHandleResidentARB;
14021   glVertexAttribL1ui64ARB : TglVertexAttribL1ui64ARB;
14022   glVertexAttribL1ui64vARB : TglVertexAttribL1ui64vARB;
14023   glGetVertexAttribLui64vARB : TglGetVertexAttribLui64vARB;
14024
14025   // GL_PGI_misc_hints
14026   glHintPGI: TglHintPGI;
14027
14028   // GL_SGIS_detail_texture
14029   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
14030   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
14031
14032   // GL_SGIS_fog_function
14033   glFogFuncSGIS: TglFogFuncSGIS;
14034   glGetFogFuncSGIS: TglGetFogFuncSGIS;
14035
14036   // GL_SGIS_multisample
14037   glSampleMaskSGIS: TglSampleMaskSGIS;
14038   glSamplePatternSGIS: TglSamplePatternSGIS;
14039
14040   // GL_SGIS_pixel_texture
14041   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14042   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14043   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14044   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14045   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14046   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14047
14048   // GL_SGIS_point_parameters
14049   glPointParameterfSGIS: TglPointParameterfSGIS;
14050   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14051
14052   // GL_SGIS_sharpen_texture
14053   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14054   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14055
14056   // GL_SGIS_texture4D
14057   glTexImage4DSGIS: TglTexImage4DSGIS;
14058   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14059
14060   // GL_SGIS_texture_color_mask
14061   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14062
14063   // GL_SGIS_texture_filter4
14064   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14065   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14066
14067   // GL_SGIX_async
14068   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14069   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14070   glPollAsyncSGIX: TglPollAsyncSGIX;
14071   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14072   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14073   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14074
14075   // GL_SGIX_flush_raster
14076   glFlushRasterSGIX: TglFlushRasterSGIX;
14077
14078   // GL_SGIX_fragment_lighting
14079   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14080   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14081   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14082   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14083   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14084   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14085   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14086   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14087   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14088   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14089   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14090   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14091   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14092   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14093   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14094   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14095   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14096   glLightEnviSGIX: TglLightEnviSGIX;
14097
14098   // GL_SGIX_framezoom
14099   glFrameZoomSGIX: TglFrameZoomSGIX;
14100
14101   // GL_SGIX_igloo_interface
14102   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14103
14104   // GL_SGIX_instruments
14105   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14106   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14107   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14108   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14109   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14110   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14111
14112   // GL_SGIX_list_priority
14113   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14114   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14115   glListParameterfSGIX: TglListParameterfSGIX;
14116   glListParameterfvSGIX: TglListParameterfvSGIX;
14117   glListParameteriSGIX: TglListParameteriSGIX;
14118   glListParameterivSGIX: TglListParameterivSGIX;
14119
14120   // GL_SGIX_pixel_texture
14121   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14122
14123   // GL_SGIX_polynomial_ffd
14124   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14125   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14126   glDeformSGIX: TglDeformSGIX;
14127   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14128
14129   // GL_SGIX_reference_plane
14130   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14131
14132   // GL_SGIX_sprite
14133   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14134   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14135   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14136   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14137
14138   // GL_SGIX_tag_sample_buffer
14139   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14140
14141   // GL_SGI_color_table
14142   glColorTableSGI: TglColorTableSGI;
14143   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14144   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14145   glCopyColorTableSGI: TglCopyColorTableSGI;
14146   glGetColorTableSGI: TglGetColorTableSGI;
14147   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14148   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14149
14150   // GL_SUNX_constant_data
14151   glFinishTextureSUNX: TglFinishTextureSUNX;
14152
14153   // GL_SUN_global_alpha
14154   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14155   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14156   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14157   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14158   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14159   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14160   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14161   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14162
14163   // GL_SUN_mesh_array
14164   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14165
14166   // GL_SUN_triangle_list
14167   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14168   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14169   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14170   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14171   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14172   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14173   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14174
14175   // GL_SUN_vertex
14176   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14177   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14178   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14179   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14180   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14181   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14182   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14183   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14184   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14185   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14186   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14187   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14188   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14189   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14190   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14191   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14192   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14193   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14194   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14195   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14196   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14197   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14198   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14199   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14200   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14201   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14202   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14203   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14204   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14205   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14206   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14207   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14208   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14209   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14210   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14211   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14212   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14213   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14214   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14215   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14216
14217 {$IFDEF DGL_WIN}
14218   wglGetProcAddress: TwglGetProcAddress;
14219   wglCopyContext: TwglCopyContext;
14220   wglCreateContext: TwglCreateContext;
14221   wglCreateLayerContext: TwglCreateLayerContext;
14222   wglDeleteContext: TwglDeleteContext;
14223   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14224   wglGetCurrentContext: TwglGetCurrentContext;
14225   wglGetCurrentDC: TwglGetCurrentDC;
14226   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14227   wglMakeCurrent: TwglMakeCurrent;
14228   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14229   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14230   wglShareLists: TwglShareLists;
14231   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14232   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14233   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14234   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14235   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14236   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14237   wglUseFontBitmaps: TwglUseFontBitmaps;
14238   wglUseFontOutlines: TwglUseFontOutlines;
14239
14240    // WGL_ARB_buffer_region
14241   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14242   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14243   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14244   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14245
14246   // WGL_ARB_extensions_string
14247   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14248
14249   // WGL_ARB_make_current_read
14250   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14251   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14252
14253   // WGL_ARB_pbuffer
14254   wglCreatePbufferARB: TwglCreatePbufferARB;
14255   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14256   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14257   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14258   wglQueryPbufferARB: TwglQueryPbufferARB;
14259
14260   // WGL_ARB_pixel_format
14261   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14262   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14263   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14264   // WGL_ARB_color_buffer_float
14265   wglClampColorARB: TwglClampColorARB;
14266
14267   // WGL_ARB_render_texture
14268   wglBindTexImageARB: TwglBindTexImageARB;
14269   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14270   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14271
14272   // WGL_ARB_create_context
14273   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14274
14275   // WGL_AMD_gpu_association
14276   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14277   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14278   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14279   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14280   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14281   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14282   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14283   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14284   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14285
14286   // WGL_EXT_display_color_table
14287   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14288   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14289   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14290   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14291
14292   // WGL_EXT_extensions_string
14293   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14294
14295   // WGL_EXT_make_current_read
14296   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14297   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14298
14299   // WGL_EXT_pbuffer
14300   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14301   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14302   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14303   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14304   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14305
14306   // WGL_EXT_pixel_format
14307   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14308   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14309   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14310
14311   // WGL_EXT_swap_control
14312   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14313   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14314
14315   // WGL_I3D_digital_video_control
14316   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14317   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14318
14319   // WGL_I3D_gamma
14320   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14321   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14322   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14323   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14324
14325   // WGL_I3D_genlock
14326   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14327   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14328   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14329   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14330   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14331   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14332   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14333   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14334   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14335   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14336   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14337   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14338
14339   // WGL_I3D_image_buffer
14340   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14341   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14342   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14343   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14344
14345   // WGL_I3D_swap_frame_lock
14346   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14347   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14348   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14349   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14350
14351   // WGL_I3D_swap_frame_usage
14352   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14353   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14354   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14355   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14356
14357   // WGL_NV_vertex_array_range
14358   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14359   wglFreeMemoryNV: TwglFreeMemoryNV;
14360
14361   // WGL_NV_present_video
14362   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14363   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14364   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14365
14366   // WGL_NV_video_output
14367   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14368   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14369   wglBindVideoImageNV: TwglBindVideoImageNV;
14370   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14371   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14372   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14373
14374   // WGL_NV_swap_group
14375   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14376   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14377   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14378   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14379   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14380   wglResetFrameCountNV: TwglResetFrameCountNV;
14381
14382   // WGL_NV_gpu_affinity
14383   wglEnumGpusNV: TwglEnumGpusNV;
14384   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14385   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14386   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14387   wglDeleteDCNV: TwglDeleteDCNV;
14388
14389   // WGL_NV_video_capture
14390   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14391   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14392   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14393   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14394   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14395
14396   // WGL_NV_copy_image
14397   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14398
14399   // WGL_NV_DX_interop
14400   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14401   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14402   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14403   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14404   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14405   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14406   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14407   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14408
14409   // WGL_OML_sync_control
14410   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14411   wglGetMscRateOML: TwglGetMscRateOML;
14412   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14413   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14414   wglWaitForMscOML: TwglWaitForMscOML;
14415   wglWaitForSbcOML: TwglWaitForSbcOML;
14416
14417   // WGL_3DL_stereo_control
14418   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14419
14420   // WIN_draw_range_elements
14421   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14422
14423   // WIN_swap_hint
14424   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14425 {$ENDIF}
14426
14427 {$IFDEF DGL_LINUX}
14428   glXChooseVisual: TglXChooseVisual;
14429   glXCopyContext: TglXCopyContext;
14430   glXCreateContext: TglXCreateContext;
14431   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14432   glXDestroyContext: TglXDestroyContext;
14433   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14434   glXGetConfig: TglXGetConfig;
14435   glXGetCurrentContext: TglXGetCurrentContext;
14436   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14437   glXIsDirect: TglXIsDirect;
14438   glXMakeCurrent: TglXMakeCurrent;
14439   glXQueryExtension: TglXQueryExtension;
14440   glXQueryVersion: TglXQueryVersion;
14441   glXSwapBuffers: TglXSwapBuffers;
14442   glXUseXFont: TglXUseXFont;
14443   glXWaitGL: TglXWaitGL;
14444   glXWaitX: TglXWaitX;
14445
14446   glXGetClientString: TglXGetClientString;
14447   glXQueryServerString: TglXQueryServerString;
14448   glXQueryExtensionsString: TglXQueryExtensionsString;
14449
14450   // GLX_VERSION_1_3
14451   glXGetFBConfigs: TglXGetFBConfigs;
14452   glXChooseFBConfig: TglXChooseFBConfig;
14453   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14454   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14455   glXCreateWindow: TglXCreateWindow;
14456   glXDestroyWindow: TglXDestroyWindow;
14457   glXCreatePixmap: TglXCreatePixmap;
14458
14459   glXDestroyPixmap: TglXDestroyPixmap;
14460   glXCreatePbuffer: TglXCreatePbuffer;
14461   glXDestroyPbuffer: TglXDestroyPbuffer;
14462   glXQueryDrawable: TglXQueryDrawable;
14463   glXCreateNewContext: TglXCreateNewContext;
14464   glXMakeContextCurrent: TglXMakeContextCurrent;
14465   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14466   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14467
14468   glXQueryContext: TglXQueryContext;
14469   glXSelectEvent: TglXSelectEvent;
14470   glXGetSelectedEvent: TglXGetSelectedEvent;
14471
14472   // GLX_VERSION_1_4
14473   glXGetProcAddress: TglXGetProcAddress;
14474
14475   // GLX_ARB_get_proc_address
14476   glXGetProcAddressARB: TglXGetProcAddressARB;
14477
14478   // GLX_ARB_create_context
14479   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14480
14481   // GLX_EXT_import_context
14482   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14483   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14484   glXGetContextIDEXT: TglXGetContextIDEXT;
14485   glXImportContextEXT: TglXImportContextEXT;
14486   glXFreeContextEXT: TglXFreeContextEXT;
14487
14488   // GLX_EXT_texture_from_pixmap
14489   glXBindTexImageEXT: TglXBindTexImageEXT;
14490   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14491 {$ENDIF}
14492
14493   // GL utility functions and procedures
14494   gluErrorString: TgluErrorString;
14495   gluGetString: TgluGetString;
14496   gluOrtho2D: TgluOrtho2D;
14497   gluPerspective: TgluPerspective;
14498   gluPickMatrix: TgluPickMatrix;
14499   gluLookAt: TgluLookAt;
14500   gluProject: TgluProject;
14501   gluUnProject: TgluUnProject;
14502   gluScaleImage: TgluScaleImage;
14503   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14504   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14505   gluNewQuadric: TgluNewQuadric;
14506   gluDeleteQuadric: TgluDeleteQuadric;
14507   gluQuadricNormals: TgluQuadricNormals;
14508   gluQuadricTexture: TgluQuadricTexture;
14509   gluQuadricOrientation: TgluQuadricOrientation;
14510   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14511   gluCylinder: TgluCylinder;
14512   gluDisk: TgluDisk;
14513   gluPartialDisk: TgluPartialDisk;
14514   gluSphere: TgluSphere;
14515   gluQuadricCallback: TgluQuadricCallback;
14516   gluNewTess: TgluNewTess;
14517   gluDeleteTess: TgluDeleteTess;
14518   gluTessBeginPolygon: TgluTessBeginPolygon;
14519   gluTessBeginContour: TgluTessBeginContour;
14520   gluTessVertex: TgluTessVertex;
14521   gluTessEndContour: TgluTessEndContour;
14522   gluTessEndPolygon: TgluTessEndPolygon;
14523   gluTessProperty: TgluTessProperty;
14524   gluTessNormal: TgluTessNormal;
14525   gluTessCallback: TgluTessCallback;
14526   gluGetTessProperty: TgluGetTessProperty;
14527   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14528   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14529   gluBeginSurface: TgluBeginSurface;
14530   gluBeginCurve: TgluBeginCurve;
14531   gluEndCurve: TgluEndCurve;
14532   gluEndSurface: TgluEndSurface;
14533   gluBeginTrim: TgluBeginTrim;
14534   gluEndTrim: TgluEndTrim;
14535   gluPwlCurve: TgluPwlCurve;
14536   gluNurbsCurve: TgluNurbsCurve;
14537   gluNurbsSurface: TgluNurbsSurface;
14538   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14539   gluNurbsProperty: TgluNurbsProperty;
14540   gluGetNurbsProperty: TgluGetNurbsProperty;
14541   gluNurbsCallback: TgluNurbsCallback;
14542   gluBeginPolygon: TgluBeginPolygon;
14543   gluNextContour: TgluNextContour;
14544   gluEndPolygon: TgluEndPolygon;
14545
14546
14547 type
14548   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14549
14550 var
14551   GL_LibHandle: Pointer = nil;
14552   GLU_LibHandle: Pointer = nil;
14553
14554   LastPixelFormat: Integer;
14555   ExtensionsRead: Boolean;
14556   ImplementationRead: Boolean;
14557
14558
14559 const
14560 {$IFDEF DGL_WIN}
14561   OPENGL_LIBNAME = 'OpenGL32.dll';
14562   GLU_LIBNAME = 'GLU32.dll';
14563 {$ELSE}
14564   {$IFDEF darwin}
14565     OPENGL_LIBNAME = 'libGL.dylib';
14566     GLU_LIBNAME = 'libGLU.dylib';
14567   {$ELSE}
14568     OPENGL_LIBNAME = 'libGL.so.1';
14569     GLU_LIBNAME = 'libGLU.so.1';
14570   {$ENDIF}
14571 {$ENDIF}
14572
14573 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14574
14575 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14576 function dglCheckExtension(Extension: AnsiString): Boolean;
14577
14578 procedure ReadExtensions;
14579 procedure ReadImplementationProperties;
14580
14581 // =============================================================================
14582 // Helper-Functions
14583 // =============================================================================
14584 {$IFDEF DGL_WIN}
14585   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14586   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14587   procedure DestroyRenderingContext(RC: HGLRC);
14588
14589   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14590   procedure DeactivateRenderingContext;
14591 {$ENDIF}
14592
14593
14594 procedure ReadOpenGLCore;
14595 procedure Read_GL_3DFX_tbuffer;
14596 procedure Read_GL_APPLE_element_array;
14597 procedure Read_GL_APPLE_fence;
14598 procedure Read_GL_APPLE_vertex_array_object;
14599 procedure Read_GL_APPLE_vertex_array_range;
14600 procedure Read_GL_APPLE_texture_range;
14601 procedure Read_GL_APPLE_vertex_program_evaluators;
14602 procedure Read_GL_APPLE_object_purgeable;
14603 procedure Read_GL_ARB_matrix_palette;
14604 procedure Read_GL_ARB_multitexture;
14605 procedure Read_GL_ARB_point_parameters;
14606 procedure Read_GL_ARB_texture_compression;
14607 procedure Read_GL_ARB_transpose_matrix;
14608 procedure Read_GL_ARB_vertex_blend;
14609 procedure Read_GL_ARB_vertex_buffer_object;
14610 procedure Read_GL_ARB_vertex_program;
14611 procedure Read_GL_ARB_window_pos;
14612 procedure Read_GL_ARB_color_buffer_float;
14613 procedure Read_GL_ARB_Shader_Objects;
14614 procedure Read_GL_ARB_occlusion_query;
14615 procedure Read_GL_ARB_draw_instanced;
14616 procedure Read_GL_ARB_framebuffer_object;
14617 procedure Read_GL_ARB_geometry_shader4;
14618 procedure Read_GL_ARB_instanced_arrays;
14619 procedure Read_GL_ARB_map_buffer_range;
14620 procedure Read_GL_ARB_texture_buffer_object;
14621 procedure Read_GL_ARB_vertex_array_object;
14622 procedure Read_GL_ARB_uniform_buffer_object;
14623 procedure Read_GL_ARB_copy_buffer;
14624 procedure Read_GL_ARB_draw_elements_base_vertex;
14625 procedure Read_GL_ARB_provoking_vertex;
14626 procedure Read_GL_ARB_sync;
14627 procedure Read_GL_ARB_texture_multisample;
14628 procedure Read_GL_ARB_draw_buffers_blend;
14629 procedure Read_GL_ARB_sample_shading;
14630 procedure Read_GL_ARB_shading_language_include;
14631 procedure Read_GL_ARB_blend_func_extended;
14632 procedure Read_GL_ARB_sampler_objects;
14633 procedure Read_GL_ARB_timer_query;
14634 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14635 procedure Read_GL_ARB_draw_indirect;
14636 procedure Read_GL_ARB_gpu_shader_fp64;
14637 procedure Read_GL_ARB_shader_subroutine;
14638 procedure Read_GL_ARB_tessellation_shader;
14639 procedure Read_GL_ARB_transform_feedback2;
14640 procedure Read_GL_ARB_transform_feedback3;
14641 procedure Read_GL_ARB_ES2_compatibility;
14642 procedure Read_GL_ARB_get_program_binary;
14643 procedure Read_GL_ARB_separate_shader_objects;
14644 procedure Read_GL_ARB_vertex_attrib_64bit;
14645 procedure Read_GL_ARB_viewport_array;
14646 // GL 4.2
14647 procedure Read_GL_ARB_base_instance;
14648 procedure Read_GL_ARB_transform_feedback_instanced;
14649 procedure Read_GL_ARB_internalformat_query;
14650 procedure Read_GL_ARB_shader_atomic_counters;
14651 procedure Read_GL_ARB_shader_image_load_store;
14652 procedure Read_GL_ARB_texture_storage;
14653 // GL 4.3
14654 procedure Read_GL_KHR_debug;
14655 procedure Read_GL_ARB_clear_buffer_object;
14656 procedure Read_GL_ARB_compute_shader;
14657 procedure Read_GL_ARB_copy_image;
14658 procedure Read_GL_ARB_framebuffer_no_attachments;
14659 procedure Read_GL_ARB_internalformat_query2;
14660 procedure Read_GL_ARB_invalidate_subdata;
14661 procedure Read_GL_ARB_multi_draw_indirect;
14662 procedure Read_GL_ARB_program_interface_query;
14663 procedure Read_GL_ARB_shader_storage_buffer_object;
14664 procedure Read_GL_ARB_texture_buffer_range;
14665 procedure Read_GL_ARB_texture_storage_multisample;
14666 procedure Read_GL_ARB_texture_view;
14667 procedure Read_GL_ARB_vertex_attrib_binding;
14668
14669
14670 procedure Read_GL_4_4;
14671 procedure Read_GL_4_5;
14672
14673 //
14674 procedure Read_GL_ARB_cl_event;
14675 procedure Read_GL_ARB_debug_output;
14676 procedure Read_GL_ARB_robustness;
14677 procedure Read_GL_ATI_draw_buffers;
14678 procedure Read_GL_ATI_element_array;
14679 procedure Read_GL_ATI_envmap_bumpmap;
14680 procedure Read_GL_ATI_fragment_shader;
14681 procedure Read_GL_ATI_map_object_buffer;
14682 procedure Read_GL_ATI_pn_triangles;
14683 procedure Read_GL_ATI_separate_stencil;
14684 procedure Read_GL_ATI_vertex_array_object;
14685 procedure Read_GL_ATI_vertex_attrib_array_object;
14686 procedure Read_GL_ATI_vertex_streams;
14687 procedure Read_GL_AMD_performance_monitor;
14688 procedure Read_GL_AMD_vertex_shader_tesselator;
14689 procedure Read_GL_AMD_draw_buffers_blend;
14690 procedure Read_GL_AMD_name_gen_delete;
14691 procedure Read_GL_AMD_debug_output;
14692 procedure Read_GL_EXT_blend_color;
14693 procedure Read_GL_EXT_blend_func_separate;
14694 procedure Read_GL_EXT_blend_minmax;
14695 procedure Read_GL_EXT_color_subtable;
14696 procedure Read_GL_EXT_compiled_vertex_array;
14697 procedure Read_GL_EXT_convolution;
14698 procedure Read_GL_EXT_coordinate_frame;
14699 procedure Read_GL_EXT_copy_texture;
14700 procedure Read_GL_EXT_cull_vertex;
14701 procedure Read_GL_EXT_draw_range_elements;
14702 procedure Read_GL_EXT_fog_coord;
14703 procedure Read_GL_EXT_framebuffer_object;
14704 procedure Read_GL_EXT_histogram;
14705 procedure Read_GL_EXT_index_func;
14706 procedure Read_GL_EXT_index_material;
14707 procedure Read_GL_EXT_multi_draw_arrays;
14708 procedure Read_GL_EXT_multisample;
14709 procedure Read_GL_EXT_paletted_texture;
14710 procedure Read_GL_EXT_pixel_transform;
14711 procedure Read_GL_EXT_point_parameters;
14712 procedure Read_GL_EXT_polygon_offset;
14713 procedure Read_GL_EXT_secondary_color;
14714 procedure Read_GL_EXT_stencil_two_side;
14715 procedure Read_GL_EXT_subtexture;
14716 procedure Read_GL_EXT_texture3D;
14717 procedure Read_GL_EXT_texture_object;
14718 procedure Read_GL_EXT_texture_perturb_normal;
14719 procedure Read_GL_EXT_vertex_array;
14720 procedure Read_GL_EXT_vertex_shader;
14721 procedure Read_GL_EXT_vertex_weighting;
14722 procedure Read_GL_EXT_depth_bounds_test;
14723 procedure Read_GL_EXT_blend_equation_separate;
14724 procedure Read_GL_EXT_stencil_clear_tag;
14725 procedure Read_GL_EXT_framebuffer_blit;
14726 procedure Read_GL_EXT_framebuffer_multisample;
14727 procedure Read_GL_EXT_timer_query;
14728 procedure Read_GL_EXT_gpu_program_parameters;
14729 procedure Read_GL_EXT_bindable_uniform;
14730 procedure Read_GL_EXT_draw_buffers2;
14731 procedure Read_GL_EXT_draw_instanced;
14732 procedure Read_GL_EXT_geometry_shader4;
14733 procedure Read_GL_EXT_gpu_shader4;
14734 procedure Read_GL_EXT_texture_array;
14735 procedure Read_GL_EXT_texture_buffer_object;
14736 procedure Read_GL_EXT_texture_integer;
14737 procedure Read_GL_EXT_transform_feedback;
14738 procedure Read_GL_EXT_direct_state_access;
14739 procedure Read_GL_EXT_separate_shader_objects;
14740 procedure Read_GL_EXT_shader_image_load_store;
14741 procedure Read_GL_EXT_vertex_attrib_64bit;
14742 procedure Read_GL_HP_image_transform;
14743 procedure Read_GL_IBM_multimode_draw_arrays;
14744 procedure Read_GL_IBM_vertex_array_lists;
14745 procedure Read_GL_INGR_blend_func_separate;
14746 procedure Read_GL_INTEL_parallel_arrays;
14747 procedure Read_GL_MESA_resize_buffers;
14748 procedure Read_GL_MESA_window_pos;
14749 procedure Read_GL_NV_evaluators;
14750 procedure Read_GL_NV_fence;
14751 procedure Read_GL_NV_fragment_program;
14752 procedure Read_GL_NV_half_float;
14753 procedure Read_GL_NV_occlusion_query;
14754 procedure Read_GL_NV_pixel_data_range;
14755 procedure Read_GL_NV_point_sprite;
14756 procedure Read_GL_NV_primitive_restart;
14757 procedure Read_GL_NV_register_combiners;
14758 procedure Read_GL_NV_register_combiners2;
14759 procedure Read_GL_NV_vertex_array_range;
14760 procedure Read_GL_NV_vertex_program;
14761 procedure Read_GL_NV_depth_buffer_float;
14762 procedure Read_GL_NV_framebuffer_multisample_coverage;
14763 procedure Read_GL_NV_geometry_program4;
14764 procedure Read_GL_NV_gpu_program4;
14765 procedure Read_GL_NV_parameter_buffer_object;
14766 procedure Read_GL_NV_transform_feedback;
14767 procedure Read_GL_NV_conditional_render;
14768 procedure Read_GL_NV_present_video;
14769 procedure Read_GL_NV_explicit_multisample;
14770 procedure Read_GL_NV_transform_feedback2;
14771 procedure Read_GL_NV_video_capture;
14772 procedure Read_GL_NV_copy_image;
14773 procedure Read_GL_NV_shader_buffer_load;
14774 procedure Read_GL_NV_vertex_buffer_unified_memory;
14775 procedure Read_GL_NV_gpu_program5;
14776 procedure Read_GL_NV_gpu_shader5;
14777 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14778 procedure Read_GL_NV_vdpau_interop;
14779 procedure Read_GL_NV_texture_barrier;
14780 procedure Read_GL_PGI_misc_hints;
14781 procedure Read_GL_SGIS_detail_texture;
14782 procedure Read_GL_SGIS_fog_function;
14783 procedure Read_GL_SGIS_multisample;
14784 procedure Read_GL_SGIS_pixel_texture;
14785 procedure Read_GL_SGIS_point_parameters;
14786 procedure Read_GL_SGIS_sharpen_texture;
14787 procedure Read_GL_SGIS_texture4D;
14788 procedure Read_GL_SGIS_texture_color_mask;
14789 procedure Read_GL_SGIS_texture_filter4;
14790 procedure Read_GL_SGIX_async;
14791 procedure Read_GL_SGIX_flush_raster;
14792 procedure Read_GL_SGIX_fragment_lighting;
14793 procedure Read_GL_SGIX_framezoom;
14794 procedure Read_GL_SGIX_igloo_interface;
14795 procedure Read_GL_SGIX_instruments;
14796 procedure Read_GL_SGIX_list_priority;
14797 procedure Read_GL_SGIX_pixel_texture;
14798 procedure Read_GL_SGIX_polynomial_ffd;
14799 procedure Read_GL_SGIX_reference_plane;
14800 procedure Read_GL_SGIX_sprite;
14801 procedure Read_GL_SGIX_tag_sample_buffer;
14802 procedure Read_GL_SGI_color_table;
14803 procedure Read_GL_SUNX_constant_data;
14804 procedure Read_GL_SUN_global_alpha;
14805 procedure Read_GL_SUN_mesh_array;
14806 procedure Read_GL_SUN_triangle_list;
14807 procedure Read_GL_SUN_vertex;
14808
14809 {$IFDEF DGL_WIN}
14810 procedure Read_WGL_ARB_buffer_region;
14811 procedure Read_WGL_ARB_extensions_string;
14812 procedure Read_WGL_ARB_make_current_read;
14813 procedure Read_WGL_ARB_pbuffer;
14814 procedure Read_WGL_ARB_pixel_format;
14815 procedure Read_WGL_ARB_pixel_format_float;
14816 procedure Read_WGL_ARB_render_texture;
14817 procedure Read_WGL_ARB_create_context;
14818 procedure Read_WGL_AMD_gpu_association;
14819 procedure Read_WGL_EXT_display_color_table;
14820 procedure Read_WGL_EXT_extensions_string;
14821 procedure Read_WGL_EXT_make_current_read;
14822 procedure Read_WGL_EXT_pbuffer;
14823 procedure Read_WGL_EXT_pixel_format;
14824 procedure Read_WGL_EXT_swap_control;
14825 procedure Read_WGL_I3D_digital_video_control;
14826 procedure Read_WGL_I3D_gamma;
14827 procedure Read_WGL_I3D_genlock;
14828 procedure Read_WGL_I3D_image_buffer;
14829 procedure Read_WGL_I3D_swap_frame_lock;
14830 procedure Read_WGL_I3D_swap_frame_usage;
14831 procedure Read_WGL_NV_vertex_array_range;
14832 procedure Read_WGL_NV_present_video;
14833 procedure Read_WGL_NV_video_output;
14834 procedure Read_WGL_NV_swap_group;
14835 procedure Read_WGL_NV_gpu_affinity;
14836 procedure Read_WGL_NV_video_capture;
14837 procedure Read_WGL_NV_copy_image;
14838 procedure Read_WGL_OML_sync_control;
14839 procedure Read_WGL_3DL_stereo_control;
14840
14841 procedure Read_WIN_draw_range_elements;
14842 procedure Read_WIN_swap_hint;
14843 {$ENDIF}
14844
14845
14846 implementation
14847
14848
14849 {$IFDEF DGL_LINUX}
14850 const
14851   RTLD_LAZY = $001;
14852   RTLD_NOW = $002;
14853   RTLD_BINDING_MASK = $003;
14854
14855   // Seems to work on Debian / Fedora
14856   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14857
14858 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14859 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14860
14861 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14862 {$ENDIF}
14863
14864 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14865 const
14866   RTLD_DEFAULT = Pointer(-2);
14867 {$ENDIF}{$ENDIF}
14868
14869 function dglLoadLibrary(Name: PChar): Pointer;
14870 begin
14871   {$IFDEF DGL_WIN}
14872   Result := Pointer(LoadLibrary(Name));
14873   {$ENDIF}
14874
14875   {$IFDEF DGL_LINUX}
14876   Result := dlopen(Name, RTLD_LAZY);
14877   {$ENDIF}
14878
14879   {$IFDEF DGL_MAC}
14880   {$IFDEF OPENGL_FRAMEWORK}
14881   Result := RTLD_DEFAULT;
14882   {$ELSE}
14883   Result := Pointer(LoadLibrary(Name));
14884   {$ENDIF}
14885   {$ENDIF}
14886 end;
14887
14888
14889 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14890 begin
14891   if LibHandle = nil then
14892     Result := False
14893   else
14894     {$IFDEF DGL_WIN}
14895     Result := FreeLibrary(HMODULE(LibHandle));
14896     {$ENDIF}
14897
14898     {$IFDEF DGL_LINUX}
14899     Result := dlclose(LibHandle) = 0;
14900     {$ENDIF}
14901
14902     {$IFDEF DGL_MAC}
14903     {$IFDEF OPENGL_FRAMEWORK}
14904         Result := true;
14905         {$ELSE}
14906     Result := FreeLibrary(HMODULE(LibHandle));
14907     {$ENDIF}
14908         {$ENDIF}
14909 end;
14910
14911
14912 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14913 begin
14914   if LibHandle = nil then
14915     LibHandle := GL_LibHandle;
14916
14917
14918   {$IFDEF DGL_WIN}
14919     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14920
14921     if result <> nil then
14922       exit;
14923
14924     if Addr(wglGetProcAddress) <> nil then
14925       Result := wglGetProcAddress(ProcName);
14926   {$ENDIF}
14927
14928   {$IFDEF DGL_LINUX}
14929     if not ForceDLSym then begin
14930       if Addr(glXGetProcAddress) <> nil then
14931         Result := glXGetProcAddress(ProcName);
14932
14933       if result <> nil then
14934         exit;
14935
14936       if Addr(glXGetProcAddressARB) <> nil then
14937         Result := glXGetProcAddressARB(ProcName);
14938
14939       if result <> nil then
14940         exit;
14941     end;
14942
14943     Result := dlsym(LibHandle, ProcName);
14944   {$ENDIF}
14945
14946   {$IFDEF DGL_MAC}
14947     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14948   {$ENDIF}
14949 end;
14950
14951
14952 function Int_GetExtensionString: AnsiString;
14953 var
14954         ExtensionCount : GLuint;
14955   i : Integer;
14956 begin
14957   if GL_VERSION_3_0
14958     then
14959       begin
14960         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14961         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14962
14963         result := '';
14964
14965         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14966           then
14967             begin
14968               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14969
14970               For I := 0 to extensionCount - 1 do
14971                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14972             end;
14973       end
14974     else
14975       begin
14976         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
14977
14978         if Assigned(@glGetString)
14979           then result := glGetString(GL_EXTENSIONS)
14980           else result := '';
14981       end;
14982
14983   if (GL_LibHandle <> nil) then begin
14984     {$IFDEF DGL_WIN}
14985       // wglGetExtensionsStringEXT
14986       if not Assigned(@wglGetExtensionsStringEXT) then
14987         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
14988
14989       if Assigned(@wglGetExtensionsStringEXT) then
14990         Result := Result + #32 + wglGetExtensionsStringEXT;
14991
14992       // wglGetExtensionsStringARB
14993       if not Assigned(@wglGetExtensionsStringARB) then
14994         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
14995
14996       if Assigned(@wglGetExtensionsStringARB) then
14997         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
14998     {$ENDIF}
14999   end;
15000
15001   Result := #32 + Result + #32;
15002 end;
15003
15004
15005 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
15006 begin
15007   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
15008 end;
15009
15010
15011 function dglCheckExtension(Extension: AnsiString): Boolean;
15012 var
15013   Extensions: AnsiString;
15014 begin
15015   Extensions := Int_GetExtensionString;
15016   Result := Int_CheckExtension(Extensions, Extension);
15017 end;
15018
15019
15020
15021 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
15022 begin
15023   Result := False;
15024
15025   // free opened libraries
15026   if GL_LibHandle <> nil then
15027     dglFreeLibrary(GL_LibHandle);
15028
15029   if GLU_LibHandle <> nil then
15030     dglFreeLibrary(GLU_LibHandle);
15031
15032   // load library
15033   GL_LibHandle := dglLoadLibrary(PChar(LibName));
15034   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
15035
15036   // load GL functions
15037   if (GL_LibHandle <> nil) then begin
15038     {$IFDEF DGL_WIN}
15039       wglCopyContext := dglGetProcAddress('wglCopyContext');
15040       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15041       wglCreateContext := dglGetProcAddress('wglCreateContext');
15042       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15043       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15044       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15045       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15046       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15047       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15048       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15049       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15050       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15051       wglShareLists := dglGetProcAddress('wglShareLists');
15052       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15053       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15054       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15055       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15056       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15057       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15058       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15059       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15060     {$ENDIF}
15061
15062     {$IFDEF DGL_LINUX}
15063       // GLX_VERSION_1_4 (needs to be first)
15064       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15065
15066       // GLX_ARB_get_proc_address  (also needs to be first)
15067       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15068
15069       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15070       glXCopyContext := dglGetProcAddress('glXCopyContext');
15071       glXCreateContext := dglGetProcAddress('glXCreateContext');
15072       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15073       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15074       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15075       glXGetConfig := dglGetProcAddress('glXGetConfig');
15076       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15077       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15078       glXIsDirect := dglGetProcAddress('glXIsDirect');
15079       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15080       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15081       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15082       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15083       glXUseXFont := dglGetProcAddress('glXUseXFont');
15084       glXWaitGL := dglGetProcAddress('glXWaitGL');
15085       glXWaitX := dglGetProcAddress('glXWaitX');
15086
15087       glXGetClientString := dglGetProcAddress('glXGetClientString');
15088       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15089       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15090
15091       // GLX_VERSION_1_3
15092       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15093       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15094       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15095       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15096       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15097       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15098       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15099
15100       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15101       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15102       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15103       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15104       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15105       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15106       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15107       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15108
15109       glXQueryContext := dglGetProcAddress('glXQueryContext');
15110       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15111       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15112
15113       // GLX_ARB_create_context
15114       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15115
15116       // GLX_EXT_import_context
15117       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15118       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15119       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15120       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15121       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15122
15123       // GLX_EXT_texture_from_pixmap
15124       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15125       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15126     {$ENDIF}
15127
15128     Result := True;
15129   end;
15130
15131   // load GLU functions
15132   if GLU_LibHandle <> nil then begin
15133     // GLU ========================================================================
15134     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15135     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15136     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15137     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15138     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15139     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15140     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15141     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15142     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15143     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15144     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15145     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15146     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15147     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15148     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15149     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15150     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15151     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15152     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15153     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15154     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15155     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15156     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15157     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15158     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15159     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15160     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15161     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15162     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15163     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15164     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15165     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15166     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15167     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15168     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15169     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15170     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15171     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15172     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15173     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15174     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15175     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15176     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15177     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15178     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15179     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15180     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15181     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15182     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15183     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15184     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15185   end;
15186 end;
15187
15188 procedure ReadOpenGLCore;
15189 begin
15190   // GL_VERSION_1_0
15191   glCullFace := dglGetProcAddress('glCullFace');
15192   glFrontFace := dglGetProcAddress('glFrontFace');
15193   glHint := dglGetProcAddress('glHint');
15194   glLineWidth := dglGetProcAddress('glLineWidth');
15195   glPointSize := dglGetProcAddress('glPointSize');
15196   glPolygonMode := dglGetProcAddress('glPolygonMode');
15197   glScissor := dglGetProcAddress('glScissor');
15198   glTexParameterf := dglGetProcAddress('glTexParameterf');
15199   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15200   glTexParameteri := dglGetProcAddress('glTexParameteri');
15201   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15202   glTexImage1D := dglGetProcAddress('glTexImage1D');
15203   glTexImage2D := dglGetProcAddress('glTexImage2D');
15204   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15205   glClear := dglGetProcAddress('glClear');
15206   glClearColor := dglGetProcAddress('glClearColor');
15207   glClearStencil := dglGetProcAddress('glClearStencil');
15208   glClearDepth := dglGetProcAddress('glClearDepth');
15209   glStencilMask := dglGetProcAddress('glStencilMask');
15210   glColorMask := dglGetProcAddress('glColorMask');
15211   glDepthMask := dglGetProcAddress('glDepthMask');
15212   glDisable := dglGetProcAddress('glDisable');
15213   glEnable := dglGetProcAddress('glEnable');
15214   glFinish := dglGetProcAddress('glFinish');
15215   glFlush := dglGetProcAddress('glFlush');
15216   glBlendFunc := dglGetProcAddress('glBlendFunc');
15217   glLogicOp := dglGetProcAddress('glLogicOp');
15218   glStencilFunc := dglGetProcAddress('glStencilFunc');
15219   glStencilOp := dglGetProcAddress('glStencilOp');
15220   glDepthFunc := dglGetProcAddress('glDepthFunc');
15221   glPixelStoref := dglGetProcAddress('glPixelStoref');
15222   glPixelStorei := dglGetProcAddress('glPixelStorei');
15223   glReadBuffer := dglGetProcAddress('glReadBuffer');
15224   glReadPixels := dglGetProcAddress('glReadPixels');
15225   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15226   glGetDoublev := dglGetProcAddress('glGetDoublev');
15227   glGetError := dglGetProcAddress('glGetError');
15228   glGetFloatv := dglGetProcAddress('glGetFloatv');
15229   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15230   glGetString := dglGetProcAddress('glGetString');
15231   glGetTexImage := dglGetProcAddress('glGetTexImage');
15232   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15233   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15234   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15235   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15236   glIsEnabled := dglGetProcAddress('glIsEnabled');
15237   glDepthRange := dglGetProcAddress('glDepthRange');
15238   glViewport := dglGetProcAddress('glViewport');
15239
15240   // GL_VERSION_1_1
15241   glDrawArrays := dglGetProcAddress('glDrawArrays');
15242   glDrawElements := dglGetProcAddress('glDrawElements');
15243   glGetPointerv := dglGetProcAddress('glGetPointerv');
15244   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15245   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15246   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15247   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15248   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15249   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15250   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15251   glBindTexture := dglGetProcAddress('glBindTexture');
15252   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15253   glGenTextures := dglGetProcAddress('glGenTextures');
15254
15255 {$ifdef DGL_DEPRECATED}
15256   glAccum := dglGetProcAddress('glAccum');
15257   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15258   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15259   glArrayElement := dglGetProcAddress('glArrayElement');
15260   glBegin := dglGetProcAddress('glBegin');
15261   glBitmap := dglGetProcAddress('glBitmap');
15262   glCallList := dglGetProcAddress('glCallList');
15263   glCallLists := dglGetProcAddress('glCallLists');
15264   glClearAccum := dglGetProcAddress('glClearAccum');
15265   glClearIndex := dglGetProcAddress('glClearIndex');
15266   glClipPlane := dglGetProcAddress('glClipPlane');
15267   glColor3b := dglGetProcAddress('glColor3b');
15268   glColor3bv := dglGetProcAddress('glColor3bv');
15269   glColor3d := dglGetProcAddress('glColor3d');
15270   glColor3dv := dglGetProcAddress('glColor3dv');
15271   glColor3f := dglGetProcAddress('glColor3f');
15272   glColor3fv := dglGetProcAddress('glColor3fv');
15273   glColor3i := dglGetProcAddress('glColor3i');
15274   glColor3iv := dglGetProcAddress('glColor3iv');
15275   glColor3s := dglGetProcAddress('glColor3s');
15276   glColor3sv := dglGetProcAddress('glColor3sv');
15277   glColor3ub := dglGetProcAddress('glColor3ub');
15278   glColor3ubv := dglGetProcAddress('glColor3ubv');
15279   glColor3ui := dglGetProcAddress('glColor3ui');
15280   glColor3uiv := dglGetProcAddress('glColor3uiv');
15281   glColor3us := dglGetProcAddress('glColor3us');
15282   glColor3usv := dglGetProcAddress('glColor3usv');
15283   glColor4b := dglGetProcAddress('glColor4b');
15284   glColor4bv := dglGetProcAddress('glColor4bv');
15285   glColor4d := dglGetProcAddress('glColor4d');
15286   glColor4dv := dglGetProcAddress('glColor4dv');
15287   glColor4f := dglGetProcAddress('glColor4f');
15288   glColor4fv := dglGetProcAddress('glColor4fv');
15289   glColor4i := dglGetProcAddress('glColor4i');
15290   glColor4iv := dglGetProcAddress('glColor4iv');
15291   glColor4s := dglGetProcAddress('glColor4s');
15292   glColor4sv := dglGetProcAddress('glColor4sv');
15293   glColor4ub := dglGetProcAddress('glColor4ub');
15294   glColor4ubv := dglGetProcAddress('glColor4ubv');
15295   glColor4ui := dglGetProcAddress('glColor4ui');
15296   glColor4uiv := dglGetProcAddress('glColor4uiv');
15297   glColor4us := dglGetProcAddress('glColor4us');
15298   glColor4usv := dglGetProcAddress('glColor4usv');
15299   glColorMaterial := dglGetProcAddress('glColorMaterial');
15300   glColorPointer := dglGetProcAddress('glColorPointer');
15301   glCopyPixels := dglGetProcAddress('glCopyPixels');
15302   glDeleteLists := dglGetProcAddress('glDeleteLists');
15303   glDisableClientState := dglGetProcAddress('glDisableClientState');
15304   glDrawPixels := dglGetProcAddress('glDrawPixels');
15305   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15306   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15307   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15308   glEnableClientState := dglGetProcAddress('glEnableClientState');
15309   glEnd := dglGetProcAddress('glEnd');
15310   glEndList := dglGetProcAddress('glEndList');
15311   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15312   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15313   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15314   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15315   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15316   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15317   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15318   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15319   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15320   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15321   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15322   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15323   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15324   glFogf := dglGetProcAddress('glFogf');
15325   glFogfv := dglGetProcAddress('glFogfv');
15326   glFogi := dglGetProcAddress('glFogi');
15327   glFogiv := dglGetProcAddress('glFogiv');
15328   glFrustum := dglGetProcAddress('glFrustum');
15329   glGenLists := dglGetProcAddress('glGenLists');
15330   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15331   glGetLightfv := dglGetProcAddress('glGetLightfv');
15332   glGetLightiv := dglGetProcAddress('glGetLightiv');
15333   glGetMapdv := dglGetProcAddress('glGetMapdv');
15334   glGetMapfv := dglGetProcAddress('glGetMapfv');
15335   glGetMapiv := dglGetProcAddress('glGetMapiv');
15336   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15337   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15338   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15339   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15340   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15341   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15342   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15343   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15344   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15345   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15346   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15347   glIndexMask := dglGetProcAddress('glIndexMask');
15348   glIndexPointer := dglGetProcAddress('glIndexPointer');
15349   glIndexd := dglGetProcAddress('glIndexd');
15350   glIndexdv := dglGetProcAddress('glIndexdv');
15351   glIndexf := dglGetProcAddress('glIndexf');
15352   glIndexfv := dglGetProcAddress('glIndexfv');
15353   glIndexi := dglGetProcAddress('glIndexi');
15354   glIndexiv := dglGetProcAddress('glIndexiv');
15355   glIndexs := dglGetProcAddress('glIndexs');
15356   glIndexsv := dglGetProcAddress('glIndexsv');
15357   glIndexub := dglGetProcAddress('glIndexub');
15358   glIndexubv := dglGetProcAddress('glIndexubv');
15359   glInitNames := dglGetProcAddress('glInitNames');
15360   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15361   glIsList := dglGetProcAddress('glIsList');
15362   glIsTexture := dglGetProcAddress('glIsTexture');
15363   glLightModelf := dglGetProcAddress('glLightModelf');
15364   glLightModelfv := dglGetProcAddress('glLightModelfv');
15365   glLightModeli := dglGetProcAddress('glLightModeli');
15366   glLightModeliv := dglGetProcAddress('glLightModeliv');
15367   glLightf := dglGetProcAddress('glLightf');
15368   glLightfv := dglGetProcAddress('glLightfv');
15369   glLighti := dglGetProcAddress('glLighti');
15370   glLightiv := dglGetProcAddress('glLightiv');
15371   glLineStipple := dglGetProcAddress('glLineStipple');
15372   glListBase := dglGetProcAddress('glListBase');
15373   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15374   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15375   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15376   glLoadName := dglGetProcAddress('glLoadName');
15377   glMap1d := dglGetProcAddress('glMap1d');
15378   glMap1f := dglGetProcAddress('glMap1f');
15379   glMap2d := dglGetProcAddress('glMap2d');
15380   glMap2f := dglGetProcAddress('glMap2f');
15381   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15382   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15383   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15384   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15385   glMaterialf := dglGetProcAddress('glMaterialf');
15386   glMaterialfv := dglGetProcAddress('glMaterialfv');
15387   glMateriali := dglGetProcAddress('glMateriali');
15388   glMaterialiv := dglGetProcAddress('glMaterialiv');
15389   glMatrixMode := dglGetProcAddress('glMatrixMode');
15390   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15391   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15392   glNewList := dglGetProcAddress('glNewList');
15393   glNormal3b := dglGetProcAddress('glNormal3b');
15394   glNormal3bv := dglGetProcAddress('glNormal3bv');
15395   glNormal3d := dglGetProcAddress('glNormal3d');
15396   glNormal3dv := dglGetProcAddress('glNormal3dv');
15397   glNormal3f := dglGetProcAddress('glNormal3f');
15398   glNormal3fv := dglGetProcAddress('glNormal3fv');
15399   glNormal3i := dglGetProcAddress('glNormal3i');
15400   glNormal3iv := dglGetProcAddress('glNormal3iv');
15401   glNormal3s := dglGetProcAddress('glNormal3s');
15402   glNormal3sv := dglGetProcAddress('glNormal3sv');
15403   glNormalPointer := dglGetProcAddress('glNormalPointer');
15404   glOrtho := dglGetProcAddress('glOrtho');
15405   glPassThrough := dglGetProcAddress('glPassThrough');
15406   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15407   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15408   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15409   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15410   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15411   glPixelZoom := dglGetProcAddress('glPixelZoom');
15412   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15413   glPopAttrib := dglGetProcAddress('glPopAttrib');
15414   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15415   glPopMatrix := dglGetProcAddress('glPopMatrix');
15416   glPopName := dglGetProcAddress('glPopName');
15417   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15418   glPushAttrib := dglGetProcAddress('glPushAttrib');
15419   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15420   glPushMatrix := dglGetProcAddress('glPushMatrix');
15421   glPushName := dglGetProcAddress('glPushName');
15422   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15423   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15424   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15425   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15426   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15427   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15428   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15429   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15430   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15431   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15432   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15433   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15434   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15435   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15436   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15437   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15438   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15439   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15440   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15441   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15442   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15443   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15444   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15445   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15446   glRectd := dglGetProcAddress('glRectd');
15447   glRectdv := dglGetProcAddress('glRectdv');
15448   glRectf := dglGetProcAddress('glRectf');
15449   glRectfv := dglGetProcAddress('glRectfv');
15450   glRecti := dglGetProcAddress('glRecti');
15451   glRectiv := dglGetProcAddress('glRectiv');
15452   glRects := dglGetProcAddress('glRects');
15453   glRectsv := dglGetProcAddress('glRectsv');
15454   glRenderMode := dglGetProcAddress('glRenderMode');
15455   glRotated := dglGetProcAddress('glRotated');
15456   glRotatef := dglGetProcAddress('glRotatef');
15457   glScaled := dglGetProcAddress('glScaled');
15458   glScalef := dglGetProcAddress('glScalef');
15459   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15460   glShadeModel := dglGetProcAddress('glShadeModel');
15461   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15462   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15463   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15464   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15465   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15466   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15467   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15468   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15469   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15470   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15471   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15472   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15473   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15474   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15475   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15476   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15477   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15478   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15479   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15480   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15481   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15482   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15483   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15484   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15485   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15486   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15487   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15488   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15489   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15490   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15491   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15492   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15493   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15494   glTexEnvf := dglGetProcAddress('glTexEnvf');
15495   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15496   glTexEnvi := dglGetProcAddress('glTexEnvi');
15497   glTexEnviv := dglGetProcAddress('glTexEnviv');
15498   glTexGend := dglGetProcAddress('glTexGend');
15499   glTexGendv := dglGetProcAddress('glTexGendv');
15500   glTexGenf := dglGetProcAddress('glTexGenf');
15501   glTexGenfv := dglGetProcAddress('glTexGenfv');
15502   glTexGeni := dglGetProcAddress('glTexGeni');
15503   glTexGeniv := dglGetProcAddress('glTexGeniv');
15504   glTranslated := dglGetProcAddress('glTranslated');
15505   glTranslatef := dglGetProcAddress('glTranslatef');
15506   glVertex2d := dglGetProcAddress('glVertex2d');
15507   glVertex2dv := dglGetProcAddress('glVertex2dv');
15508   glVertex2f := dglGetProcAddress('glVertex2f');
15509   glVertex2fv := dglGetProcAddress('glVertex2fv');
15510   glVertex2i := dglGetProcAddress('glVertex2i');
15511   glVertex2iv := dglGetProcAddress('glVertex2iv');
15512   glVertex2s := dglGetProcAddress('glVertex2s');
15513   glVertex2sv := dglGetProcAddress('glVertex2sv');
15514   glVertex3d := dglGetProcAddress('glVertex3d');
15515   glVertex3dv := dglGetProcAddress('glVertex3dv');
15516   glVertex3f := dglGetProcAddress('glVertex3f');
15517   glVertex3fv := dglGetProcAddress('glVertex3fv');
15518   glVertex3i := dglGetProcAddress('glVertex3i');
15519   glVertex3iv := dglGetProcAddress('glVertex3iv');
15520   glVertex3s := dglGetProcAddress('glVertex3s');
15521   glVertex3sv := dglGetProcAddress('glVertex3sv');
15522   glVertex4d := dglGetProcAddress('glVertex4d');
15523   glVertex4dv := dglGetProcAddress('glVertex4dv');
15524   glVertex4f := dglGetProcAddress('glVertex4f');
15525   glVertex4fv := dglGetProcAddress('glVertex4fv');
15526   glVertex4i := dglGetProcAddress('glVertex4i');
15527   glVertex4iv := dglGetProcAddress('glVertex4iv');
15528   glVertex4s := dglGetProcAddress('glVertex4s');
15529   glVertex4sv := dglGetProcAddress('glVertex4sv');
15530   glVertexPointer := dglGetProcAddress('glVertexPointer');
15531 {$endif}
15532
15533   // GL_VERSION_1_2
15534   glBlendColor := dglGetProcAddress('glBlendColor');
15535   glBlendEquation := dglGetProcAddress('glBlendEquation');
15536   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15537   glTexImage3D := dglGetProcAddress('glTexImage3D');
15538   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15539   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15540 {$ifdef DGL_DEPRECATED}
15541   glColorTable := dglGetProcAddress('glColorTable');
15542   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15543   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15544   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15545   glGetColorTable := dglGetProcAddress('glGetColorTable');
15546   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15547   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15548   glColorSubTable := dglGetProcAddress('glColorSubTable');
15549   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15550   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15551   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15552   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15553   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15554   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15555   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15556   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15557   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15558   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15559   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15560   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15561   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15562   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15563   glGetHistogram := dglGetProcAddress('glGetHistogram');
15564   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15565   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15566   glGetMinmax := dglGetProcAddress('glGetMinmax');
15567   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15568   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15569   glHistogram := dglGetProcAddress('glHistogram');
15570   glMinmax := dglGetProcAddress('glMinmax');
15571   glResetHistogram := dglGetProcAddress('glResetHistogram');
15572   glResetMinmax := dglGetProcAddress('glResetMinmax');
15573 {$endif}
15574
15575   // GL_VERSION_1_3
15576   glActiveTexture := dglGetProcAddress('glActiveTexture');
15577   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15578   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15579   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15580   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15581   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15582   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15583   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15584   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15585 {$ifdef DGL_DEPRECATED}
15586   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15587   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15588   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15589   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15590   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15591   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15592   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15593   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15594   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15595   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15596   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15597   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15598   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15599   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15600   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15601   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15602   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15603   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15604   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15605   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15606   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15607   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15608   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15609   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15610   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15611   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15612   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15613   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15614   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15615   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15616   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15617   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15618   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15619   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15620   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15621   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15622   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15623 {$endif}
15624
15625   // GL_VERSION_1_4
15626   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15627   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15628   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15629   glPointParameterf := dglGetProcAddress('glPointParameterf');
15630   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15631   glPointParameteri := dglGetProcAddress('glPointParameteri');
15632   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15633 {$ifdef DGL_DEPRECATED}
15634   glFogCoordf := dglGetProcAddress('glFogCoordf');
15635   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15636   glFogCoordd := dglGetProcAddress('glFogCoordd');
15637   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15638   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15639   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15640   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15641   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15642   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15643   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15644   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15645   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15646   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15647   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15648   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15649   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15650   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15651   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15652   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15653   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15654   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15655   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15656   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15657   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15658   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15659   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15660   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15661   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15662   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15663   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15664   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15665   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15666   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15667   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15668   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15669   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15670   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15671   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15672 {$endif}
15673
15674   // GL_VERSION_1_5
15675   glGenQueries := dglGetProcAddress('glGenQueries');
15676   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15677   glIsQuery := dglGetProcAddress('glIsQuery');
15678   glBeginQuery := dglGetProcAddress('glBeginQuery');
15679   glEndQuery := dglGetProcAddress('glEndQuery');
15680   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15681   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15682   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15683   glBindBuffer := dglGetProcAddress('glBindBuffer');
15684   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15685   glGenBuffers := dglGetProcAddress('glGenBuffers');
15686   glIsBuffer := dglGetProcAddress('glIsBuffer');
15687   glBufferData := dglGetProcAddress('glBufferData');
15688   glBufferSubData := dglGetProcAddress('glBufferSubData');
15689   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15690   glMapBuffer := dglGetProcAddress('glMapBuffer');
15691   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15692   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15693   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15694
15695   // GL_VERSION_2_0
15696   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15697   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15698   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15699   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15700   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15701   glAttachShader := dglGetProcAddress('glAttachShader');
15702   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15703   glCompileShader := dglGetProcAddress('glCompileShader');
15704   glCreateProgram := dglGetProcAddress('glCreateProgram');
15705   glCreateShader := dglGetProcAddress('glCreateShader');
15706   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15707   glDeleteShader := dglGetProcAddress('glDeleteShader');
15708   glDetachShader := dglGetProcAddress('glDetachShader');
15709   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15710   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15711   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15712   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15713   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15714   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15715   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15716   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15717   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15718   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15719   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15720   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15721   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15722   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15723   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15724   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15725   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15726   glIsProgram := dglGetProcAddress('glIsProgram');
15727   glIsShader := dglGetProcAddress('glIsShader');
15728   glLinkProgram := dglGetProcAddress('glLinkProgram');
15729   glShaderSource := dglGetProcAddress('glShaderSource');
15730   glUseProgram := dglGetProcAddress('glUseProgram');
15731   glUniform1f := dglGetProcAddress('glUniform1f');
15732   glUniform2f := dglGetProcAddress('glUniform2f');
15733   glUniform3f := dglGetProcAddress('glUniform3f');
15734   glUniform4f := dglGetProcAddress('glUniform4f');
15735   glUniform1i := dglGetProcAddress('glUniform1i');
15736   glUniform2i := dglGetProcAddress('glUniform2i');
15737   glUniform3i := dglGetProcAddress('glUniform3i');
15738   glUniform4i := dglGetProcAddress('glUniform4i');
15739   glUniform1fv := dglGetProcAddress('glUniform1fv');
15740   glUniform2fv := dglGetProcAddress('glUniform2fv');
15741   glUniform3fv := dglGetProcAddress('glUniform3fv');
15742   glUniform4fv := dglGetProcAddress('glUniform4fv');
15743   glUniform1iv := dglGetProcAddress('glUniform1iv');
15744   glUniform2iv := dglGetProcAddress('glUniform2iv');
15745   glUniform3iv := dglGetProcAddress('glUniform3iv');
15746   glUniform4iv := dglGetProcAddress('glUniform4iv');
15747   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15748   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15749   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15750   glValidateProgram := dglGetProcAddress('glValidateProgram');
15751   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15752   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15753   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15754   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15755   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15756   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15757   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15758   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15759   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15760   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15761   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15762   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15763   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15764   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15765   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15766   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15767   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15768   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15769   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15770   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15771   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15772   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15773   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15774   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15775   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15776   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15777   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15778   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15779   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15780   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15781   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15782   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15783   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15784   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15785   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15786   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15787   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15788
15789   // GL_VERSION_2_1
15790   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15791   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15792   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15793   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15794   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15795   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15796
15797   // GL_VERSION_3_0
15798   { OpenGL 3.0 also reuses entry points from these extensions: }
15799   Read_GL_ARB_framebuffer_object;
15800   Read_GL_ARB_map_buffer_range;
15801   Read_GL_ARB_vertex_array_object;
15802
15803   glColorMaski := dglGetProcAddress('glColorMaski');
15804   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15805   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15806   glEnablei := dglGetProcAddress('glEnablei');
15807   glDisablei := dglGetProcAddress('glDisablei');
15808   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15809   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15810   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15811   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15812   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15813   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15814   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15815   glClampColor := dglGetProcAddress('glClampColor');
15816   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15817   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15818   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15819   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15820   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15821   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15822   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15823   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15824   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15825   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15826   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15827   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15828   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15829   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15830   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15831   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15832   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15833   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15834   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15835   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15836   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15837   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15838   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15839   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15840   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15841   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15842   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15843   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15844   glUniform1ui := dglGetProcAddress('glUniform1ui');
15845   glUniform2ui := dglGetProcAddress('glUniform2ui');
15846   glUniform3ui := dglGetProcAddress('glUniform3ui');
15847   glUniform4ui := dglGetProcAddress('glUniform4ui');
15848   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15849   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15850   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15851   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15852   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15853   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15854   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15855   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15856   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15857   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15858   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15859   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15860   glGetStringi := dglGetProcAddress('glGetStringi');
15861
15862   // GL_VERSION_2_1
15863   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15864   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15865   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15866
15867   // GL_VERSION_3_1
15868   { OpenGL 3.1 also reuses entry points from these extensions: }
15869   Read_GL_ARB_copy_buffer;
15870   Read_GL_ARB_uniform_buffer_object;
15871
15872   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15873   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15874   glTexBuffer := dglGetProcAddress('glTexBuffer');
15875   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15876
15877   // GL_VERSION_3_2
15878   { OpenGL 3.2 also reuses entry points from these extensions: }
15879   Read_GL_ARB_draw_elements_base_vertex;
15880   Read_GL_ARB_provoking_vertex;
15881   Read_GL_ARB_sync;
15882   Read_GL_ARB_texture_multisample;
15883
15884   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15885   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15886   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15887 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15888
15889   // GL_VERSION_3_3
15890   { OpenGL 3.3 also reuses entry points from these extensions: }
15891   Read_GL_ARB_blend_func_extended;
15892   Read_GL_ARB_sampler_objects;
15893   { ARB_explicit_attrib_location, but it has none }
15894   { ARB_occlusion_query2 (no entry points) }
15895   { ARB_shader_bit_encoding (no entry points) }
15896   { ARB_texture_rgb10_a2ui (no entry points) }
15897   { ARB_texture_swizzle (no entry points) }
15898   Read_GL_ARB_timer_query;
15899   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15900
15901   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15902
15903   // GL_VERSION_4_0
15904   { OpenGL 4.0 also reuses entry points from these extensions: }
15905   { ARB_texture_query_lod (no entry points) }
15906   Read_GL_ARB_draw_indirect;
15907   { ARB_gpu_shader5 (no entry points) }
15908   Read_GL_ARB_gpu_shader_fp64;
15909   Read_GL_ARB_shader_subroutine;
15910   Read_GL_ARB_tessellation_shader;
15911   { ARB_texture_buffer_object_rgb32 (no entry points) }
15912   { ARB_texture_cube_map_array (no entry points) }
15913   { ARB_texture_gather (no entry points) }
15914   Read_GL_ARB_transform_feedback2;
15915   Read_GL_ARB_transform_feedback3;
15916
15917   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15918   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15919   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15920   glBlendFunci := dglGetProcAddress('glBlendFunci');
15921   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15922
15923   // GL_VERSION_4_1
15924   { OpenGL 4.1 also reuses entry points from these extensions: }
15925   Read_GL_ARB_ES2_compatibility;
15926   Read_GL_ARB_get_program_binary;
15927   Read_GL_ARB_separate_shader_objects;
15928   { ARB_shader_precision (no entry points) }
15929   Read_GL_ARB_vertex_attrib_64bit;
15930   Read_GL_ARB_viewport_array;
15931
15932   // GL_VERSION_4_2
15933   { OpenGL 4.2 reuses entry points from these extensions: }
15934   Read_GL_ARB_base_instance;
15935   //Read_GL_ARB_shading_language_420pack (no entry points)
15936   Read_GL_ARB_transform_feedback_instanced;
15937   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15938   //Read_GL_ARB_conservative_depth;
15939   Read_GL_ARB_internalformat_query;
15940   //Read_GL_ARB_map_buffer_alignment;
15941   Read_GL_ARB_shader_atomic_counters;
15942   Read_GL_ARB_shader_image_load_store;
15943   //Read_GL_ARB_shading_language_packing;
15944   Read_GL_ARB_texture_storage;
15945
15946   // GL_VERSION_4_3
15947   // OpenGL 4.3 reuses entry points from these extensions:
15948   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15949   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15950   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15951   // Read_GL_ARB_ES3_compatibility (no entry points)
15952   Read_GL_ARB_clear_buffer_object;
15953   Read_GL_ARB_compute_shader;
15954   Read_GL_ARB_copy_image;
15955   Read_GL_KHR_debug;
15956   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15957   Read_GL_ARB_framebuffer_no_attachments;
15958   Read_GL_ARB_internalformat_query2;
15959   Read_GL_ARB_invalidate_subdata;
15960   Read_GL_ARB_multi_draw_indirect;
15961   Read_GL_ARB_program_interface_query;
15962   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15963   Read_GL_ARB_shader_storage_buffer_object;
15964   // Read_GL_ARB_stencil_texturing  (no entry points)
15965   Read_GL_ARB_texture_buffer_range;
15966   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15967   Read_GL_ARB_texture_storage_multisample;
15968   Read_GL_ARB_texture_view;
15969   Read_GL_ARB_vertex_attrib_binding;
15970
15971   //  Note (Due to Khronos' change in header convetions, no more single read_ functions) starting with GL 4.4
15972   Read_GL_4_4;
15973   Read_GL_4_5;
15974 end;
15975
15976 procedure Read_GL_3DFX_tbuffer;
15977 begin
15978   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
15979 end;
15980
15981 procedure Read_GL_APPLE_element_array;
15982 begin
15983   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
15984   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
15985   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
15986   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
15987   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
15988 end;
15989
15990 procedure Read_GL_APPLE_fence;
15991 begin
15992   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
15993   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
15994   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
15995   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
15996   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
15997   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
15998   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
15999   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
16000 end;
16001
16002 procedure Read_GL_APPLE_vertex_array_object;
16003 begin
16004   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
16005   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
16006   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
16007   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
16008 end;
16009
16010 procedure Read_GL_APPLE_vertex_array_range;
16011 begin
16012   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
16013   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
16014   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
16015 end;
16016
16017 procedure Read_GL_APPLE_texture_range;
16018 begin
16019   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
16020   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
16021 end;
16022
16023 procedure Read_GL_APPLE_vertex_program_evaluators;
16024 begin
16025   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
16026   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
16027   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
16028   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
16029   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
16030   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
16031   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
16032 end;
16033
16034 procedure Read_GL_APPLE_object_purgeable;
16035 begin
16036   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16037   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16038   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16039 end;
16040
16041 procedure Read_GL_ARB_matrix_palette;
16042 begin
16043   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16044   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16045   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16046   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16047   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16048 end;
16049
16050 procedure Read_GL_ARB_multisample;
16051 begin
16052   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16053 end;
16054
16055 procedure Read_GL_ARB_multitexture;
16056 begin
16057   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16058   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16059   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16060   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16061   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16062   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16063   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16064   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16065   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16066   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16067   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16068   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16069   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16070   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16071   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16072   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16073   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16074   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16075   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16076   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16077   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16078   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16079   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16080   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16081   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16082   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16083   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16084   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16085   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16086   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16087   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16088   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16089   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16090   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16091 end;
16092
16093 procedure Read_GL_ARB_point_parameters;
16094 begin
16095   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16096   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16097 end;
16098
16099 procedure Read_GL_ARB_texture_compression;
16100 begin
16101   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16102   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16103   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16104   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16105   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16106   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16107   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16108 end;
16109
16110 procedure Read_GL_ARB_transpose_matrix;
16111 begin
16112   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16113   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16114   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16115   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16116 end;
16117
16118 procedure Read_GL_ARB_vertex_blend;
16119 begin
16120   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16121   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16122   glWeightivARB := dglGetProcAddress('glWeightivARB');
16123   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16124   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16125   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16126   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16127   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16128   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16129   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16130 end;
16131
16132 procedure Read_GL_ARB_vertex_buffer_object;
16133 begin
16134   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16135   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16136   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16137   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16138   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16139   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16140   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16141   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16142   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16143   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16144   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16145 end;
16146
16147 procedure Read_GL_ARB_vertex_program;
16148 begin
16149   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16150   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16151   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16152   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16153   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16154   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16155   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16156   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16157   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16158   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16159   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16160   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16161   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16162   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16163   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16164   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16165   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16166   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16167   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16168   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16169   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16170   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16171   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16172   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16173   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16174   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16175   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16176   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16177   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16178   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16179   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16180   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16181   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16182   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16183   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16184   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16185   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16186   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16187   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16188   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16189   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16190   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16191   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16192   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16193   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16194   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16195   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16196   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16197   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16198   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16199   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16200   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16201   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16202   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16203   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16204   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16205   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16206   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16207   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16208   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16209   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16210   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16211 end;
16212
16213 procedure Read_GL_ARB_window_pos;
16214 begin
16215   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16216   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16217   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16218   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16219   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16220   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16221   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16222   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16223   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16224   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16225   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16226   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16227   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16228   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16229   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16230   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16231 end;
16232
16233 procedure Read_GL_ARB_draw_buffers;
16234 begin
16235   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16236 end;
16237
16238 procedure Read_GL_ARB_color_buffer_float;
16239 begin
16240   glClampColorARB := dglGetProcAddress('glClampColorARB');
16241 end;
16242
16243 procedure Read_GL_ARB_Shader_Objects;
16244 begin
16245   // GL_ARB_Shader_Objects
16246   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16247   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16248   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16249   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16250   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16251   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16252   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16253   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16254   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16255   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16256   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16257   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16258   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16259   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16260   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16261   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16262   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16263   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16264   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16265   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16266   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16267   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16268   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16269   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16270   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16271   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16272   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16273   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16274   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16275   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16276   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16277   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16278   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16279   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16280   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16281   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16282   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16283   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16284   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16285
16286   // GL_ARB_vertex_shader
16287   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16288   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16289   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16290   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16291 end;
16292
16293 procedure Read_GL_ARB_occlusion_query;
16294 begin
16295   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16296   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16297   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16298   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16299   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16300   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16301   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16302   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16303 end;
16304
16305 procedure Read_GL_ARB_draw_instanced;
16306 begin
16307   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16308   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16309 end;
16310
16311 procedure Read_GL_ARB_framebuffer_object;
16312 begin
16313   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16314   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16315   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16316   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16317   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16318   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16319   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16320   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16321   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16322   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16323   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16324   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16325   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16326   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16327   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16328   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16329   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16330   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16331   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16332   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16333 end;
16334
16335 procedure Read_GL_ARB_geometry_shader4;
16336 begin
16337   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16338   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16339   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16340   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16341 end;
16342
16343 procedure Read_GL_ARB_instanced_arrays;
16344 begin
16345   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16346 end;
16347
16348 procedure Read_GL_ARB_map_buffer_range;
16349 begin
16350   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16351   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16352 end;
16353
16354 procedure Read_GL_ARB_texture_buffer_object;
16355 begin
16356   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16357 end;
16358
16359 procedure Read_GL_ARB_vertex_array_object;
16360 begin
16361   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16362   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16363   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16364   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16365 end;
16366
16367 procedure Read_GL_ARB_uniform_buffer_object;
16368 begin
16369   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16370   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16371   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16372   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16373   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16374   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16375   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16376 end;
16377
16378 procedure Read_GL_ARB_copy_buffer;
16379 begin
16380   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16381 end;
16382
16383 procedure Read_GL_ARB_draw_elements_base_vertex;
16384 begin
16385   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16386   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16387   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16388   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16389 end;
16390
16391 procedure Read_GL_ARB_provoking_vertex;
16392 begin
16393   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16394 end;
16395
16396 procedure Read_GL_ARB_sync;
16397 begin
16398   glFenceSync := dglGetProcAddress('glFenceSync');
16399   glIsSync := dglGetProcAddress('glIsSync');
16400   glDeleteSync := dglGetProcAddress('glDeleteSync');
16401   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16402   glWaitSync := dglGetProcAddress('glWaitSync');
16403   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16404   glGetSynciv := dglGetProcAddress('glGetSynciv');
16405 end;
16406
16407 procedure Read_GL_ARB_texture_multisample;
16408 begin
16409   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16410   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16411   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16412   glSampleMaski := dglGetProcAddress('glSampleMaski');
16413 end;
16414
16415 procedure Read_GL_ARB_draw_buffers_blend;
16416 begin
16417   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16418   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16419   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16420   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16421 end;
16422
16423 procedure Read_GL_ARB_sample_shading;
16424 begin
16425   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16426 end;
16427
16428 procedure Read_GL_ARB_shading_language_include;
16429 begin
16430   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16431   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16432   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16433   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16434   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16435   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16436 end;
16437
16438 procedure Read_GL_ARB_sparse_texture;
16439 begin
16440   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
16441 end;
16442
16443 procedure Read_GL_ARB_sparse_buffer;
16444 begin
16445   glBufferPageCommitmentARB := dglGetProcAddress('glBufferPageCommitmentARB');
16446   glNamedBufferPageCommitmentEXT := dglGetProcAddress('glNamedBufferPageCommitmentEXT');
16447   glNamedBufferPageCommitmentARB := dglGetProcAddress('glNamedBufferPageCommitmentARB');
16448 end;
16449
16450 procedure Read_GL_KHR_blend_equation_advanced;
16451 begin
16452   glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
16453 end;
16454
16455
16456 procedure Read_GL_ARB_blend_func_extended;
16457 begin
16458   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16459   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16460 end;
16461
16462 procedure Read_GL_ARB_sampler_objects;
16463 begin
16464   glGenSamplers := dglGetProcAddress('glGenSamplers');
16465   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16466   glIsSampler := dglGetProcAddress('glIsSampler');
16467   glBindSampler := dglGetProcAddress('glBindSampler');
16468   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16469   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16470   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16471   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16472   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16473   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16474   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16475   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16476   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16477   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16478 end;
16479
16480 procedure Read_GL_ARB_timer_query;
16481 begin
16482   glQueryCounter := dglGetProcAddress('glQueryCounter');
16483   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16484   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16485 end;
16486
16487 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16488 begin
16489   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16490   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16491   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16492   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16493   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16494   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16495   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16496   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16497   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16498   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16499   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16500   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16501   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16502   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16503   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16504   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16505   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16506   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16507   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16508   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16509   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16510   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16511   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16512   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16513   glColorP3ui := dglGetProcAddress('glColorP3ui');
16514   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16515   glColorP4ui := dglGetProcAddress('glColorP4ui');
16516   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16517   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16518   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16519   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16520   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16521   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16522   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16523   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16524   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16525   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16526   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16527 end;
16528
16529 procedure Read_GL_ARB_draw_indirect;
16530 begin
16531   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16532   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16533 end;
16534
16535 procedure Read_GL_ARB_gpu_shader_fp64;
16536 begin
16537   glUniform1d := dglGetProcAddress('glUniform1d');
16538   glUniform2d := dglGetProcAddress('glUniform2d');
16539   glUniform3d := dglGetProcAddress('glUniform3d');
16540   glUniform4d := dglGetProcAddress('glUniform4d');
16541   glUniform1dv := dglGetProcAddress('glUniform1dv');
16542   glUniform2dv := dglGetProcAddress('glUniform2dv');
16543   glUniform3dv := dglGetProcAddress('glUniform3dv');
16544   glUniform4dv := dglGetProcAddress('glUniform4dv');
16545   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16546   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16547   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16548   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16549   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16550   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16551   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16552   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16553   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16554   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16555 end;
16556
16557 procedure Read_GL_ARB_shader_subroutine;
16558 begin
16559   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16560   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16561   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16562   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16563   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16564   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16565   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16566   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16567 end;
16568
16569 procedure Read_GL_ARB_tessellation_shader;
16570 begin
16571   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16572   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16573 end;
16574
16575 procedure Read_GL_ARB_transform_feedback2;
16576 begin
16577   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16578   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16579   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16580   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16581   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16582   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16583   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16584 end;
16585
16586 procedure Read_GL_ARB_transform_feedback3;
16587 begin
16588   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16589   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16590   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16591   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16592 end;
16593
16594 procedure Read_GL_ARB_ES2_compatibility;
16595 begin
16596   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16597   glShaderBinary := dglGetProcAddress('glShaderBinary');
16598   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16599   glDepthRangef := dglGetProcAddress('glDepthRangef');
16600   glClearDepthf := dglGetProcAddress('glClearDepthf');
16601 end;
16602
16603 procedure Read_GL_ARB_get_program_binary;
16604 begin
16605   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16606   glProgramBinary := dglGetProcAddress('glProgramBinary');
16607   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16608 end;
16609
16610 procedure Read_GL_ARB_separate_shader_objects;
16611 begin
16612   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16613   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16614   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16615   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16616   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16617   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16618   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16619   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16620   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16621   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16622   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16623   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16624   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16625   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16626   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16627   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16628   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16629   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16630   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16631   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16632   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16633   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16634   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16635   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16636   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16637   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16638   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16639   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16640   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16641   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16642   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16643   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16644   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16645   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16646   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16647   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16648   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16649   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16650   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16651   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16652   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16653   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16654   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16655   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16656   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16657   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16658   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16659   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16660   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16661   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16662   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16663   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16664   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16665   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16666   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16667   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16668   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16669   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16670   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16671   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16672 end;
16673
16674 procedure Read_GL_ARB_vertex_attrib_64bit;
16675 begin
16676   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16677   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16678   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16679   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16680   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16681   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16682   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16683   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16684   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16685   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16686 end;
16687
16688 procedure Read_GL_ARB_viewport_array;
16689 begin
16690   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16691   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16692   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16693   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16694   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16695   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16696   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16697   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16698   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16699   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16700 end;
16701
16702 // GL 4.2
16703
16704 procedure Read_GL_ARB_base_instance;
16705 begin
16706 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16707 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16708 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16709 end;
16710
16711 procedure Read_GL_ARB_transform_feedback_instanced;
16712 begin
16713 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16714 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16715 end;
16716
16717 procedure Read_GL_ARB_internalformat_query;
16718 begin
16719 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16720 end;
16721
16722 procedure Read_GL_ARB_shader_atomic_counters;
16723 begin
16724 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16725 end;
16726
16727 procedure Read_GL_ARB_shader_image_load_store;
16728 begin
16729 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16730 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16731 end;
16732
16733 procedure Read_GL_ARB_texture_storage;
16734 begin
16735 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16736 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16737 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16738 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16739 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16740 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16741 end;
16742
16743
16744 // GL 4.3
16745 procedure Read_GL_KHR_debug;
16746 begin
16747   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16748   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16749   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16750   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16751   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16752   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16753   glObjectLabel := dglGetProcAddress('glObjectLabel');
16754   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16755   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16756   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16757 end;
16758
16759 procedure Read_GL_ARB_clear_buffer_object;
16760 begin
16761   glClearBufferData := dglGetProcAddress('glClearBufferData');
16762   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16763   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16764   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16765 end;
16766
16767 procedure Read_GL_ARB_compute_shader;
16768 begin
16769   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16770   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16771 end;
16772
16773 procedure Read_GL_ARB_copy_image;
16774 begin
16775   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16776 end;
16777
16778 procedure Read_GL_ARB_framebuffer_no_attachments;
16779 begin
16780   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16781   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16782   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16783   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16784 end;
16785
16786 procedure Read_GL_ARB_internalformat_query2;
16787 begin
16788   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16789 end;
16790
16791 procedure Read_GL_ARB_invalidate_subdata;
16792 begin
16793   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16794   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16795   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16796   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16797   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16798   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16799 end;
16800
16801 procedure Read_GL_ARB_multi_draw_indirect;
16802 begin
16803   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16804   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16805 end;
16806
16807 procedure Read_GL_ARB_program_interface_query;
16808 begin
16809   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16810   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16811   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16812   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16813   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16814   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16815 end;
16816
16817 procedure Read_GL_ARB_shader_storage_buffer_object;
16818 begin
16819   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16820 end;
16821
16822 procedure Read_GL_ARB_texture_buffer_range;
16823 begin
16824   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16825   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16826 end;
16827
16828 procedure Read_GL_ARB_texture_storage_multisample;
16829 begin
16830   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16831   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16832   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16833   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16834 end;
16835
16836 procedure Read_GL_ARB_texture_view;
16837 begin
16838   glTextureView := dglGetProcAddress('glTextureView');
16839 end;
16840
16841 procedure Read_GL_ARB_vertex_attrib_binding;
16842 begin
16843   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16844   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16845   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16846   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16847   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16848   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16849   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16850   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16851   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16852   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16853   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16854   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16855 end;
16856
16857 procedure Read_GL_4_4;
16858 begin
16859   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16860   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16861   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16862   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16863   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16864   glBindTextures      := dglGetProcAddress('glBindTextures');
16865   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16866   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16867   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16868 end;
16869
16870 procedure Read_GL_4_5;
16871 begin
16872   glClipControl:= dglGetProcAddress('glClipControl');
16873   glCreateTransformFeedbacks:= dglGetProcAddress('glCreateTransformFeedbacks');
16874   glTransformFeedbackBufferBase:= dglGetProcAddress('glTransformFeedbackBufferBase');
16875   glTransformFeedbackBufferRange:= dglGetProcAddress('glTransformFeedbackBufferRange');
16876   glGetTransformFeedbackiv:= dglGetProcAddress('glGetTransformFeedbackiv');
16877   glGetTransformFeedbacki_v:= dglGetProcAddress('glGetTransformFeedbacki_v');
16878   glGetTransformFeedbacki64_v:= dglGetProcAddress('glGetTransformFeedbacki64_v');
16879   glCreateBuffers:= dglGetProcAddress('glCreateBuffers');
16880   glNamedBufferStorage:= dglGetProcAddress('glNamedBufferStorage');
16881   glNamedBufferData:= dglGetProcAddress('glNamedBufferData');
16882   glNamedBufferSubData:= dglGetProcAddress('glNamedBufferSubData');
16883   glCopyNamedBufferSubData:= dglGetProcAddress('glCopyNamedBufferSubData');
16884   glClearNamedBufferData:= dglGetProcAddress('glClearNamedBufferData');
16885   glClearNamedBufferSubData:= dglGetProcAddress('glClearNamedBufferSubData');
16886   glMapNamedBuffer:= dglGetProcAddress('glMapNamedBuffer');
16887   glMapNamedBufferRange:= dglGetProcAddress('glMapNamedBufferRange');
16888   glUnmapNamedBuffer:= dglGetProcAddress('glUnmapNamedBuffer');
16889   glFlushMappedNamedBufferRange:= dglGetProcAddress('glFlushMappedNamedBufferRange');
16890   glGetNamedBufferParameteriv:= dglGetProcAddress('glGetNamedBufferParameteriv');
16891   glGetNamedBufferParameteri64v:= dglGetProcAddress('glGetNamedBufferParameteri64v');
16892   glGetNamedBufferPointerv:= dglGetProcAddress('glGetNamedBufferPointerv');
16893   glGetNamedBufferSubData:= dglGetProcAddress('glGetNamedBufferSubData');
16894   glCreateFramebuffers:= dglGetProcAddress('glCreateFramebuffers');
16895   glNamedFramebufferRenderbuffer:= dglGetProcAddress('glNamedFramebufferRenderbuffer');
16896   glNamedFramebufferParameteri:= dglGetProcAddress('glNamedFramebufferParameteri');
16897   glNamedFramebufferTexture:= dglGetProcAddress('glNamedFramebufferTexture');
16898   glNamedFramebufferTextureLayer:= dglGetProcAddress('glNamedFramebufferTextureLayer');
16899   glNamedFramebufferDrawBuffer:= dglGetProcAddress('glNamedFramebufferDrawBuffer');
16900   glNamedFramebufferDrawBuffers:= dglGetProcAddress('glNamedFramebufferDrawBuffers');
16901   glNamedFramebufferReadBuffer:= dglGetProcAddress('glNamedFramebufferReadBuffer');
16902   glInvalidateNamedFramebufferData:= dglGetProcAddress('glInvalidateNamedFramebufferData');
16903   glInvalidateNamedFramebufferSubData:= dglGetProcAddress('glInvalidateNamedFramebufferSubData');
16904   glClearNamedFramebufferiv:= dglGetProcAddress('glClearNamedFramebufferiv');
16905   glClearNamedFramebufferuiv:= dglGetProcAddress('glClearNamedFramebufferuiv');
16906   glClearNamedFramebufferfv:= dglGetProcAddress('glClearNamedFramebufferfv');
16907   glClearNamedFramebufferfi:= dglGetProcAddress('glClearNamedFramebufferfi');
16908   glBlitNamedFramebuffer:= dglGetProcAddress('glBlitNamedFramebuffer');
16909   glCheckNamedFramebufferStatus:= dglGetProcAddress('glCheckNamedFramebufferStatus');
16910   glGetNamedFramebufferParameteriv:= dglGetProcAddress('glGetNamedFramebufferParameteriv');
16911   glGetNamedFramebufferAttachmentParameteriv:= dglGetProcAddress('glGetNamedFramebufferAttachmentParameteriv');
16912   glCreateRenderbuffers:= dglGetProcAddress('glCreateRenderbuffers');
16913   glNamedRenderbufferStorage:= dglGetProcAddress('glNamedRenderbufferStorage');
16914   glNamedRenderbufferStorageMultisample:= dglGetProcAddress('glNamedRenderbufferStorageMultisample');
16915   glGetNamedRenderbufferParameteriv:= dglGetProcAddress('glGetNamedRenderbufferParameteriv');
16916   glCreateTextures:= dglGetProcAddress('glCreateTextures');
16917   glTextureBuffer:= dglGetProcAddress('glTextureBuffer');
16918   glTextureBufferRange:= dglGetProcAddress('glTextureBufferRange');
16919   glTextureStorage1D:= dglGetProcAddress('glTextureStorage1D');
16920   glTextureStorage2D:= dglGetProcAddress('glTextureStorage2D');
16921   glTextureStorage3D:= dglGetProcAddress('glTextureStorage3D');
16922   glTextureStorage2DMultisample:= dglGetProcAddress('glTextureStorage2DMultisample');
16923   glTextureStorage3DMultisample:= dglGetProcAddress('glTextureStorage3DMultisample');
16924   glTextureSubImage1D:= dglGetProcAddress('glTextureSubImage1D');
16925   glTextureSubImage2D:= dglGetProcAddress('glTextureSubImage2D');
16926   glTextureSubImage3D:= dglGetProcAddress('glTextureSubImage3D');
16927   glCompressedTextureSubImage1D:= dglGetProcAddress('glCompressedTextureSubImage1D');
16928   glCompressedTextureSubImage2D:= dglGetProcAddress('glCompressedTextureSubImage2D');
16929   glCompressedTextureSubImage3D:= dglGetProcAddress('glCompressedTextureSubImage3D');
16930   glCopyTextureSubImage1D:= dglGetProcAddress('glCopyTextureSubImage1D');
16931   glCopyTextureSubImage2D:= dglGetProcAddress('glCopyTextureSubImage2D');
16932   glCopyTextureSubImage3D:= dglGetProcAddress('glCopyTextureSubImage3D');
16933   glTextureParameterf:= dglGetProcAddress('glTextureParameterf');
16934   glTextureParameterfv:= dglGetProcAddress('glTextureParameterfv');
16935   glTextureParameteri:= dglGetProcAddress('glTextureParameteri');
16936   glTextureParameterIiv:= dglGetProcAddress('glTextureParameterIiv');
16937   glTextureParameterIuiv:= dglGetProcAddress('glTextureParameterIuiv');
16938   glTextureParameteriv:= dglGetProcAddress('glTextureParameteriv');
16939   glGenerateTextureMipmap:= dglGetProcAddress('glGenerateTextureMipmap');
16940   glBindTextureUnit:= dglGetProcAddress('glBindTextureUnit');
16941   glGetTextureImage:= dglGetProcAddress('glGetTextureImage');
16942   glGetCompressedTextureImage:= dglGetProcAddress('glGetCompressedTextureImage');
16943   glGetTextureLevelParameterfv:= dglGetProcAddress('glGetTextureLevelParameterfv');
16944   glGetTextureLevelParameteriv:= dglGetProcAddress('glGetTextureLevelParameteriv');
16945   glGetTextureParameterfv:= dglGetProcAddress('glGetTextureParameterfv');
16946   glGetTextureParameterIiv:= dglGetProcAddress('glGetTextureParameterIiv');
16947   glGetTextureParameterIuiv:= dglGetProcAddress('glGetTextureParameterIuiv');
16948   glGetTextureParameteriv:= dglGetProcAddress('glGetTextureParameteriv');
16949   glCreateVertexArrays:= dglGetProcAddress('glCreateVertexArrays');
16950   glDisableVertexArrayAttrib:= dglGetProcAddress('glDisableVertexArrayAttrib');
16951   glEnableVertexArrayAttrib:= dglGetProcAddress('glEnableVertexArrayAttrib');
16952   glVertexArrayElementBuffer:= dglGetProcAddress('glVertexArrayElementBuffer');
16953   glVertexArrayVertexBuffer:= dglGetProcAddress('glVertexArrayVertexBuffer');
16954   glVertexArrayVertexBuffers:= dglGetProcAddress('glVertexArrayVertexBuffers');
16955   glVertexArrayAttribBinding:= dglGetProcAddress('glVertexArrayAttribBinding');
16956   glVertexArrayAttribFormat:= dglGetProcAddress('glVertexArrayAttribFormat');
16957   glVertexArrayAttribIFormat:= dglGetProcAddress('glVertexArrayAttribIFormat');
16958   glVertexArrayAttribLFormat:= dglGetProcAddress('glVertexArrayAttribLFormat');
16959   glVertexArrayBindingDivisor:= dglGetProcAddress('glVertexArrayBindingDivisor');
16960   glGetVertexArrayiv:= dglGetProcAddress('glGetVertexArrayiv');
16961   glGetVertexArrayIndexediv:= dglGetProcAddress('glGetVertexArrayIndexediv');
16962   glGetVertexArrayIndexed64iv:= dglGetProcAddress('glGetVertexArrayIndexed64iv');
16963   glCreateSamplers:= dglGetProcAddress('glCreateSamplers');
16964   glCreateProgramPipelines:= dglGetProcAddress('glCreateProgramPipelines');
16965   glCreateQueries:= dglGetProcAddress('glCreateQueries');
16966   glMemoryBarrierByRegion:= dglGetProcAddress('glMemoryBarrierByRegion');
16967   glGetTextureSubImage:= dglGetProcAddress('glGetTextureSubImage');
16968   glGetCompressedTextureSubImage:= dglGetProcAddress('glGetCompressedTextureSubImage');
16969   glGetGraphicsResetStatus:= dglGetProcAddress('glGetGraphicsResetStatus');
16970   glGetnCompressedTexImage:= dglGetProcAddress('glGetnCompressedTexImage');
16971   glGetnTexImage:= dglGetProcAddress('glGetnTexImage');
16972   glGetnUniformdv:= dglGetProcAddress('glGetnUniformdv');
16973   glGetnUniformfv:= dglGetProcAddress('glGetnUniformfv');
16974   glGetnUniformiv:= dglGetProcAddress('glGetnUniformiv');
16975   glGetnUniformuiv:= dglGetProcAddress('glGetnUniformuiv');
16976   glReadnPixels:= dglGetProcAddress('glReadnPixels');
16977   glGetnMapdv:= dglGetProcAddress('glGetnMapdv');
16978   glGetnMapfv:= dglGetProcAddress('glGetnMapfv');
16979   glGetnMapiv:= dglGetProcAddress('glGetnMapiv');
16980   glGetnPixelMapfv:= dglGetProcAddress('glGetnPixelMapfv');
16981   glGetnPixelMapuiv:= dglGetProcAddress('glGetnPixelMapuiv');
16982   glGetnPixelMapusv:= dglGetProcAddress('glGetnPixelMapusv');
16983   glGetnPolygonStipple:= dglGetProcAddress('glGetnPolygonStipple');
16984   glGetnColorTable:= dglGetProcAddress('glGetnColorTable');
16985   glGetnConvolutionFilter:= dglGetProcAddress('glGetnConvolutionFilter');
16986   glGetnSeparableFilter:= dglGetProcAddress('glGetnSeparableFilter');
16987   glGetnHistogram:= dglGetProcAddress('glGetnHistogram');
16988   glGetnMinmax:= dglGetProcAddress('glGetnMinmax');
16989   glTextureBarrier:= dglGetProcAddress('glTextureBarrier');
16990 end;
16991
16992 procedure Read_GL_NV_path_rendering;
16993 begin
16994   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
16995   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
16996   glIsPathNV := dglGetProcAddress('glIsPathNV');
16997   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
16998   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
16999   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
17000   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
17001   glPathStringNV := dglGetProcAddress('glPathStringNV');
17002   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
17003   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
17004   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
17005   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
17006   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
17007   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
17008   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
17009   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
17010   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
17011   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
17012   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
17013   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
17014   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
17015   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
17016   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
17017   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
17018   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
17019   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
17020   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
17021   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
17022   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
17023   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
17024   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
17025   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
17026   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
17027   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
17028   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
17029   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
17030   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
17031   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
17032   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
17033   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
17034   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
17035   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
17036   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
17037   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
17038   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
17039   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
17040   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
17041   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
17042   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
17043 end;
17044
17045 procedure Read_GL_AMD_stencil_operation_extended;
17046 begin
17047         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
17048 end;
17049
17050 procedure Read_GL_NV_bindless_texture;
17051 begin
17052   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
17053   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
17054   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
17055   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
17056   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
17057   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
17058   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
17059   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
17060   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
17061   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
17062   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
17063   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
17064   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
17065 end;
17066
17067 procedure Read_GL_ARB_bindless_texture;
17068 begin
17069   glGetTextureHandleARB := dglGetProcAddress('TglGetTextureHandleARB');
17070   glGetTextureSamplerHandleARB := dglGetProcAddress('TglGetTextureSamplerHandleARB');
17071   glMakeTextureHandleResidentARB := dglGetProcAddress('TglMakeTextureHandleResidentARB');
17072   glMakeTextureHandleNonResidentARB := dglGetProcAddress('TglMakeTextureHandleNonResidentARB');
17073   glGetImageHandleARB := dglGetProcAddress('TglGetImageHandleARB');
17074   glMakeImageHandleResidentARB := dglGetProcAddress('TglMakeImageHandleResidentARB');
17075   glMakeImageHandleNonResidentARB := dglGetProcAddress('TglMakeImageHandleNonResidentARB');
17076   glUniformHandleui64ARB := dglGetProcAddress('TglUniformHandleui64ARB');
17077   glUniformHandleui64vARB := dglGetProcAddress('TglUniformHandleui64vARB');
17078   glProgramUniformHandleui64ARB := dglGetProcAddress('TglProgramUniformHandleui64ARB');
17079   glProgramUniformHandleui64vARB := dglGetProcAddress('TglProgramUniformHandleui64vARB');
17080   glIsTextureHandleResidentARB := dglGetProcAddress('TglIsTextureHandleResidentARB');
17081   glIsImageHandleResidentARB := dglGetProcAddress('TglIsImageHandleResidentARB');
17082   glVertexAttribL1ui64ARB := dglGetProcAddress('TglVertexAttribL1ui64ARB');
17083   glVertexAttribL1ui64vARB := dglGetProcAddress('TglVertexAttribL1ui64vARB');
17084   glGetVertexAttribLui64vARB := dglGetProcAddress('TglGetVertexAttribLui64vARB');
17085 end;
17086
17087 procedure Read_GL_ARB_cl_event;
17088 begin
17089   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
17090 end;
17091
17092 procedure Read_GL_ARB_debug_output;
17093 begin
17094   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
17095   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
17096   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
17097   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
17098 end;
17099
17100 procedure Read_GL_ARB_robustness;
17101 begin
17102   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
17103   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
17104   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
17105   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
17106   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
17107   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
17108   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
17109   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
17110   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
17111   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
17112   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
17113   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
17114   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
17115   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
17116   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
17117   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
17118   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
17119   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
17120   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
17121   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
17122 end;
17123
17124 procedure Read_GL_ATI_draw_buffers;
17125 begin
17126   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
17127 end;
17128
17129 procedure Read_GL_ATI_element_array;
17130 begin
17131   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
17132   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
17133   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
17134 end;
17135
17136 procedure Read_GL_ATI_envmap_bumpmap;
17137 begin
17138   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
17139   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
17140   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
17141   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
17142 end;
17143
17144 procedure Read_GL_ATI_fragment_shader;
17145 begin
17146   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
17147   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
17148   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
17149   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
17150   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
17151   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
17152   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
17153   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
17154   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
17155   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
17156   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
17157   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
17158   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
17159   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
17160 end;
17161
17162 procedure Read_GL_ATI_map_object_buffer;
17163 begin
17164   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
17165   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
17166 end;
17167
17168 procedure Read_GL_ATI_pn_triangles;
17169 begin
17170   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
17171   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
17172 end;
17173
17174 procedure Read_GL_ATI_separate_stencil;
17175 begin
17176   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
17177   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
17178 end;
17179
17180 procedure Read_GL_ATI_vertex_array_object;
17181 begin
17182   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
17183   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
17184   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
17185   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
17186   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
17187   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
17188   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
17189   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
17190   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
17191   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17192   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17193   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17194
17195 end;
17196
17197 procedure Read_GL_ATI_vertex_attrib_array_object;
17198 begin
17199   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17200   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17201   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17202 end;
17203
17204 procedure Read_GL_ATI_vertex_streams;
17205 begin
17206   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17207   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17208   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17209   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17210   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17211   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17212   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17213   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17214   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17215   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17216   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17217   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17218   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17219   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17220   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17221   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17222   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17223   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17224   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17225   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17226   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17227   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17228   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17229   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17230   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17231   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17232   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17233   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17234   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17235   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17236   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17237   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17238   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17239   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17240   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17241   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17242   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17243   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17244   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17245   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17246   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17247   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17248   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17249   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17250   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17251 end;
17252
17253 procedure Read_GL_AMD_performance_monitor;
17254 begin
17255   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17256   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17257   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17258   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17259   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17260   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17261   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17262   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17263   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17264   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17265   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17266 end;
17267
17268 procedure Read_GL_AMD_vertex_shader_tesselator;
17269 begin
17270   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17271   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17272 end;
17273
17274 procedure Read_GL_AMD_draw_buffers_blend;
17275 begin
17276   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17277   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17278   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17279   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17280 end;
17281
17282 procedure Read_GL_AMD_name_gen_delete;
17283 begin
17284   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17285   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17286   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17287 end;
17288
17289 procedure Read_GL_AMD_debug_output;
17290 begin
17291   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17292   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17293   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17294   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17295 end;
17296
17297 procedure Read_GL_EXT_blend_color;
17298 begin
17299   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17300 end;
17301
17302 procedure Read_GL_EXT_blend_func_separate;
17303 begin
17304   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17305 end;
17306
17307 procedure Read_GL_EXT_blend_minmax;
17308 begin
17309   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17310 end;
17311
17312 procedure Read_GL_EXT_color_subtable;
17313 begin
17314   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17315   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17316 end;
17317
17318 procedure Read_GL_EXT_compiled_vertex_array;
17319 begin
17320   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17321   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17322 end;
17323
17324 procedure Read_GL_EXT_convolution;
17325 begin
17326   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17327   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17328   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17329   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17330   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17331   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17332   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17333   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17334   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17335   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17336   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17337   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17338   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17339 end;
17340
17341 procedure Read_GL_EXT_coordinate_frame;
17342 begin
17343   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17344   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17345   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17346   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17347   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17348   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17349   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17350   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17351   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17352   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17353   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17354   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17355   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17356   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17357   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17358   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17359   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17360   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17361   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17362   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17363   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17364   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17365 end;
17366
17367 procedure Read_GL_EXT_copy_texture;
17368 begin
17369   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17370   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17371   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17372   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17373   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17374 end;
17375
17376 procedure Read_GL_EXT_cull_vertex;
17377 begin
17378   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17379   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17380 end;
17381
17382 procedure Read_GL_EXT_draw_range_elements;
17383 begin
17384   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17385 end;
17386
17387 procedure Read_GL_EXT_fog_coord;
17388 begin
17389   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17390   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17391   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17392   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17393   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17394 end;
17395
17396 procedure Read_GL_EXT_framebuffer_object;
17397 begin
17398   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17399   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17400   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17401   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17402   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17403   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17404   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17405   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17406   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17407   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17408   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17409   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17410   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17411   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17412   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17413   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17414   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17415 end;
17416
17417 procedure Read_GL_EXT_histogram;
17418 begin
17419   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17420   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17421   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17422   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17423   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17424   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17425   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17426   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17427   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17428   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17429 end;
17430
17431 procedure Read_GL_EXT_index_func;
17432 begin
17433   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17434 end;
17435
17436 procedure Read_GL_EXT_index_material;
17437 begin
17438   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17439 end;
17440
17441 procedure Read_GL_EXT_light_texture;
17442 begin
17443   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17444   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17445   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17446 end;
17447
17448 procedure Read_GL_EXT_multi_draw_arrays;
17449 begin
17450   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17451   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17452 end;
17453
17454 procedure Read_GL_EXT_multisample;
17455 begin
17456   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17457   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17458 end;
17459
17460 procedure Read_GL_EXT_paletted_texture;
17461 begin
17462   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17463   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17464   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17465   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17466 end;
17467
17468 procedure Read_GL_EXT_pixel_transform;
17469 begin
17470   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17471   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17472   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17473   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17474 end;
17475
17476 procedure Read_GL_EXT_point_parameters;
17477 begin
17478   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17479   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17480 end;
17481
17482 procedure Read_GL_EXT_polygon_offset;
17483 begin
17484   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17485 end;
17486
17487 procedure Read_GL_EXT_secondary_color;
17488 begin
17489   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17490   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17491   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17492   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17493   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17494   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17495   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17496   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17497   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17498   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17499   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17500   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17501   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17502   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17503   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17504   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17505   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17506 end;
17507
17508 procedure Read_GL_EXT_stencil_two_side;
17509 begin
17510   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17511 end;
17512
17513 procedure Read_GL_EXT_subtexture;
17514 begin
17515   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17516   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17517 end;
17518
17519 procedure Read_GL_EXT_texture3D;
17520 begin
17521   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17522   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17523 end;
17524
17525 procedure Read_GL_EXT_texture_object;
17526 begin
17527   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17528   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17529   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17530   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17531   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17532   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17533 end;
17534
17535 procedure Read_GL_EXT_texture_perturb_normal;
17536 begin
17537   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17538 end;
17539
17540 procedure Read_GL_EXT_vertex_array;
17541 begin
17542   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17543   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17544   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17545   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17546   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17547   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17548   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17549   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17550   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17551 end;
17552
17553 procedure Read_GL_EXT_vertex_shader;
17554 begin
17555   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17556   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17557   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17558   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17559   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17560   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17561   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17562   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17563   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17564   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17565   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17566   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17567   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17568   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17569   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17570   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17571   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17572   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17573   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17574   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17575   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17576   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17577   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17578   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17579   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17580   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17581   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17582   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17583   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17584   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17585   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17586   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17587   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17588   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17589   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17590   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17591   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17592   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17593   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17594   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17595   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17596   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17597 end;
17598
17599 procedure Read_GL_EXT_vertex_weighting;
17600 begin
17601   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17602   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17603   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17604 end;
17605
17606 procedure Read_GL_EXT_depth_bounds_test;
17607 begin
17608   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17609   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17610 end;
17611
17612 procedure Read_GL_EXT_blend_equation_separate;
17613 begin
17614   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17615 end;
17616
17617 procedure Read_GL_EXT_stencil_clear_tag;
17618 begin
17619   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17620 end;
17621
17622 procedure Read_GL_EXT_framebuffer_blit;
17623 begin
17624   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17625 end;
17626
17627 procedure Read_GL_EXT_framebuffer_multisample;
17628 begin
17629   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17630 end;
17631
17632 procedure Read_GL_EXT_timer_query;
17633 begin
17634   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17635   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17636 end;
17637
17638 procedure Read_GL_EXT_gpu_program_parameters;
17639 begin
17640   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17641   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17642 end;
17643
17644 procedure Read_GL_EXT_bindable_uniform;
17645 begin
17646   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17647   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17648   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17649 end;
17650
17651 procedure Read_GL_EXT_draw_buffers2;
17652 begin
17653   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17654   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17655   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17656   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17657   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17658   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17659 end;
17660
17661 procedure Read_GL_EXT_draw_instanced;
17662 begin
17663   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17664   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17665 end;
17666
17667 procedure Read_GL_EXT_geometry_shader4;
17668 begin
17669   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17670   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17671 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17672   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17673 end;
17674
17675 procedure Read_GL_EXT_gpu_shader4;
17676 begin
17677   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17678   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17679   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17680   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17681   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17682   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17683   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17684   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17685   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17686   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17687   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17688   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17689   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17690   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17691   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17692   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17693   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17694   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17695   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17696   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17697   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17698   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17699   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17700   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17701   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17702   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17703   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17704   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17705   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17706   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17707   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17708   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17709   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17710   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17711 end;
17712
17713 procedure Read_GL_EXT_texture_array;
17714 begin
17715   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17716 end;
17717
17718 procedure Read_GL_EXT_texture_buffer_object;
17719 begin
17720   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17721 end;
17722
17723 procedure Read_GL_EXT_texture_integer;
17724 begin
17725   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17726   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17727   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17728   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17729   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17730   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17731 end;
17732
17733 procedure Read_GL_EXT_transform_feedback;
17734 begin
17735   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17736   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17737   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17738   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17739   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17740   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17741   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17742 end;
17743
17744 procedure Read_GL_EXT_direct_state_access;
17745 begin
17746   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17747   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17748   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17749   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17750   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17751   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17752   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17753   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17754   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17755   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17756   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17757   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17758   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17759   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17760   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17761   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17762   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17763   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17764   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17765   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17766   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17767   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17768   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17769   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17770   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17771   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17772   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17773   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17774   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17775   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17776   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17777   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17778   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17779   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17780   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17781   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17782   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17783   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17784   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17785   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17786   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17787   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17788   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17789   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17790   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17791   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17792   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17793   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17794   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17795   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17796   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17797   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17798   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17799   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17800   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17801   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17802   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17803   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17804   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17805   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17806   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17807   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17808   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17809   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17810   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17811   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17812   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17813   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17814   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17815   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17816   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17817   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17818   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17819   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17820   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17821   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17822   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17823   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17824   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17825   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17826   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17827   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17828   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17829   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17830   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17831   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17832   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17833   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17834   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17835   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17836   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17837   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17838   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17839   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17840   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17841   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17842   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17843   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17844   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17845   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17846   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17847   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17848   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17849   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17850   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17851   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17852   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17853   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17854   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17855   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17856   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17857   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17858   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17859   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17860   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17861   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17862   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17863   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17864   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17865   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17866   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17867   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17868   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17869   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17870   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17871   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17872   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17873   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17874   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17875   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17876   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17877   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17878   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17879   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17880   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17881   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17882   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17883   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17884   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17885   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17886   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17887   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17888   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17889   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17890   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17891   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17892   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17893   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17894   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17895   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17896   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17897   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17898   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17899   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17900   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17901   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17902   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17903   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17904   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17905   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17906   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17907   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17908   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17909   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17910   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17911   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17912   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17913   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17914   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17915   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17916   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17917   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17918   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17919   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17920   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17921   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17922   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17923   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17924   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17925   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17926   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17927   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17928   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17929   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17930   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17931   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17932   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17933   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17934   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17935   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17936   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17937   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17938   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17939   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17940   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17941   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17942   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17943   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17944   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17945   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17946   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17947   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17948   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17949   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17950   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17951   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17952 end;
17953
17954 procedure Read_GL_EXT_separate_shader_objects;
17955 begin
17956   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17957   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17958   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17959 end;
17960
17961 procedure Read_GL_EXT_shader_image_load_store;
17962 begin
17963   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17964   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17965 end;
17966
17967 procedure Read_GL_EXT_vertex_attrib_64bit;
17968 begin
17969   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
17970   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
17971   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
17972   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
17973   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
17974   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
17975   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
17976   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
17977   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
17978   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
17979   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
17980 end;
17981
17982 procedure Read_GL_HP_image_transform;
17983 begin
17984   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17985   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
17986   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
17987   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
17988   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
17989   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
17990 end;
17991
17992 procedure Read_GL_IBM_multimode_draw_arrays;
17993 begin
17994   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
17995   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
17996 end;
17997
17998 procedure Read_GL_IBM_vertex_array_lists;
17999 begin
18000   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
18001   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
18002   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
18003   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
18004   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
18005   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
18006   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
18007   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
18008 end;
18009
18010 procedure Read_GL_INGR_blend_func_separate;
18011 begin
18012   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
18013 end;
18014
18015 procedure Read_GL_INTEL_parallel_arrays;
18016 begin
18017   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
18018   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
18019   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
18020   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
18021 end;
18022
18023 procedure Read_GL_MESA_resize_buffers;
18024 begin
18025   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
18026 end;
18027
18028 procedure Read_GL_MESA_window_pos;
18029 begin
18030   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
18031   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
18032   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
18033   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
18034   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
18035   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
18036   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
18037   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
18038   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
18039   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
18040   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
18041   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
18042   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
18043   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
18044   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
18045   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
18046   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
18047   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
18048   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
18049   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
18050   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
18051   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
18052   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
18053   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
18054 end;
18055
18056 procedure Read_GL_NV_evaluators;
18057 begin
18058   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
18059   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
18060   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
18061   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
18062   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
18063   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
18064   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
18065   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
18066   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
18067 end;
18068
18069 procedure Read_GL_NV_fence;
18070 begin
18071   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
18072   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
18073   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
18074   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
18075   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
18076   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
18077   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
18078 end;
18079
18080 procedure Read_GL_NV_fragment_program;
18081 begin
18082   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
18083   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
18084   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
18085   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
18086   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
18087   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
18088 end;
18089
18090 procedure Read_GL_NV_half_float;
18091 begin
18092   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
18093   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
18094   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
18095   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
18096   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
18097   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
18098   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
18099   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
18100   glColor3hNV := dglGetProcAddress('glColor3hNV');
18101   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
18102   glColor4hNV := dglGetProcAddress('glColor4hNV');
18103   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
18104   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
18105   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
18106   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
18107   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
18108   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
18109   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
18110   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
18111   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
18112   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
18113   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
18114   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
18115   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
18116   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
18117   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
18118   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
18119   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
18120   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
18121   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
18122   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
18123   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
18124   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
18125   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
18126   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
18127   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
18128   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
18129   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
18130   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
18131   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
18132   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
18133   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
18134   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
18135   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
18136   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
18137   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
18138 end;
18139
18140 procedure Read_GL_NV_occlusion_query;
18141 begin
18142   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
18143   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
18144   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
18145   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
18146   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
18147   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
18148   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
18149 end;
18150
18151 procedure Read_GL_NV_pixel_data_range;
18152 begin
18153   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
18154   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
18155 end;
18156
18157 procedure Read_GL_NV_point_sprite;
18158 begin
18159   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
18160   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
18161 end;
18162
18163 procedure Read_GL_NV_primitive_restart;
18164 begin
18165   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
18166   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
18167 end;
18168
18169 procedure Read_GL_NV_register_combiners;
18170 begin
18171   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
18172   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
18173   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
18174   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
18175   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
18176   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
18177   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
18178   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
18179   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
18180   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
18181   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
18182   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
18183   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
18184 end;
18185
18186 procedure Read_GL_NV_register_combiners2;
18187 begin
18188   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
18189   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
18190 end;
18191
18192 procedure Read_GL_NV_vertex_array_range;
18193 begin
18194   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18195   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18196 end;
18197
18198 procedure Read_GL_NV_vertex_program;
18199 begin
18200   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18201   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18202   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18203   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18204   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18205   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18206   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18207   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18208   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18209   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18210   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18211   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18212   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18213   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18214   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18215   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18216   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18217   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18218   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18219   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18220   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18221   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18222   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18223   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18224   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18225   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18226   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18227   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18228   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18229   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18230   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18231   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18232   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18233   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18234   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18235   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18236   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18237   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18238   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18239   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18240   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18241   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18242   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18243   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18244   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18245   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18246   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18247   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18248   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18249   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18250   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18251   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18252   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18253   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18254   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18255   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18256   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18257   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18258   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18259   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18260   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18261   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18262   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18263   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18264 end;
18265
18266 procedure Read_GL_NV_depth_buffer_float;
18267 begin
18268   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18269   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18270   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18271 end;
18272
18273 procedure Read_GL_NV_framebuffer_multisample_coverage;
18274 begin
18275   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18276 end;
18277
18278 procedure Read_GL_NV_geometry_program4;
18279 begin
18280   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18281 end;
18282
18283 procedure Read_GL_NV_gpu_program4;
18284 begin
18285   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18286   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18287   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18288   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18289   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18290   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18291   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18292   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18293   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18294   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18295   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18296   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18297   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18298   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18299   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18300   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18301 end;
18302
18303 procedure Read_GL_NV_parameter_buffer_object;
18304 begin
18305   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18306   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18307   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18308 end;
18309
18310 procedure Read_GL_NV_transform_feedback;
18311 begin
18312   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18313   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18314   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18315   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18316   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18317   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18318   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18319   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18320   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18321   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18322   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18323   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18324 end;
18325
18326 procedure Read_GL_NV_conditional_render;
18327 begin
18328   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18329   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18330 end;
18331
18332 procedure Read_GL_NV_present_video;
18333 begin
18334   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18335   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18336   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18337   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18338   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18339   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18340 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18341 end;
18342
18343 procedure Read_GL_NV_explicit_multisample;
18344 begin
18345   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18346   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18347   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18348 end;
18349
18350 procedure Read_GL_NV_transform_feedback2;
18351 begin
18352   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18353   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18354   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18355   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18356   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18357   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18358   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18359 end;
18360
18361 procedure Read_GL_NV_video_capture;
18362 begin
18363   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18364   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18365   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18366   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18367   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18368   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18369   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18370   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18371   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18372   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18373   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18374   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18375 end;
18376
18377 procedure Read_GL_NV_copy_image;
18378 begin
18379   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18380 end;
18381
18382 procedure Read_GL_NV_shader_buffer_load;
18383 begin
18384   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18385   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18386   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18387   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18388   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18389   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18390   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18391   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18392   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18393   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18394   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18395   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18396   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18397   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18398 end;
18399
18400 procedure Read_GL_NV_vertex_buffer_unified_memory;
18401 begin
18402   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18403   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18404   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18405   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18406   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18407   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18408   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18409   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18410   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18411   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18412   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18413   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18414 end;
18415
18416 procedure Read_GL_NV_gpu_program5;
18417 begin
18418   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18419   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18420 end;
18421
18422 procedure Read_GL_NV_gpu_shader5;
18423 begin
18424   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18425   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18426   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18427   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18428   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18429   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18430   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18431   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18432   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18433   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18434   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18435   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18436   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18437   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18438   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18439   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18440   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18441   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18442   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18443   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18444   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18445   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18446   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18447   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18448   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18449   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18450   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18451   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18452   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18453   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18454   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18455   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18456   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18457 end;
18458
18459 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18460 begin
18461   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18462   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18463   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18464   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18465   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18466   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18467   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18468   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18469   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18470   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18471   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18472   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18473   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18474   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18475   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18476   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18477   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18478   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18479   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18480 end;
18481
18482 procedure Read_GL_NV_vdpau_interop;
18483 begin
18484   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18485   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18486   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18487   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18488   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18489   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18490   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18491   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18492   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18493   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18494 end;
18495
18496 procedure Read_GL_NV_texture_barrier;
18497 begin
18498   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18499 end;
18500
18501 procedure Read_GL_PGI_misc_hints;
18502 begin
18503   glHintPGI := dglGetProcAddress('glHintPGI');
18504 end;
18505
18506 procedure Read_GL_SGIS_detail_texture;
18507 begin
18508   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18509   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18510 end;
18511
18512 procedure Read_GL_SGIS_fog_function;
18513 begin
18514   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18515   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18516 end;
18517
18518 procedure Read_GL_SGIS_multisample;
18519 begin
18520   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18521   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18522 end;
18523
18524 procedure Read_GL_SGIS_pixel_texture;
18525 begin
18526   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18527   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18528   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18529   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18530   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18531   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18532 end;
18533
18534 procedure Read_GL_SGIS_point_parameters;
18535 begin
18536   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18537   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18538 end;
18539
18540 procedure Read_GL_SGIS_sharpen_texture;
18541 begin
18542   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18543   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18544 end;
18545
18546 procedure Read_GL_SGIS_texture4D;
18547 begin
18548   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18549   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18550 end;
18551
18552 procedure Read_GL_SGIS_texture_color_mask;
18553 begin
18554   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18555 end;
18556
18557 procedure Read_GL_SGIS_texture_filter4;
18558 begin
18559   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18560   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18561 end;
18562
18563 procedure Read_GL_SGIX_async;
18564 begin
18565   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18566   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18567   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18568   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18569   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18570   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18571 end;
18572
18573 procedure Read_GL_SGIX_flush_raster;
18574 begin
18575   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18576 end;
18577
18578 procedure Read_GL_SGIX_fragment_lighting;
18579 begin
18580   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18581   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18582   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18583   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18584   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18585   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18586   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18587   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18588   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18589   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18590   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18591   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18592   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18593   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18594   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18595   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18596   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18597   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18598 end;
18599
18600 procedure Read_GL_SGIX_framezoom;
18601 begin
18602   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18603 end;
18604
18605 procedure Read_GL_SGIX_igloo_interface;
18606 begin
18607   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18608 end;
18609
18610 procedure Read_GL_SGIX_instruments;
18611 begin
18612   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18613   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18614   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18615   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18616   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18617   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18618 end;
18619
18620 procedure Read_GL_SGIX_list_priority;
18621 begin
18622   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18623   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18624   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18625   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18626   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18627   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18628 end;
18629
18630 procedure Read_GL_SGIX_pixel_texture;
18631 begin
18632   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18633 end;
18634
18635 procedure Read_GL_SGIX_polynomial_ffd;
18636 begin
18637   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18638   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18639   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18640   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18641 end;
18642
18643 procedure Read_GL_SGIX_reference_plane;
18644 begin
18645   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18646 end;
18647
18648 procedure Read_GL_SGIX_sprite;
18649 begin
18650   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18651   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18652   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18653   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18654 end;
18655
18656 procedure Read_GL_SGIX_tag_sample_buffer;
18657 begin
18658   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18659 end;
18660
18661 procedure Read_GL_SGI_color_table;
18662 begin
18663   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18664   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18665   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18666   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18667   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18668   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18669   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18670 end;
18671
18672 procedure Read_GL_SUNX_constant_data;
18673 begin
18674   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18675 end;
18676
18677 procedure Read_GL_SUN_global_alpha;
18678 begin
18679   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18680   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18681   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18682   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18683   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18684   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18685   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18686   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18687 end;
18688
18689 procedure Read_GL_SUN_mesh_array;
18690 begin
18691   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18692 end;
18693
18694 procedure Read_GL_SUN_triangle_list;
18695 begin
18696   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18697   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18698   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18699   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18700   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18701   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18702   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18703 end;
18704
18705 procedure Read_GL_SUN_vertex;
18706 begin
18707   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18708   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18709   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18710   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18711   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18712   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18713   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18714   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18715   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18716   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18717   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18718   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18719   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18720   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18721   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18722   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18723   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18724   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18725   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18726   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18727   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18728   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18729   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18730   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18731   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18732   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18733   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18734   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18735   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18736   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18737   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18738   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18739   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18740   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18741   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18742   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18743   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18744   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18745   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18746   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18747 end;
18748
18749 {$IFDEF DGL_WIN}
18750 procedure Read_WGL_ARB_buffer_region;
18751 begin
18752   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18753   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18754   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18755   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18756 end;
18757
18758 procedure Read_WGL_ARB_extensions_string;
18759 begin
18760   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18761 end;
18762
18763 procedure Read_WGL_ARB_make_current_read;
18764 begin
18765   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18766   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18767 end;
18768
18769 procedure Read_WGL_ARB_pbuffer;
18770 begin
18771   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18772   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18773   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18774   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18775   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18776 end;
18777
18778 procedure Read_WGL_ARB_pixel_format;
18779 begin
18780   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18781   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18782   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18783 end;
18784
18785 procedure Read_WGL_ARB_pixel_format_float;
18786 begin
18787   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18788 end;
18789
18790 procedure Read_WGL_ARB_render_texture;
18791 begin
18792   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18793   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18794   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18795 end;
18796
18797 procedure Read_WGL_ARB_create_context;
18798 begin
18799   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18800 end;
18801
18802 procedure Read_WGL_AMD_gpu_association;
18803 begin
18804   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18805   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18806   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18807   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18808   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18809   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18810   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18811   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18812   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18813 end;
18814
18815 procedure Read_WGL_EXT_display_color_table;
18816 begin
18817   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18818   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18819   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18820   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18821 end;
18822
18823 procedure Read_WGL_EXT_extensions_string;
18824 begin
18825   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18826 end;
18827
18828 procedure Read_WGL_EXT_make_current_read;
18829 begin
18830   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18831   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18832 end;
18833
18834 procedure Read_WGL_EXT_pbuffer;
18835 begin
18836   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18837   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18838   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18839   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18840   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18841 end;
18842
18843 procedure Read_WGL_EXT_pixel_format;
18844 begin
18845   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18846   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18847   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18848 end;
18849
18850 procedure Read_WGL_EXT_swap_control;
18851 begin
18852   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18853   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18854 end;
18855
18856 procedure Read_WGL_I3D_digital_video_control;
18857 begin
18858   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18859   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18860 end;
18861
18862 procedure Read_WGL_I3D_gamma;
18863 begin
18864   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18865   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18866   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18867   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18868 end;
18869
18870 procedure Read_WGL_I3D_genlock;
18871 begin
18872   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18873   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18874   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18875   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18876   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18877   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18878   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18879   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18880   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18881   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18882   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18883   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18884 end;
18885
18886 procedure Read_WGL_I3D_image_buffer;
18887 begin
18888   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18889   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18890   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18891   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18892 end;
18893
18894 procedure Read_WGL_I3D_swap_frame_lock;
18895 begin
18896   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18897   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18898   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18899   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18900 end;
18901
18902 procedure Read_WGL_I3D_swap_frame_usage;
18903 begin
18904   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18905   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18906   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18907   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18908 end;
18909
18910 procedure Read_WGL_NV_vertex_array_range;
18911 begin
18912   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18913   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18914 end;
18915
18916 procedure Read_WGL_NV_present_video;
18917 begin
18918   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18919   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18920   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18921 end;
18922
18923 procedure Read_WGL_NV_video_output;
18924 begin
18925   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18926   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18927   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18928   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18929   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18930   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18931 end;
18932
18933 procedure Read_WGL_NV_swap_group;
18934 begin
18935   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18936   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18937   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18938   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18939   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18940   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18941 end;
18942
18943 procedure Read_WGL_NV_gpu_affinity;
18944 begin
18945   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18946   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18947   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18948   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18949   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18950 end;
18951
18952 procedure Read_WGL_NV_video_capture;
18953 begin
18954   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18955   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18956   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18957   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18958   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18959 end;
18960
18961 procedure Read_WGL_NV_copy_image;
18962 begin
18963   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18964 end;
18965
18966 procedure Read_WGL_NV_DX_interop;
18967 begin
18968   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
18969   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
18970   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
18971   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
18972   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
18973   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
18974   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
18975   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
18976 end;
18977
18978
18979 procedure Read_WGL_OML_sync_control;
18980 begin
18981   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
18982   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
18983   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
18984   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
18985   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
18986   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
18987 end;
18988
18989 procedure Read_WGL_3DL_stereo_control;
18990 begin
18991   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
18992 end;
18993
18994 procedure Read_WIN_draw_range_elements;
18995 begin
18996   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
18997 end;
18998
18999 procedure Read_WIN_swap_hint;
19000 begin
19001   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
19002 end;
19003 {$ENDIF}
19004
19005
19006 procedure ReadExtensions;
19007 begin
19008   ReadOpenGLCore;
19009
19010   Read_GL_3DFX_tbuffer;
19011   Read_GL_APPLE_element_array;
19012   Read_GL_APPLE_fence;
19013   Read_GL_APPLE_vertex_array_object;
19014   Read_GL_APPLE_vertex_array_range;
19015   Read_GL_APPLE_texture_range;
19016   Read_GL_APPLE_vertex_program_evaluators;
19017   Read_GL_APPLE_object_purgeable;
19018   Read_GL_ARB_matrix_palette;
19019   Read_GL_ARB_multitexture;
19020   Read_GL_ARB_point_parameters;
19021   Read_GL_ARB_texture_compression;
19022   Read_GL_ARB_transpose_matrix;
19023   Read_GL_ARB_vertex_blend;
19024   Read_GL_ARB_vertex_buffer_object;
19025   Read_GL_ARB_vertex_program;
19026   Read_GL_ARB_window_pos;
19027   Read_GL_ARB_color_buffer_float;
19028   Read_GL_ARB_Shader_Objects;
19029   Read_GL_ARB_occlusion_query;
19030   Read_GL_ARB_draw_instanced;
19031   Read_GL_ARB_framebuffer_object;
19032   Read_GL_ARB_geometry_shader4;
19033   Read_GL_ARB_instanced_arrays;
19034   Read_GL_ARB_map_buffer_range;
19035   Read_GL_ARB_texture_buffer_object;
19036   Read_GL_ARB_vertex_array_object;
19037   Read_GL_ARB_uniform_buffer_object;
19038   Read_GL_ARB_copy_buffer;
19039   Read_GL_ARB_draw_elements_base_vertex;
19040   Read_GL_ARB_provoking_vertex;
19041   Read_GL_ARB_sync;
19042   Read_GL_ARB_texture_multisample;
19043   Read_GL_ARB_draw_buffers_blend;
19044   Read_GL_ARB_sample_shading;
19045   Read_GL_ARB_shading_language_include;
19046   Read_GL_ARB_sparse_texture;
19047   Read_GL_ARB_sparse_buffer;
19048   Read_GL_ARB_blend_func_extended;
19049   Read_GL_ARB_sampler_objects;
19050   Read_GL_ARB_timer_query;
19051   Read_GL_ARB_vertex_type_2_10_10_10_rev;
19052   Read_GL_ARB_draw_indirect;
19053   Read_GL_ARB_gpu_shader_fp64;
19054   Read_GL_ARB_shader_subroutine;
19055   Read_GL_ARB_tessellation_shader;
19056   Read_GL_ARB_transform_feedback2;
19057   Read_GL_ARB_transform_feedback3;
19058   Read_GL_ARB_ES2_compatibility;
19059   Read_GL_ARB_get_program_binary;
19060   Read_GL_ARB_separate_shader_objects;
19061   Read_GL_ARB_vertex_attrib_64bit;
19062   Read_GL_ARB_viewport_array;
19063   Read_GL_ARB_cl_event;
19064   Read_GL_ARB_debug_output;
19065   Read_GL_ARB_robustness;
19066   //
19067   Read_GL_ATI_draw_buffers;
19068   Read_GL_ATI_element_array;
19069   Read_GL_ATI_envmap_bumpmap;
19070   Read_GL_ATI_fragment_shader;
19071   Read_GL_ATI_map_object_buffer;
19072   Read_GL_ATI_pn_triangles;
19073   Read_GL_ATI_separate_stencil;
19074   Read_GL_ATI_vertex_array_object;
19075   Read_GL_ATI_vertex_attrib_array_object;
19076   Read_GL_ATI_vertex_streams;
19077   Read_GL_AMD_performance_monitor;
19078   Read_GL_AMD_vertex_shader_tesselator;
19079   Read_GL_AMD_draw_buffers_blend;
19080   Read_GL_AMD_name_gen_delete;
19081   Read_GL_AMD_debug_output;
19082   Read_GL_AMD_stencil_operation_extended;
19083   Read_GL_EXT_blend_color;
19084   Read_GL_EXT_blend_func_separate;
19085   Read_GL_EXT_blend_minmax;
19086   Read_GL_EXT_color_subtable;
19087   Read_GL_EXT_compiled_vertex_array;
19088   Read_GL_EXT_convolution;
19089   Read_GL_EXT_coordinate_frame;
19090   Read_GL_EXT_copy_texture;
19091   Read_GL_EXT_cull_vertex;
19092   Read_GL_EXT_draw_range_elements;
19093   Read_GL_EXT_fog_coord;
19094   Read_GL_EXT_framebuffer_object;
19095   Read_GL_EXT_histogram;
19096   Read_GL_EXT_index_func;
19097   Read_GL_EXT_index_material;
19098   Read_GL_EXT_multi_draw_arrays;
19099   Read_GL_EXT_multisample;
19100   Read_GL_EXT_paletted_texture;
19101   Read_GL_EXT_pixel_transform;
19102   Read_GL_EXT_point_parameters;
19103   Read_GL_EXT_polygon_offset;
19104   Read_GL_EXT_secondary_color;
19105   Read_GL_EXT_stencil_two_side;
19106   Read_GL_EXT_subtexture;
19107   Read_GL_EXT_texture3D;
19108   Read_GL_EXT_texture_object;
19109   Read_GL_EXT_texture_perturb_normal;
19110   Read_GL_EXT_vertex_array;
19111   Read_GL_EXT_vertex_shader;
19112   Read_GL_EXT_vertex_weighting;
19113   Read_GL_EXT_depth_bounds_test;
19114   Read_GL_EXT_blend_equation_separate;
19115   Read_GL_EXT_stencil_clear_tag;
19116   Read_GL_EXT_framebuffer_blit;
19117   Read_GL_EXT_framebuffer_multisample;
19118   Read_GL_EXT_timer_query;
19119   Read_GL_EXT_gpu_program_parameters;
19120   Read_GL_EXT_bindable_uniform;
19121   Read_GL_EXT_draw_buffers2;
19122   Read_GL_EXT_draw_instanced;
19123   Read_GL_EXT_geometry_shader4;
19124   Read_GL_EXT_gpu_shader4;
19125   Read_GL_EXT_texture_array;
19126   Read_GL_EXT_texture_buffer_object;
19127   Read_GL_EXT_texture_integer;
19128   Read_GL_EXT_transform_feedback;
19129   Read_GL_EXT_direct_state_access;
19130   Read_GL_EXT_separate_shader_objects;
19131   Read_GL_EXT_shader_image_load_store;
19132   Read_GL_EXT_vertex_attrib_64bit;
19133   Read_GL_HP_image_transform;
19134   Read_GL_IBM_multimode_draw_arrays;
19135   Read_GL_IBM_vertex_array_lists;
19136   Read_GL_INGR_blend_func_separate;
19137   Read_GL_INTEL_parallel_arrays;
19138   Read_GL_KHR_blend_equation_advanced;
19139   Read_GL_MESA_resize_buffers;
19140   Read_GL_MESA_window_pos;
19141   Read_GL_NV_evaluators;
19142   Read_GL_NV_fence;
19143   Read_GL_NV_fragment_program;
19144   Read_GL_NV_half_float;
19145   Read_GL_NV_occlusion_query;
19146   Read_GL_NV_pixel_data_range;
19147   Read_GL_NV_point_sprite;
19148   Read_GL_NV_primitive_restart;
19149   Read_GL_NV_register_combiners;
19150   Read_GL_NV_register_combiners2;
19151   Read_GL_NV_vertex_array_range;
19152   Read_GL_NV_vertex_program;
19153   Read_GL_NV_depth_buffer_float;
19154   Read_GL_NV_framebuffer_multisample_coverage;
19155   Read_GL_NV_geometry_program4;
19156   Read_GL_NV_gpu_program4;
19157   Read_GL_NV_parameter_buffer_object;
19158   Read_GL_NV_transform_feedback;
19159   Read_GL_NV_conditional_render;
19160   Read_GL_NV_present_video;
19161   Read_GL_NV_explicit_multisample;
19162   Read_GL_NV_transform_feedback2;
19163   Read_GL_NV_video_capture;
19164   Read_GL_NV_copy_image;
19165   Read_GL_NV_shader_buffer_load;
19166   Read_GL_NV_vertex_buffer_unified_memory;
19167   Read_GL_NV_gpu_program5;
19168   Read_GL_NV_gpu_shader5;
19169   Read_GL_NV_vertex_attrib_integer_64bit;
19170   Read_GL_NV_vdpau_interop;
19171   Read_GL_NV_texture_barrier;
19172   Read_GL_NV_path_rendering;
19173   Read_GL_NV_bindless_texture;
19174   Read_GL_PGI_misc_hints;
19175   Read_GL_SGIS_detail_texture;
19176   Read_GL_SGIS_fog_function;
19177   Read_GL_SGIS_multisample;
19178   Read_GL_SGIS_pixel_texture;
19179   Read_GL_SGIS_point_parameters;
19180   Read_GL_SGIS_sharpen_texture;
19181   Read_GL_SGIS_texture4D;
19182   Read_GL_SGIS_texture_color_mask;
19183   Read_GL_SGIS_texture_filter4;
19184   Read_GL_SGIX_async;
19185   Read_GL_SGIX_flush_raster;
19186   Read_GL_SGIX_fragment_lighting;
19187   Read_GL_SGIX_framezoom;
19188   Read_GL_SGIX_igloo_interface;
19189   Read_GL_SGIX_instruments;
19190   Read_GL_SGIX_list_priority;
19191   Read_GL_SGIX_pixel_texture;
19192   Read_GL_SGIX_polynomial_ffd;
19193   Read_GL_SGIX_reference_plane;
19194   Read_GL_SGIX_sprite;
19195   Read_GL_SGIX_tag_sample_buffer;
19196   Read_GL_SGI_color_table;
19197   Read_GL_SUNX_constant_data;
19198   Read_GL_SUN_global_alpha;
19199   Read_GL_SUN_mesh_array;
19200   Read_GL_SUN_triangle_list;
19201   Read_GL_SUN_vertex;
19202
19203 {$IFDEF DGL_WIN}
19204   Read_WGL_ARB_buffer_region;
19205   Read_WGL_ARB_extensions_string;
19206   Read_WGL_ARB_make_current_read;
19207   Read_WGL_ARB_pbuffer;
19208   Read_WGL_ARB_pixel_format;
19209   Read_WGL_ARB_pixel_format_float;
19210   Read_WGL_ARB_render_texture;
19211   Read_WGL_ARB_create_context;
19212   Read_WGL_AMD_gpu_association;
19213   Read_WGL_EXT_display_color_table;
19214   Read_WGL_EXT_extensions_string;
19215   Read_WGL_EXT_make_current_read;
19216   Read_WGL_EXT_pbuffer;
19217   Read_WGL_EXT_pixel_format;
19218   Read_WGL_EXT_swap_control;
19219   Read_WGL_I3D_digital_video_control;
19220   Read_WGL_I3D_gamma;
19221   Read_WGL_I3D_genlock;
19222   Read_WGL_I3D_image_buffer;
19223   Read_WGL_I3D_swap_frame_lock;
19224   Read_WGL_I3D_swap_frame_usage;
19225   Read_WGL_NV_vertex_array_range;
19226   Read_WGL_NV_present_video;
19227   Read_WGL_NV_video_output;
19228   Read_WGL_NV_swap_group;
19229   Read_WGL_NV_gpu_affinity;
19230   Read_WGL_NV_video_capture;
19231   Read_WGL_NV_copy_image;
19232   Read_WGL_NV_DX_interop;
19233   Read_WGL_OML_sync_control;
19234   Read_WGL_3DL_stereo_control;
19235
19236   Read_WIN_draw_range_elements;
19237   Read_WIN_swap_hint;
19238 {$ENDIF}
19239
19240   ExtensionsRead := True;
19241 end;
19242
19243 // =============================================================================
19244 //  ReadCoreVersion
19245 // =============================================================================
19246
19247 procedure ReadCoreVersion;
19248 var
19249   AnsiBuffer: AnsiString;
19250   Buffer: String;
19251   MajorVersion, MinorVersion: Integer;
19252
19253   procedure TrimAndSplitVersionString(Buffer: String; var Max, Min: Integer);
19254     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19255     // at least however "Major.Minor".
19256   var
19257     Separator: Integer;
19258   begin
19259     try
19260       // There must be at least one dot to separate major and minor version number.
19261       Separator := Pos('.', Buffer);
19262       // At least one number must be before and one after the dot.
19263       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19264       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19265       begin
19266         // OK, it's a valid version string. Now remove unnecessary parts.
19267         Dec(Separator);
19268         // Find last non-numeric character before version number.
19269         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19270           Dec(Separator);
19271         // Delete leading characters which do not belong to the version string.
19272         Delete(Buffer, 1, Separator);
19273         Separator := Pos('.', Buffer) + 1;
19274         // Find first non-numeric character after version number
19275         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19276           Inc(Separator);
19277         // delete trailing characters not belonging to the version string
19278         Delete(Buffer, Separator, 255);
19279         // Now translate the numbers.
19280         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19281         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19282         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19283       end
19284       else
19285         Abort;
19286     except
19287       Min := 0;
19288       Max := 0;
19289     end;
19290   end;
19291
19292
19293 begin
19294   // determine version of implementation
19295   // GL
19296   if not Assigned(@glGetString) then
19297     glGetString := dglGetProcAddress('glGetString');
19298
19299   AnsiBuffer := glGetString(GL_VERSION);
19300   Buffer := String(AnsiBuffer);
19301
19302   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19303
19304   GL_VERSION_1_0 := True;
19305   GL_VERSION_1_1 := False;
19306   GL_VERSION_1_2 := False;
19307   GL_VERSION_1_3 := False;
19308   GL_VERSION_1_4 := False;
19309   GL_VERSION_1_5 := False;
19310   GL_VERSION_2_0 := False;
19311   GL_VERSION_2_1 := False;
19312   GL_VERSION_3_0 := False;
19313   GL_VERSION_3_1 := False;
19314   GL_VERSION_3_2 := False;
19315   GL_VERSION_3_3 := False;
19316   GL_VERSION_4_0 := False;
19317   GL_VERSION_4_1 := False;
19318   GL_VERSION_4_2 := False;
19319   GL_VERSION_4_3 := False;
19320   GL_VERSION_4_4 := False;
19321   GL_VERSION_4_5 := False;
19322
19323   if MajorVersion = 1 then
19324   begin
19325     if MinorVersion >= 1 then
19326       GL_VERSION_1_1 := True;
19327     if MinorVersion >= 2 then
19328       GL_VERSION_1_2 := True;
19329     if MinorVersion >= 3 then
19330       GL_VERSION_1_3 := True;
19331     if MinorVersion >= 4 then
19332       GL_VERSION_1_4 := True;
19333     if MinorVersion >= 5 then
19334       GL_VERSION_1_5 := True;
19335   end;
19336
19337   if MajorVersion >= 2 then
19338   begin
19339     GL_VERSION_1_1 := True;
19340     GL_VERSION_1_2 := True;
19341     GL_VERSION_1_3 := True;
19342     GL_VERSION_1_4 := True;
19343     GL_VERSION_1_5 := True;
19344     GL_VERSION_2_0 := True;
19345
19346     if MinorVersion >= 1 then
19347       GL_VERSION_2_1 := True;
19348   end;
19349
19350   if MajorVersion >= 3 then
19351   begin
19352     GL_VERSION_2_1 := True;
19353     GL_VERSION_3_0 := True;
19354
19355     if MinorVersion >= 1 then
19356       GL_VERSION_3_1 := True;
19357     if MinorVersion >= 2 then
19358       GL_VERSION_3_2 := True;
19359     if MinorVersion >= 3 then
19360       GL_VERSION_3_3 := True;
19361   end;
19362
19363   if MajorVersion >= 4 then
19364   begin
19365     GL_VERSION_3_1 := True;
19366     GL_VERSION_3_2 := True;
19367     GL_VERSION_3_3 := True;
19368     GL_VERSION_4_0 := True;
19369
19370     if MinorVersion >= 1 then
19371       GL_VERSION_4_1 := True;
19372     if MinorVersion >= 2 then
19373       GL_VERSION_4_2 := True;
19374     if MinorVersion >= 3 then
19375       GL_VERSION_4_3 := True;
19376     if MinorVersion >= 4 then
19377       GL_VERSION_4_4 := True;
19378     if MinorVersion >= 4 then
19379       GL_VERSION_4_5:= True;
19380   end;
19381
19382   // GLU
19383   GLU_VERSION_1_1 := False;
19384   GLU_VERSION_1_2 := False;
19385   GLU_VERSION_1_3 := False;
19386
19387   if Assigned(gluGetString) then begin
19388     AnsiBuffer := gluGetString(GLU_VERSION);
19389     Buffer := String(AnsiBuffer);
19390
19391     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19392
19393     GLU_VERSION_1_1 := True;
19394
19395     if MinorVersion >= 2 then
19396       GLU_VERSION_1_2 := True;
19397
19398     if MinorVersion >= 3 then
19399       GLU_VERSION_1_3 := True;
19400   end;
19401 end;
19402
19403
19404 // =============================================================================
19405 //  ReadImplementationProperties
19406 // =============================================================================
19407
19408 procedure ReadImplementationProperties;
19409 var
19410   Buffer: Ansistring;
19411 begin
19412   ReadCoreVersion;
19413
19414   // Check all extensions
19415   Buffer := Int_GetExtensionString;
19416
19417   // 3DFX
19418   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19419   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19420   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19421
19422   // APPLE
19423   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19424   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19425   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19426   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19427   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19428   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19429   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19430   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19431   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19432   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19433   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19434   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19435   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19436   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19437   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19438
19439   // ARB
19440   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19441   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19442   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19443   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19444   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19445   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19446   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19447   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19448   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19449   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19450   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19451   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19452   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19453   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19454   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19455   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19456   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19457   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19458   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19459   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19460   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19461   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19462   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19463   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19464   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19465   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19466   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19467   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19468   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19469   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19470   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19471   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19472   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19473   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19474   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19475   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19476   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19477   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19478   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19479   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19480   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19481   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19482   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19483   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19484   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19485   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19486   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19487   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19488   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19489   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19490   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19491   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19492   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19493   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19494   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19495   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19496   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19497   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19498   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19499   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19500   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19501   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19502   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19503   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19504   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19505   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19506   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19507   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19508   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19509   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19510   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19511   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19512   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19513   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19514   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19515   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19516   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19517   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19518   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19519   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19520   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19521   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19522   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19523   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19524   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19525   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19526   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19527   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19528   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19529   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19530   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19531
19532   // GL 4.2
19533   GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19534   GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19535   GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19536   GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19537   GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19538   GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19539   GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19540   GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19541   GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19542   GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19543   GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19544
19545   // GL 4.3
19546   GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19547   GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19548   GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19549   GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19550   GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19551   GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19552   GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19553   GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19554   GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19555   GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19556   GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19557   GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19558   GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19559   GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19560   GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19561   GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19562   GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19563   GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19564   GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19565   GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19566   GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19567   GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19568   GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19569   GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19570   GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19571   GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19572
19573   // GL 4.4
19574   GL_ARB_buffer_storage := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19575   GL_ARB_clear_texture := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19576   GL_ARB_enhanced_layouts := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19577   GL_ARB_multi_bind := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19578   GL_ARB_query_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19579   GL_ARB_texture_mirror_clamp_to_edge:= Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19580   GL_ARB_texture_stencil8 := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19581   GL_ARB_vertex_type_10f_11f_11f_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19582   GL_ARB_bindless_texture := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
19583   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19584
19585   // GL 4.5
19586   GL_ARB_clip_control := Int_CheckExtension(Buffer, 'GL_ARB_clip_control');
19587   GL_ARB_cull_distance := Int_CheckExtension(Buffer, 'GL_ARB_cull_distance');
19588   GL_ARB_ES3_1_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_1_compatibility');
19589   GL_ARB_conditional_render_inverted := Int_CheckExtension(Buffer, 'GL_ARB_conditional_render_inverted');
19590   GL_KHR_context_flush_control := Int_CheckExtension(Buffer, 'GL_KHR_context_flush_control');
19591   GL_ARB_derivative_control := Int_CheckExtension(Buffer, 'GL_ARB_derivative_control');
19592   GL_ARB_direct_state_access := Int_CheckExtension(Buffer, 'GL_ARB_direct_state_access');
19593   GL_ARB_get_texture_sub_image := Int_CheckExtension(Buffer, 'GL_ARB_get_texture_sub_image');
19594   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19595   GL_ARB_shader_texture_image_samples := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_image_samples');
19596   GL_ARB_texture_barrier := Int_CheckExtension(Buffer, 'GL_ARB_texture_barrier');
19597
19598   // ATI/AMD
19599   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19600   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19601   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19602   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19603   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19604   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19605   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19606   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19607   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19608   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19609   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19610   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19611   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19612   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19613   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19614   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19615   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19616   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19617   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19618   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19619   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19620   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19621   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19622   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19623   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19624   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19625   // 4.3
19626   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19627   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19628   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19629   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19630   GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19631
19632   // EXT
19633   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19634   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19635   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19636   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19637   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19638   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19639   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19640   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19641   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19642   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19643   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19644   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19645   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19646   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19647   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19648   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19649   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19650   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19651   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19652   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19653   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19654   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19655   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19656   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19657   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19658   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19659   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19660   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19661   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19662   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19663   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19664   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19665   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19666   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19667   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19668   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19669   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19670   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19671   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19672   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19673   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19674   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19675   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19676   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19677   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19678   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19679   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19680   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19681   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19682   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19683   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19684   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19685   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19686   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19687   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19688   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19689   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19690   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19691   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19692   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19693   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19694   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19695   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19696   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19697   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19698   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19699   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19700   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19701   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19702   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19703   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19704   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19705   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19706   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19707   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19708   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19709   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19710   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19711   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19712   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19713   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19714   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19715   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19716   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19717   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19718   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19719   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19720   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19721   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19722   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19723   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19724   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19725   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19726   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19727
19728   // HP
19729   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19730   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19731   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19732   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19733
19734   // IBM
19735   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19736   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19737   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19738   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19739   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19740
19741   // INGR
19742   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19743   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19744   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19745   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19746
19747   // INTEL
19748   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19749   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19750
19751   // MESA
19752   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19753   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19754
19755   // Khronos
19756   // 4.5
19757   GL_KHR_blend_equation_advanced := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced');
19758   GL_KHR_blend_equation_advanced_coherent := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
19759   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19760   GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior');
19761
19762   // NVIDIA
19763   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19764   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19765   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19766   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19767   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19768   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19769   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19770   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19771   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19772   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19773   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19774   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19775   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19776   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19777   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19778   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19779   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19780   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19781   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19782   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19783   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19784   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19785   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19786   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19787   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19788   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19789   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19790   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19791   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19792   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19793   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19794   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19795   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19796   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19797   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19798   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19799   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19800   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19801   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19802   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19803   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19804   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19805   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19806   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19807   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19808   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19809   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19810   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19811   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19812   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19813   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19814   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19815   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19816   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19817   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19818   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19819   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19820   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19821   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19822   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19823   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19824   // 4.3
19825   GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19826   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19827   GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19828
19829   // OML
19830   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19831   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19832   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19833
19834   // PGI
19835   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19836   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19837
19838   // REND
19839   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19840
19841   // S3
19842   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19843
19844   // SGIS
19845   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19846   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19847   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19848   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19849   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19850   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19851   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19852   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19853   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19854   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19855   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19856   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19857   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19858   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19859   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19860
19861   // SGIX
19862   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19863   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19864   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19865   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19866   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19867   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19868   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19869   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19870   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19871   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19872   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19873   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19874   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19875   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19876   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19877   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19878   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19879   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19880   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19881   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19882   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19883   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19884   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19885   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19886   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19887   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19888   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19889   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19890   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19891   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19892   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19893   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19894   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19895   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19896   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19897   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19898   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19899   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19900   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19901   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19902   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19903   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19904
19905   // SGI
19906   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19907   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19908   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19909   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19910
19911   // SUN
19912   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19913   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19914   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19915   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19916   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19917   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19918   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19919
19920   // WIN
19921   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19922   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19923
19924   {$IFDEF DGL_WIN}
19925   // WGL
19926   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19927   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19928   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19929   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19930   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19931   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19932   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19933   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19934   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19935   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19936   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19937   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19938   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19939   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19940   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19941   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19942   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19943   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19944   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19945   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19946   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19947   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19948   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19949   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19950   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19951   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19952   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19953   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19954   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19955   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19956   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19957   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19958   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19959   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19960   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19961   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19962   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19963   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19964   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19965   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19966   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19967   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19968   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
19969   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
19970   WGL_ARB_context_flush_control := Int_CheckExtension(Buffer, 'WGL_ARB_context_flush_control');
19971   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
19972   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
19973   {$ENDIF}
19974
19975   {$IFDEF DGL_LINUX}
19976   // GLX
19977   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
19978   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
19979   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
19980   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
19981   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
19982   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
19983   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
19984   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
19985   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
19986   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
19987   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
19988   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
19989   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
19990   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
19991   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
19992   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
19993   GLX_ARB_context_flush_control := Int_CheckExtension(Buffer, 'GLX_ARB_context_flush_control');
19994   {$ENDIF}
19995
19996   ImplementationRead := True;
19997 end;
19998
19999 {$IFDEF DGL_WIN}
20000 // =============================================================================
20001 // RaiseLastOSError
20002 // =============================================================================
20003 // Needed for compatibility with older Delphiversions
20004 // =============================================================================
20005
20006 procedure RaiseLastOSError;
20007 begin
20008 {$IFDEF FPC}
20009   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
20010 {$ELSE}
20011   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
20012     SysUtils.RaiseLastWin32Error;
20013   {$ELSE}
20014     SysUtils.RaiseLastOSError;
20015   {$ENDIF}
20016 {$ENDIF}
20017 end;
20018
20019 // =============================================================================
20020 // CreateRenderingContext
20021 // =============================================================================
20022
20023 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20024 const
20025   OBJ_MEMDC = 10;
20026   OBJ_ENHMETADC = 12;
20027   OBJ_METADC = 4;
20028   PFD_DOUBLEBUFFER = $00000001;
20029   PFD_STEREO = $00000002;
20030   PFD_DRAW_TO_WINDOW = $00000004;
20031   PFD_DRAW_TO_BITMAP = $00000008;
20032   PFD_SUPPORT_GDI = $00000010;
20033   PFD_SUPPORT_OPENGL = $00000020;
20034   PFD_TYPE_RGBA = 0;
20035   PFD_MAIN_PLANE = 0;
20036   PFD_OVERLAY_PLANE = 1;
20037   PFD_UNDERLAY_PLANE = LongWord(-1);
20038   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20039 var
20040   PFDescriptor: TPixelFormatDescriptor;
20041   PixelFormat: Integer;
20042   AType: DWORD;
20043 begin
20044   if GL_LibHandle = nil then
20045     InitOpenGL;
20046
20047   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20048
20049   with PFDescriptor do
20050   begin
20051     nSize := SizeOf(PFDescriptor);
20052     nVersion := 1;
20053     dwFlags := PFD_SUPPORT_OPENGL;
20054
20055     AType := GetObjectType(DC);
20056
20057     if AType = 0 then
20058       RaiseLastOSError;
20059
20060     if AType in MemoryDCs then
20061       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20062     else
20063       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20064
20065     if opDoubleBuffered in Options then
20066       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20067
20068     if opGDI in Options then
20069       dwFlags := dwFlags or PFD_SUPPORT_GDI;
20070
20071     if opStereo in Options then
20072       dwFlags := dwFlags or PFD_STEREO;
20073
20074     iPixelType := PFD_TYPE_RGBA;
20075     cColorBits := ColorBits;
20076     cDepthBits := zBits;
20077     cStencilBits := StencilBits;
20078     cAccumBits := AccumBits;
20079     cAuxBuffers := AuxBuffers;
20080
20081     if Layer = 0 then
20082       iLayerType := PFD_MAIN_PLANE
20083     else
20084     if Layer > 0 then
20085       iLayerType := PFD_OVERLAY_PLANE
20086     else
20087       iLayerType := Byte(PFD_UNDERLAY_PLANE);
20088   end;
20089
20090   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20091
20092   if PixelFormat = 0 then
20093     RaiseLastOSError;
20094
20095   if GetPixelFormat(DC) <> PixelFormat then
20096     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20097       RaiseLastOSError;
20098
20099   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20100
20101   Result := wglCreateContext(DC);
20102
20103   if Result = 0 then
20104     RaiseLastOSError
20105   else
20106     LastPixelFormat := 0;
20107 end;
20108
20109 // =============================================================================
20110 // CreateRenderingContextVersion
20111 // =============================================================================
20112 //  Creates a context for the more recent OpenGL versions (3.0) and up
20113 //  For that we first need to get a normal GL context for getting the
20114 //  function pointer to wglCreateContextAttribsARB first
20115 // =============================================================================
20116 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20117 const
20118   OBJ_MEMDC          = 10;
20119   OBJ_ENHMETADC      = 12;
20120   OBJ_METADC         = 4;
20121   PFD_DOUBLEBUFFER   = $00000001;
20122   PFD_STEREO         = $00000002;
20123   PFD_DRAW_TO_WINDOW = $00000004;
20124   PFD_DRAW_TO_BITMAP = $00000008;
20125   PFD_SUPPORT_GDI    = $00000010;
20126   PFD_SUPPORT_OPENGL = $00000020;
20127   PFD_TYPE_RGBA      = 0;
20128   PFD_MAIN_PLANE     = 0;
20129   PFD_OVERLAY_PLANE  = 1;
20130   PFD_UNDERLAY_PLANE = LongWord(-1);
20131   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20132 var
20133   PFDescriptor : TPixelFormatDescriptor;
20134   PixelFormat  : Integer;
20135   AType        : DWORD;
20136   LegacyRC     : HGLRC;
20137   Attribs      : array of Integer;
20138 begin
20139   if GL_LibHandle = nil then
20140         InitOpenGL;
20141
20142   if not Assigned(GL_LibHandle) then
20143         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
20144
20145   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20146
20147   with PFDescriptor do
20148     begin
20149       nSize    := SizeOf(PFDescriptor);
20150       nVersion := 1;
20151       dwFlags  := PFD_SUPPORT_OPENGL;
20152       AType    := GetObjectType(DC);
20153
20154       if AType = 0 then
20155         RaiseLastOSError;
20156
20157       if AType in MemoryDCs then
20158         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20159       else
20160         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20161
20162       if opDoubleBuffered in Options then
20163         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20164
20165       if opGDI in Options then
20166         dwFlags := dwFlags or PFD_SUPPORT_GDI;
20167
20168       if opStereo in Options then
20169         dwFlags := dwFlags or PFD_STEREO;
20170
20171       iPixelType   := PFD_TYPE_RGBA;
20172       cColorBits   := ColorBits;
20173       cDepthBits   := zBits;
20174       cStencilBits := StencilBits;
20175       cAccumBits   := AccumBits;
20176       cAuxBuffers  := AuxBuffers;
20177
20178       if Layer = 0 then
20179         iLayerType := PFD_MAIN_PLANE
20180       else
20181         if Layer > 0 then
20182           iLayerType := PFD_OVERLAY_PLANE
20183         else
20184           iLayerType := Byte(PFD_UNDERLAY_PLANE);
20185     end;
20186
20187   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20188
20189   if PixelFormat = 0 then
20190         RaiseLastOSError;
20191
20192   if GetPixelFormat(DC) <> PixelFormat then
20193         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20194                 RaiseLastOSError;
20195
20196   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20197
20198   // Create legacy render context first for we need function pointers to
20199   // create new OpenGL render contexts
20200   LegacyRC := wglCreateContext(DC);
20201   wglMakeCurrent(DC, LegacyRC);
20202
20203   // Set attributes to describe our requested context
20204   SetLength(Attribs, 5);
20205   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
20206   Attribs[1] := MajorVersion;
20207   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
20208   Attribs[3] := MinorVersion;
20209
20210   // Add context flag for forward compatible context
20211   //  Forward compatible means no more support for legacy functions like
20212   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
20213   if ForwardCompatible then
20214     begin
20215       SetLength(Attribs, Length(Attribs)+2);
20216       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
20217       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
20218     end;
20219
20220   // Attribute flags must be finalized with a zero
20221   Attribs[High(Attribs)] := 0;
20222
20223   // Get function pointer for new context creation function
20224   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20225
20226   if not Assigned(wglCreateContextAttribsARB) then
20227     begin
20228       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20229       wglDeleteContext(LegacyRC);
20230       exit;
20231     end;
20232
20233   // Create context
20234   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20235
20236   if Result = 0 then
20237     begin
20238       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20239       wglDeleteContext(LegacyRC);
20240       exit;
20241     end;
20242
20243   wglDeleteContext(LegacyRC);
20244
20245   if Result = 0 then
20246         RaiseLastOSError
20247   else
20248         LastPixelFormat := 0;
20249 end;
20250
20251 // =============================================================================
20252 // DestroyRenderingContext
20253 // =============================================================================
20254
20255 procedure DestroyRenderingContext(RC: HGLRC);
20256 begin
20257   wglDeleteContext(RC);
20258 end;
20259
20260
20261 // =============================================================================
20262 // ActivateRenderingContext
20263 // =============================================================================
20264
20265 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20266 begin
20267   Assert((DC <> 0), 'DC must not be 0');
20268   Assert((RC <> 0), 'RC must not be 0');
20269
20270   wglMakeCurrent(DC, RC);
20271
20272   {$ifdef DGL_TINY_HEADER}
20273   ReadCoreVersion;
20274   {$else}
20275   ReadImplementationProperties;
20276
20277   if (loadext) then
20278     ReadExtensions;
20279   {$endif}
20280 end;
20281
20282 // =============================================================================
20283 // DeactivateRenderingContext
20284 // =============================================================================
20285
20286 procedure DeactivateRenderingContext;
20287 begin
20288   wglMakeCurrent(0, 0);
20289 end;
20290 {$ENDIF}
20291
20292
20293 initialization
20294
20295 {$IFDEF CPU386}
20296   Set8087CW($133F);
20297 {$ENDIF}
20298
20299 finalization
20300
20301 end.
20302