Fixed length parameter types for glGetShaderInfoLog and glGetProgramInfoLog
[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_create_context
7216   WGL_CONTEXT_DEBUG_BIT_ARB = $00000001;
7217   WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7218   WGL_CONTEXT_MAJOR_VERSION_ARB = $2091;
7219   WGL_CONTEXT_MINOR_VERSION_ARB = $2092;
7220   WGL_CONTEXT_LAYER_PLANE_ARB = $2093;
7221   WGL_CONTEXT_FLAGS_ARB = $2094;
7222   ERROR_INVALID_VERSION_ARB = $2095;
7223
7224   // WGL_ARB_create_context_profile
7225   WGL_CONTEXT_PROFILE_MASK_ARB = $9126;
7226   WGL_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7227   WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7228   ERROR_INVALID_PROFILE_ARB = $2096;
7229
7230   // WGL_ARB_framebuffer_sRGB
7231   WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20A9;
7232
7233   // WGL_ARB_create_context_robustness
7234   WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7235   WGL_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7236   WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7237   WGL_NO_RESET_NOTIFICATION_ARB = $8261;
7238
7239   // WGL_ATI_pixel_format_float
7240   WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
7241   GL_TYPE_RGBA_FLOAT_ATI = $8820;
7242   GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
7243
7244   // WGL_AMD_gpu_association
7245   WGL_GPU_VENDOR_AMD = $1F00;
7246   WGL_GPU_RENDERER_STRING_AMD = $1F01;
7247   WGL_GPU_OPENGL_VERSION_STRING_AMD = $1F02;
7248   WGL_GPU_FASTEST_TARGET_GPUS_AMD = $21A2;
7249   WGL_GPU_RAM_AMD = $21A3;
7250   WGL_GPU_CLOCK_AMD = $21A4;
7251   WGL_GPU_NUM_PIPES_AMD = $21A5;
7252   WGL_GPU_NUM_SIMD_AMD = $21A6;
7253   WGL_GPU_NUM_RB_AMD = $21A7;
7254   WGL_GPU_NUM_SPI_AMD = $21A8;
7255
7256   // WGL_EXT_depth_float
7257   WGL_DEPTH_FLOAT_EXT = $2040;
7258
7259   // WGL_EXT_make_current_read
7260   ERROR_INVALID_PIXEL_TYPE_EXT = $2043;
7261
7262   // WGL_EXT_multisample
7263   WGL_SAMPLE_BUFFERS_EXT = $2041;
7264   WGL_SAMPLES_EXT = $2042;
7265
7266   // WGL_EXT_pbuffer
7267   WGL_DRAW_TO_PBUFFER_EXT = $202D;
7268   WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
7269   WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
7270   WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
7271   WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
7272   WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
7273   WGL_PBUFFER_LARGEST_EXT = $2033;
7274   WGL_PBUFFER_WIDTH_EXT = $2034;
7275   WGL_PBUFFER_HEIGHT_EXT = $2035;
7276
7277   // WGL_EXT_pixel_format
7278   WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
7279   WGL_DRAW_TO_WINDOW_EXT = $2001;
7280   WGL_DRAW_TO_BITMAP_EXT = $2002;
7281   WGL_ACCELERATION_EXT = $2003;
7282   WGL_NEED_PALETTE_EXT = $2004;
7283   WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
7284   WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
7285   WGL_SWAP_METHOD_EXT = $2007;
7286   WGL_NUMBER_OVERLAYS_EXT = $2008;
7287   WGL_NUMBER_UNDERLAYS_EXT = $2009;
7288   WGL_TRANSPARENT_EXT = $200A;
7289   WGL_TRANSPARENT_VALUE_EXT = $200B;
7290   WGL_SHARE_DEPTH_EXT = $200C;
7291   WGL_SHARE_STENCIL_EXT = $200D;
7292   WGL_SHARE_ACCUM_EXT = $200E;
7293   WGL_SUPPORT_GDI_EXT = $200F;
7294   WGL_SUPPORT_OPENGL_EXT = $2010;
7295   WGL_DOUBLE_BUFFER_EXT = $2011;
7296   WGL_STEREO_EXT = $2012;
7297   WGL_PIXEL_TYPE_EXT = $2013;
7298   WGL_COLOR_BITS_EXT = $2014;
7299   WGL_RED_BITS_EXT = $2015;
7300   WGL_RED_SHIFT_EXT = $2016;
7301   WGL_GREEN_BITS_EXT = $2017;
7302   WGL_GREEN_SHIFT_EXT = $2018;
7303   WGL_BLUE_BITS_EXT = $2019;
7304   WGL_BLUE_SHIFT_EXT = $201A;
7305   WGL_ALPHA_BITS_EXT = $201B;
7306   WGL_ALPHA_SHIFT_EXT = $201C;
7307   WGL_ACCUM_BITS_EXT = $201D;
7308   WGL_ACCUM_RED_BITS_EXT = $201E;
7309   WGL_ACCUM_GREEN_BITS_EXT = $201F;
7310   WGL_ACCUM_BLUE_BITS_EXT = $2020;
7311   WGL_ACCUM_ALPHA_BITS_EXT = $2021;
7312   WGL_DEPTH_BITS_EXT = $2022;
7313   WGL_STENCIL_BITS_EXT = $2023;
7314   WGL_AUX_BUFFERS_EXT = $2024;
7315   WGL_NO_ACCELERATION_EXT = $2025;
7316   WGL_GENERIC_ACCELERATION_EXT = $2026;
7317   WGL_FULL_ACCELERATION_EXT = $2027;
7318   WGL_SWAP_EXCHANGE_EXT = $2028;
7319   WGL_SWAP_COPY_EXT = $2029;
7320   WGL_SWAP_UNDEFINED_EXT = $202A;
7321   WGL_TYPE_RGBA_EXT = $202B;
7322   WGL_TYPE_COLORINDEX_EXT = $202C;
7323
7324   // WGL_I3D_digital_video_control
7325   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
7326   WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
7327   WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
7328   WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
7329
7330   // WGL_I3D_gamma
7331   WGL_GAMMA_TABLE_SIZE_I3D = $204E;
7332   WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
7333
7334   // WGL_I3D_genlock
7335   WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
7336   WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D = $2045;
7337   WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D = $2046;
7338   WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D = $2047;
7339   WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
7340   WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
7341   WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
7342   WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
7343   WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
7344
7345   // WGL_I3D_image_buffer
7346   WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $00000001;
7347   WGL_IMAGE_BUFFER_LOCK_I3D = $00000002;
7348
7349   // WGL_NV_float_buffer
7350   WGL_FLOAT_COMPONENTS_NV = $20B0;
7351   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
7352   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
7353   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
7354   WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
7355   WGL_TEXTURE_FLOAT_R_NV = $20B5;
7356   WGL_TEXTURE_FLOAT_RG_NV = $20B6;
7357   WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
7358   WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
7359
7360   // WGL_NV_render_depth_texture
7361   WGL_BIND_TO_TEXTURE_DEPTH_NV = $20A3;
7362   WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = $20A4;
7363   WGL_DEPTH_TEXTURE_FORMAT_NV = $20A5;
7364   WGL_TEXTURE_DEPTH_COMPONENT_NV = $20A6;
7365   WGL_DEPTH_COMPONENT_NV = $20A7;
7366
7367   // WGL_NV_render_texture_rectangle
7368   WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
7369   WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
7370   WGL_TEXTURE_RECTANGLE_NV = $20A2;
7371
7372   // WGL_NV_present_video
7373   WGL_NUM_VIDEO_SLOTS_NV = $20F0;
7374
7375   // WGL_NV_video_output
7376   WGL_BIND_TO_VIDEO_RGB_NV = $20C0;
7377   WGL_BIND_TO_VIDEO_RGBA_NV = $20C1;
7378   WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = $20C2;
7379   WGL_VIDEO_OUT_COLOR_NV = $20C3;
7380   WGL_VIDEO_OUT_ALPHA_NV = $20C4;
7381   WGL_VIDEO_OUT_DEPTH_NV = $20C5;
7382   WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = $20C6;
7383   WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = $20C7;
7384   WGL_VIDEO_OUT_FRAME = $20C8;
7385   WGL_VIDEO_OUT_FIELD_1 = $20C9;
7386   WGL_VIDEO_OUT_FIELD_2 = $20CA;
7387   WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = $20CB;
7388   WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = $20CC;
7389
7390   // WGL_NV_gpu_affinity
7391   WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV = $20D0;
7392   WGL_ERROR_MISSING_AFFINITY_MASK_NV = $20D1;
7393
7394   // WGL_NV_video_capture
7395   WGL_UNIQUE_ID_NV = $20CE;
7396   WGL_NUM_VIDEO_CAPTURE_SLOTS_NV = $20CF;
7397
7398   // WGL_NV_multisample_coverage
7399   WGL_COVERAGE_SAMPLES_NV = $2042;
7400   WGL_COLOR_SAMPLES_NV = $20B9;
7401
7402   // WGL_EXT_create_context_es2_profile
7403   WGL_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7404
7405   // WGL_NV_DX_interop
7406   WGL_ACCESS_READ_ONLY_NV        = $00000000;
7407   WGL_ACCESS_READ_WRITE_NV       = $00000001;
7408   WGL_ACCESS_WRITE_DISCARD_NV    = $00000002;
7409
7410   // WIN_draw_range_elements
7411   GL_MAX_ELEMENTS_VERTICES_WIN = $80E8;
7412   GL_MAX_ELEMENTS_INDICES_WIN = $80E9;
7413
7414   // GLX 1.1 and later:
7415   GLX_VENDOR = 1;
7416   GLX_VERSION = 2;
7417   GLX_EXTENSIONS = 3;
7418
7419   GLX_USE_GL = 1;
7420   GLX_BUFFER_SIZE = 2;
7421   GLX_LEVEL = 3;
7422   GLX_RGBA = 4;
7423   GLX_DOUBLEBUFFER = 5;
7424   GLX_STEREO = 6;
7425   GLX_AUX_BUFFERS = 7;
7426   GLX_RED_SIZE = 8;
7427   GLX_GREEN_SIZE = 9;
7428   GLX_BLUE_SIZE = 10;
7429   GLX_ALPHA_SIZE = 11;
7430   GLX_DEPTH_SIZE = 12;
7431   GLX_STENCIL_SIZE = 13;
7432   GLX_ACCUM_RED_SIZE = 14;
7433   GLX_ACCUM_GREEN_SIZE = 15;
7434   GLX_ACCUM_BLUE_SIZE = 16;
7435   GLX_ACCUM_ALPHA_SIZE = 17;
7436
7437   // GLX_VERSION_1_3
7438   GLX_WINDOW_BIT = $00000001;
7439   GLX_PIXMAP_BIT = $00000002;
7440   GLX_PBUFFER_BIT = $00000004;
7441   GLX_RGBA_BIT = $00000001;
7442   GLX_COLOR_INDEX_BIT = $00000002;
7443   GLX_PBUFFER_CLOBBER_MASK = $08000000;
7444   GLX_FRONT_LEFT_BUFFER_BIT = $00000001;
7445   GLX_FRONT_RIGHT_BUFFER_BIT = $00000002;
7446   GLX_BACK_LEFT_BUFFER_BIT = $00000004;
7447   GLX_BACK_RIGHT_BUFFER_BIT = $00000008;
7448   GLX_AUX_BUFFERS_BIT = $00000010;
7449   GLX_DEPTH_BUFFER_BIT = $00000020;
7450   GLX_STENCIL_BUFFER_BIT = $00000040;
7451   GLX_ACCUM_BUFFER_BIT = $00000080;
7452   GLX_CONFIG_CAVEAT = $20;
7453   GLX_X_VISUAL_TYPE = $22;
7454   GLX_TRANSPARENT_TYPE = $23;
7455   GLX_TRANSPARENT_INDEX_VALUE = $24;
7456   GLX_TRANSPARENT_RED_VALUE = $25;
7457   GLX_TRANSPARENT_GREEN_VALUE = $26;
7458   GLX_TRANSPARENT_BLUE_VALUE = $27;
7459   GLX_TRANSPARENT_ALPHA_VALUE = $28;
7460   GLX_DONT_CARE = $FFFFFFFF;
7461   GLX_NONE = $8000;
7462   GLX_SLOW_CONFIG = $8001;
7463   GLX_TRUE_COLOR = $8002;
7464   GLX_DIRECT_COLOR = $8003;
7465   GLX_PSEUDO_COLOR = $8004;
7466   GLX_STATIC_COLOR = $8005;
7467   GLX_GRAY_SCALE = $8006;
7468   GLX_STATIC_GRAY = $8007;
7469   GLX_TRANSPARENT_RGB = $8008;
7470   GLX_TRANSPARENT_INDEX = $8009;
7471   GLX_VISUAL_ID = $800B;
7472   GLX_SCREEN = $800C;
7473   GLX_NON_CONFORMANT_CONFIG = $800D;
7474   GLX_DRAWABLE_TYPE = $8010;
7475   GLX_RENDER_TYPE = $8011;
7476   GLX_X_RENDERABLE = $8012;
7477   GLX_FBCONFIG_ID = $8013;
7478   GLX_RGBA_TYPE = $8014;
7479   GLX_COLOR_INDEX_TYPE = $8015;
7480   GLX_MAX_PBUFFER_WIDTH = $8016;
7481   GLX_MAX_PBUFFER_HEIGHT = $8017;
7482   GLX_MAX_PBUFFER_PIXELS = $8018;
7483   GLX_PRESERVED_CONTENTS = $801B;
7484   GLX_LARGEST_PBUFFER = $801C;
7485   GLX_WIDTH = $801D;
7486   GLX_HEIGHT = $801E;
7487   GLX_EVENT_MASK = $801F;
7488   GLX_DAMAGED = $8020;
7489   GLX_SAVED = $8021;
7490   GLX_WINDOW = $8022;
7491   GLX_PBUFFER = $8023;
7492   GLX_PBUFFER_HEIGHT = $8040;
7493   GLX_PBUFFER_WIDTH = $8041;
7494
7495   // GLX_VERSION_1_4
7496   GLX_SAMPLE_BUFFERS = 100000;
7497   GLX_SAMPLES = 100001;
7498
7499   // GLX_ARB_multisample
7500   GLX_SAMPLE_BUFFERS_ARB = 100000;
7501   GLX_SAMPLES_ARB = 100001;
7502
7503   // GLX_ARB_fbconfig_float
7504   GLX_RGBA_FLOAT_TYPE_ARB = $20B9;
7505   GLX_RGBA_FLOAT_BIT_ARB = $00000004;
7506
7507   // GLX_ARB_context_flush_control
7508   GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = $2097;
7509   GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0;
7510   GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = $2098;
7511
7512   // GLX_ARB_create_context
7513   GLX_CONTEXT_DEBUG_BIT_ARB = $00000001;
7514   GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = $00000002;
7515   GLX_CONTEXT_MAJOR_VERSION_ARB = $2091;
7516   GLX_CONTEXT_MINOR_VERSION_ARB = $2092;
7517   GLX_CONTEXT_FLAGS_ARB = $2094;
7518
7519   // GLX_ARB_create_context_profile
7520   GLX_CONTEXT_CORE_PROFILE_BIT_ARB = $00000001;
7521   GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = $00000002;
7522   GLX_CONTEXT_PROFILE_MASK_ARB = $9126;
7523
7524   // GLX_ARB_vertex_buffer_object
7525   GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = $2095;
7526
7527   // GLX_ARB_framebuffer_sRGB
7528   GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = $20B2;
7529
7530   // GLX_ARB_create_context_robustness
7531   GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = $00000004;
7532   GLX_LOSE_CONTEXT_ON_RESET_ARB = $8252;
7533   GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = $8256;
7534   GLX_NO_RESET_NOTIFICATION_ARB = $8261;
7535
7536   // GLX_EXT_visual_info
7537   GLX_X_VISUAL_TYPE_EXT = $22;
7538   GLX_TRANSPARENT_TYPE_EXT = $23;
7539   GLX_TRANSPARENT_INDEX_VALUE_EXT = $24;
7540   GLX_TRANSPARENT_RED_VALUE_EXT = $25;
7541   GLX_TRANSPARENT_GREEN_VALUE_EXT = $26;
7542   GLX_TRANSPARENT_BLUE_VALUE_EXT = $27;
7543   GLX_TRANSPARENT_ALPHA_VALUE_EXT = $28;
7544   GLX_NONE_EXT = $8000;
7545   GLX_TRUE_COLOR_EXT = $8002;
7546   GLX_DIRECT_COLOR_EXT = $8003;
7547   GLX_PSEUDO_COLOR_EXT = $8004;
7548   GLX_STATIC_COLOR_EXT = $8005;
7549   GLX_GRAY_SCALE_EXT = $8006;
7550   GLX_STATIC_GRAY_EXT = $8007;
7551   GLX_TRANSPARENT_RGB_EXT = $8008;
7552   GLX_TRANSPARENT_INDEX_EXT = $8009;
7553
7554   // GLX_EXT_visual_rating
7555   GLX_VISUAL_CAVEAT_EXT = $20;
7556   GLX_SLOW_VISUAL_EXT = $8001;
7557   GLX_NON_CONFORMANT_VISUAL_EXT = $800D;
7558   (* reuse GLX_NONE_EXT *)
7559
7560   // GLX_EXT_import_context
7561   GLX_SHARE_CONTEXT_EXT = $800A;
7562   GLX_VISUAL_ID_EXT = $800B;
7563   GLX_SCREEN_EXT = $800C;
7564
7565   // GLX_EXT_fbconfig_packed_float
7566 //  GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = $20B1;
7567 //  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;
7568
7569   // GLX_EXT_framebuffer_sRGB
7570 //  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;
7571
7572   // GLX_EXT_texture_from_pixmap
7573   GLX_TEXTURE_1D_BIT_EXT = $00000001;
7574   GLX_TEXTURE_2D_BIT_EXT = $00000002;
7575   GLX_TEXTURE_RECTANGLE_BIT_EXT = $00000004;
7576   GLX_BIND_TO_TEXTURE_RGB_EXT = $20D0;
7577   GLX_BIND_TO_TEXTURE_RGBA_EXT = $20D1;
7578   GLX_BIND_TO_MIPMAP_TEXTURE_EXT = $20D2;
7579   GLX_BIND_TO_TEXTURE_TARGETS_EXT = $20D3;
7580   GLX_Y_INVERTED_EXT = $20D4;
7581   GLX_TEXTURE_FORMAT_EXT = $20D5;
7582   GLX_TEXTURE_TARGET_EXT = $20D6;
7583   GLX_MIPMAP_TEXTURE_EXT = $20D7;
7584   GLX_TEXTURE_FORMAT_NONE_EXT = $20D8;
7585   GLX_TEXTURE_FORMAT_RGB_EXT = $20D9;
7586   GLX_TEXTURE_FORMAT_RGBA_EXT = $20DA;
7587   GLX_TEXTURE_1D_EXT = $20DB;
7588   GLX_TEXTURE_2D_EXT = $20DC;
7589   GLX_TEXTURE_RECTANGLE_EXT = $20DD;
7590   GLX_FRONT_LEFT_EXT = $20DE;
7591   GLX_FRONT_RIGHT_EXT = $20DF;
7592   GLX_BACK_LEFT_EXT = $20E0;
7593   GLX_BACK_RIGHT_EXT = $20E1;
7594   GLX_FRONT_EXT = GLX_FRONT_LEFT_EXT;
7595   GLX_BACK_EXT = GLX_BACK_LEFT_EXT;
7596   GLX_AUX0_EXT = $20E2;
7597   GLX_AUX1_EXT = $20E3;
7598   GLX_AUX2_EXT = $20E4;
7599   GLX_AUX3_EXT = $20E5;
7600   GLX_AUX4_EXT = $20E6;
7601   GLX_AUX5_EXT = $20E7;
7602   GLX_AUX6_EXT = $20E8;
7603   GLX_AUX7_EXT = $20E9;
7604   GLX_AUX8_EXT = $20EA;
7605   GLX_AUX9_EXT = $20EB;
7606
7607   // GLX_EXT_swap_control
7608   GLX_SWAP_INTERVAL_EXT = $20F1;
7609   GLX_MAX_SWAP_INTERVAL_EXT = $20F2;
7610
7611   // GLX_EXT_create_context_es2_profile
7612   GLX_CONTEXT_ES2_PROFILE_BIT_EXT = $00000004;
7613
7614   // GL_EXT_Late_Swaps
7615   GLX_LATE_SWAPS_TEAR_EXT         = $20F3;
7616
7617   // GLU
7618   GLU_INVALID_ENUM = 100900;
7619   GLU_INVALID_VALUE = 100901;
7620   GLU_OUT_OF_MEMORY = 100902;
7621   GLU_INCOMPATIBLE_GL_VERSION = 100903;
7622   GLU_VERSION = 100800;
7623   GLU_EXTENSIONS = 100801;
7624   GLU_TRUE = GL_TRUE;
7625   GLU_FALSE = GL_FALSE;
7626   GLU_SMOOTH = 100000;
7627   GLU_FLAT = 100001;
7628   GLU_NONE = 100002;
7629   GLU_POINT = 100010;
7630   GLU_LINE = 100011;
7631   GLU_FILL = 100012;
7632   GLU_SILHOUETTE = 100013;
7633   GLU_OUTSIDE = 100020;
7634   GLU_INSIDE = 100021;
7635   GLU_TESS_MAX_COORD = 1.0E150;
7636   GLU_TESS_WINDING_RULE = 100140;
7637   GLU_TESS_BOUNDARY_ONLY = 100141;
7638   GLU_TESS_TOLERANCE = 100142;
7639   GLU_TESS_WINDING_ODD = 100130;
7640   GLU_TESS_WINDING_NONZERO = 100131;
7641   GLU_TESS_WINDING_POSITIVE = 100132;
7642   GLU_TESS_WINDING_NEGATIVE = 100133;
7643   GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
7644   GLU_TESS_BEGIN = 100100; // TGLUTessBeginProc
7645   GLU_TESS_VERTEX = 100101; // TGLUTessVertexProc
7646   GLU_TESS_END = 100102; // TGLUTessEndProc
7647   GLU_TESS_ERROR = 100103; // TGLUTessErrorProc
7648   GLU_TESS_EDGE_FLAG = 100104; // TGLUTessEdgeFlagProc
7649   GLU_TESS_COMBINE = 100105; // TGLUTessCombineProc
7650   GLU_TESS_BEGIN_DATA = 100106; // TGLUTessBeginDataProc
7651   GLU_TESS_VERTEX_DATA = 100107; // TGLUTessVertexDataProc
7652   GLU_TESS_END_DATA = 100108; // TGLUTessEndDataProc
7653   GLU_TESS_ERROR_DATA = 100109; // TGLUTessErrorDataProc
7654   GLU_TESS_EDGE_FLAG_DATA = 100110; // TGLUTessEdgeFlagDataProc
7655   GLU_TESS_COMBINE_DATA = 100111; // TGLUTessCombineDataProc
7656   GLU_TESS_ERROR1 = 100151;
7657   GLU_TESS_ERROR2 = 100152;
7658   GLU_TESS_ERROR3 = 100153;
7659   GLU_TESS_ERROR4 = 100154;
7660   GLU_TESS_ERROR5 = 100155;
7661   GLU_TESS_ERROR6 = 100156;
7662   GLU_TESS_ERROR7 = 100157;
7663   GLU_TESS_ERROR8 = 100158;
7664   GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
7665   GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
7666   GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
7667   GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
7668   GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
7669   GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
7670   GLU_AUTO_LOAD_MATRIX = 100200;
7671   GLU_CULLING = 100201;
7672   GLU_SAMPLING_TOLERANCE = 100203;
7673   GLU_DISPLAY_MODE = 100204;
7674   GLU_PARAMETRIC_TOLERANCE = 100202;
7675   GLU_SAMPLING_METHOD = 100205;
7676   GLU_U_STEP = 100206;
7677   GLU_V_STEP = 100207;
7678   GLU_PATH_LENGTH = 100215;
7679   GLU_PARAMETRIC_ERROR = 100216;
7680   GLU_DOMAIN_DISTANCE = 100217;
7681   GLU_MAP1_TRIM_2 = 100210;
7682   GLU_MAP1_TRIM_3 = 100211;
7683   GLU_OUTLINE_POLYGON = 100240;
7684   GLU_OUTLINE_PATCH = 100241;
7685   GLU_NURBS_ERROR1 = 100251;
7686   GLU_NURBS_ERROR2 = 100252;
7687   GLU_NURBS_ERROR3 = 100253;
7688   GLU_NURBS_ERROR4 = 100254;
7689   GLU_NURBS_ERROR5 = 100255;
7690   GLU_NURBS_ERROR6 = 100256;
7691   GLU_NURBS_ERROR7 = 100257;
7692   GLU_NURBS_ERROR8 = 100258;
7693   GLU_NURBS_ERROR9 = 100259;
7694   GLU_NURBS_ERROR10 = 100260;
7695   GLU_NURBS_ERROR11 = 100261;
7696   GLU_NURBS_ERROR12 = 100262;
7697   GLU_NURBS_ERROR13 = 100263;
7698   GLU_NURBS_ERROR14 = 100264;
7699   GLU_NURBS_ERROR15 = 100265;
7700   GLU_NURBS_ERROR16 = 100266;
7701   GLU_NURBS_ERROR17 = 100267;
7702   GLU_NURBS_ERROR18 = 100268;
7703   GLU_NURBS_ERROR19 = 100269;
7704   GLU_NURBS_ERROR20 = 100270;
7705   GLU_NURBS_ERROR21 = 100271;
7706   GLU_NURBS_ERROR22 = 100272;
7707   GLU_NURBS_ERROR23 = 100273;
7708   GLU_NURBS_ERROR24 = 100274;
7709   GLU_NURBS_ERROR25 = 100275;
7710   GLU_NURBS_ERROR26 = 100276;
7711   GLU_NURBS_ERROR27 = 100277;
7712   GLU_NURBS_ERROR28 = 100278;
7713   GLU_NURBS_ERROR29 = 100279;
7714   GLU_NURBS_ERROR30 = 100280;
7715   GLU_NURBS_ERROR31 = 100281;
7716   GLU_NURBS_ERROR32 = 100282;
7717   GLU_NURBS_ERROR33 = 100283;
7718   GLU_NURBS_ERROR34 = 100284;
7719   GLU_NURBS_ERROR35 = 100285;
7720   GLU_NURBS_ERROR36 = 100286;
7721   GLU_NURBS_ERROR37 = 100287;
7722   GLU_CW = 100120;
7723   GLU_CCW = 100121;
7724   GLU_INTERIOR = 100122;
7725   GLU_EXTERIOR = 100123;
7726   GLU_UNKNOWN = 100124;
7727   GLU_BEGIN = GLU_TESS_BEGIN;
7728   GLU_VERTEX = GLU_TESS_VERTEX;
7729   GLU_END = GLU_TESS_END;
7730   GLU_ERROR = GLU_TESS_ERROR;
7731   GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
7732
7733 type
7734   // GL_VERSION_1_0
7735   TglCullFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7736   TglFrontFace = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7737   TglHint = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7738   TglLineWidth = procedure(width: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7739   TglPointSize = procedure(size: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7740   TglPolygonMode = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7741   TglScissor = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7742   TglTexParameterf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7743   TglTexParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7744   TglTexParameteri = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7745   TglTexParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7746   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}
7747   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}
7748   TglDrawBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7749   TglClear = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7750   TglClearColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7751   TglClearStencil = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7752   TglClearDepth = procedure(depth: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7753   TglStencilMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7754   TglColorMask = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7755   TglDepthMask = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7756   TglDisable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7757   TglEnable = procedure(cap: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7758   TglFinish = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7759   TglFlush = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7760   TglBlendFunc = procedure(sfactor: GLenum; dfactor: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7761   TglLogicOp = procedure(opcode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7762   TglStencilFunc = procedure(func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7763   TglStencilOp = procedure(fail: GLenum; zfail: GLenum; zpass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7764   TglDepthFunc = procedure(func: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7765   TglPixelStoref = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7766   TglPixelStorei = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7767   TglReadBuffer = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7768   TglReadPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7769   TglGetBooleanv = procedure(pname: GLenum; params: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7770   TglGetDoublev = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7771   TglGetError = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7772   TglGetFloatv = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7773   TglGetIntegerv = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7774   TglGetString = function(name: GLenum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7775   TglGetTexImage = procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7776   TglGetTexParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7777   TglGetTexParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7778   TglGetTexLevelParameterfv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7779   TglGetTexLevelParameteriv = procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7780   TglIsEnabled = function(cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7781   TglDepthRange = procedure(zNear: GLclampd; zFar: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7782   TglViewport = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7783
7784   // GL_VERSION_1_1
7785   TglDrawArrays = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7786   TglDrawElements = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7787   TglGetPointerv = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7788   TglPolygonOffset = procedure(factor: GLfloat; units: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7789   TglCopyTexImage1D = procedure(target: GLenum; level: GLint; internalFormat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7790   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}
7791   TglCopyTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7792   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}
7793   TglTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7794   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}
7795   TglBindTexture = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7796   TglDeleteTextures = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7797   TglGenTextures = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7798
7799 {$ifdef DGL_DEPRECATED}
7800   TglAccum = procedure(op: GLenum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7801   TglAlphaFunc = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7802   TglAreTexturesResident = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7803   TglArrayElement = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7804   TglBegin = procedure(mode: GLenum); {$IFNDEF CLR}{$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}{$ENDIF}
7805   TglBitmap = procedure(width: GLsizei; height: GLsizei; xorig: GLfloat; yorig: GLfloat; xmove: GLfloat; ymove: GLfloat; const bitmap: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7806   TglCallList = procedure(list: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7807   TglCallLists = procedure(n: GLsizei; _type: GLenum; const lists: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7808   TglClearAccum = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7809   TglClearIndex = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7810   TglClipPlane = procedure(plane: GLenum; const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7811   TglColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7812   TglColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7813   TglColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7814   TglColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7815   TglColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7816   TglColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7817   TglColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7818   TglColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7819   TglColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7820   TglColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7821   TglColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7822   TglColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7823   TglColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7824   TglColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7825   TglColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7826   TglColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7827   TglColor4b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte; alpha: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7828   TglColor4bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7829   TglColor4d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble; alpha: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7830   TglColor4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7831   TglColor4f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7832   TglColor4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7833   TglColor4i = procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7834   TglColor4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7835   TglColor4s = procedure(red: GLshort; green: GLshort; blue: GLshort; alpha: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7836   TglColor4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7837   TglColor4ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte; alpha: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7838   TglColor4ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7839   TglColor4ui = procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7840   TglColor4uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7841   TglColor4us = procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7842   TglColor4usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7843   TglColorMaterial = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7844   TglColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7845   TglCopyPixels = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; _type: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7846   TglDeleteLists = procedure(list: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7847   TglDisableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7848   TglDrawPixels = procedure(width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7849   TglEdgeFlag = procedure(flag: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7850   TglEdgeFlagPointer = procedure(stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7851   TglEdgeFlagv = procedure(const flag: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7852   TglEnableClientState = procedure(_array: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7853   TglEnd = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7854   TglEndList = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7855   TglEvalCoord1d = procedure(u: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7856   TglEvalCoord1dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7857   TglEvalCoord1f = procedure(u: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7858   TglEvalCoord1fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7859   TglEvalCoord2d = procedure(u: GLdouble; v: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7860   TglEvalCoord2dv = procedure(const u: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7861   TglEvalCoord2f = procedure(u: GLfloat; v: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7862   TglEvalCoord2fv = procedure(const u: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7863   TglEvalMesh1 = procedure(mode: GLenum; i1: GLint; i2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7864   TglEvalMesh2 = procedure(mode: GLenum; i1: GLint; i2: GLint; j1: GLint; j2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7865   TglEvalPoint1 = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7866   TglEvalPoint2 = procedure(i: GLint; j: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7867   TglFeedbackBuffer = procedure(size: GLsizei; _type: GLenum; buffer: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7868   TglFogf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7869   TglFogfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7870   TglFogi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7871   TglFogiv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7872   TglFrustum = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7873   TglGenLists = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7874   TglGetClipPlane = procedure(plane: GLenum; equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7875   TglGetLightfv = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7876   TglGetLightiv = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7877   TglGetMapdv = procedure(target: GLenum; query: GLenum; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7878   TglGetMapfv = procedure(target: GLenum; query: GLenum; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7879   TglGetMapiv = procedure(target: GLenum; query: GLenum; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7880   TglGetMaterialfv = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7881   TglGetMaterialiv = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7882   TglGetPixelMapfv = procedure(map: GLenum; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7883   TglGetPixelMapuiv = procedure(map: GLenum; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7884   TglGetPixelMapusv = procedure(map: GLenum; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7885   TglGetPolygonStipple = procedure(mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7886   TglGetTexEnvfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7887   TglGetTexEnviv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7888   TglGetTexGendv = procedure(coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7889   TglGetTexGenfv = procedure(coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7890   TglGetTexGeniv = procedure(coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7891   TglIndexMask = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7892   TglIndexPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7893   TglIndexd = procedure(c: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7894   TglIndexdv = procedure(const c: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7895   TglIndexf = procedure(c: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7896   TglIndexfv = procedure(const c: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7897   TglIndexi = procedure(c: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7898   TglIndexiv = procedure(const c: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7899   TglIndexs = procedure(c: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7900   TglIndexsv = procedure(const c: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7901   TglIndexub = procedure(c: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7902   TglIndexubv = procedure(const c: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7903   TglInitNames = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7904   TglInterleavedArrays = procedure(format: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7905   TglIsList = function(list: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7906   TglIsTexture = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7907   TglLightModelf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7908   TglLightModelfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7909   TglLightModeli = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7910   TglLightModeliv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7911   TglLightf = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7912   TglLightfv = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7913   TglLighti = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7914   TglLightiv = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7915   TglLineStipple = procedure(factor: GLint; pattern: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7916   TglListBase = procedure(base: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7917   TglLoadIdentity = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7918   TglLoadMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7919   TglLoadMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7920   TglLoadName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7921   TglMap1d = procedure(target: GLenum; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7922   TglMap1f = procedure(target: GLenum; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7923   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}
7924   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}
7925   TglMapGrid1d = procedure(un: GLint; u1: GLdouble; u2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7926   TglMapGrid1f = procedure(un: GLint; u1: GLfloat; u2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7927   TglMapGrid2d = procedure(un: GLint; u1: GLdouble; u2: GLdouble; vn: GLint; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7928   TglMapGrid2f = procedure(un: GLint; u1: GLfloat; u2: GLfloat; vn: GLint; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7929   TglMaterialf = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7930   TglMaterialfv = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7931   TglMateriali = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7932   TglMaterialiv = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7933   TglMatrixMode = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7934   TglMultMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7935   TglMultMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7936   TglNewList = procedure(list: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7937   TglNormal3b = procedure(nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7938   TglNormal3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7939   TglNormal3d = procedure(nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7940   TglNormal3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7941   TglNormal3f = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7942   TglNormal3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7943   TglNormal3i = procedure(nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7944   TglNormal3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7945   TglNormal3s = procedure(nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7946   TglNormal3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7947   TglNormalPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7948   TglOrtho = procedure(left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7949   TglPassThrough = procedure(token: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7950   TglPixelMapfv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7951   TglPixelMapuiv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7952   TglPixelMapusv = procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7953   TglPixelTransferf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7954   TglPixelTransferi = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7955   TglPixelZoom = procedure(xfactor: GLfloat; yfactor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7956   TglPolygonStipple = procedure(const mask: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7957   TglPopAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7958   TglPopClientAttrib = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7959   TglPopMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7960   TglPopName = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7961   TglPrioritizeTextures = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7962   TglPushAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7963   TglPushClientAttrib = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7964   TglPushMatrix = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7965   TglPushName = procedure(name: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7966   TglRasterPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7967   TglRasterPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7968   TglRasterPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7969   TglRasterPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7970   TglRasterPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7971   TglRasterPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7972   TglRasterPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7973   TglRasterPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7974   TglRasterPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7975   TglRasterPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7976   TglRasterPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7977   TglRasterPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7978   TglRasterPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7979   TglRasterPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7980   TglRasterPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7981   TglRasterPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7982   TglRasterPos4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7983   TglRasterPos4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7984   TglRasterPos4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7985   TglRasterPos4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7986   TglRasterPos4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7987   TglRasterPos4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7988   TglRasterPos4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7989   TglRasterPos4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7990   TglRectd = procedure(x1: GLdouble; y1: GLdouble; x2: GLdouble; y2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7991   TglRectdv = procedure(const v1: PGLdouble; const v2: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7992   TglRectf = procedure(x1: GLfloat; y1: GLfloat; x2: GLfloat; y2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7993   TglRectfv = procedure(const v1: PGLfloat; const v2: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7994   TglRecti = procedure(x1: GLint; y1: GLint; x2: GLint; y2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7995   TglRectiv = procedure(const v1: PGLint; const v2: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7996   TglRects = procedure(x1: GLshort; y1: GLshort; x2: GLshort; y2: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7997   TglRectsv = procedure(const v1: PGLshort; const v2: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7998   TglRenderMode = function(mode: GLenum): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
7999   TglRotated = procedure(angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8000   TglRotatef = procedure(angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8001   TglScaled = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8002   TglScalef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8003   TglSelectBuffer = procedure(size: GLsizei; buffer: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8004   TglShadeModel = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8005   TglTexCoord1d = procedure(s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8006   TglTexCoord1dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8007   TglTexCoord1f = procedure(s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8008   TglTexCoord1fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8009   TglTexCoord1i = procedure(s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8010   TglTexCoord1iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8011   TglTexCoord1s = procedure(s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8012   TglTexCoord1sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8013   TglTexCoord2d = procedure(s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8014   TglTexCoord2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8015   TglTexCoord2f = procedure(s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8016   TglTexCoord2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8017   TglTexCoord2i = procedure(s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8018   TglTexCoord2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8019   TglTexCoord2s = procedure(s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8020   TglTexCoord2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8021   TglTexCoord3d = procedure(s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8022   TglTexCoord3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8023   TglTexCoord3f = procedure(s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8024   TglTexCoord3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8025   TglTexCoord3i = procedure(s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8026   TglTexCoord3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8027   TglTexCoord3s = procedure(s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8028   TglTexCoord3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8029   TglTexCoord4d = procedure(s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8030   TglTexCoord4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8031   TglTexCoord4f = procedure(s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8032   TglTexCoord4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8033   TglTexCoord4i = procedure(s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8034   TglTexCoord4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8035   TglTexCoord4s = procedure(s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8036   TglTexCoord4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8037   TglTexCoordPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8038   TglTexEnvf = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8039   TglTexEnvfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8040   TglTexEnvi = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8041   TglTexEnviv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8042   TglTexGend = procedure(coord: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8043   TglTexGendv = procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8044   TglTexGenf = procedure(coord: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8045   TglTexGenfv = procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8046   TglTexGeni = procedure(coord: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8047   TglTexGeniv = procedure(coord: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8048
8049
8050   TglTranslated = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8051   TglTranslatef = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8052   TglVertex2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8053   TglVertex2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8054   TglVertex2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8055   TglVertex2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8056   TglVertex2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8057   TglVertex2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8058   TglVertex2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8059   TglVertex2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8060   TglVertex3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8061   TglVertex3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8062   TglVertex3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8063   TglVertex3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8064   TglVertex3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8065   TglVertex3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8066   TglVertex3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8067   TglVertex3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8068   TglVertex4d = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8069   TglVertex4dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8070   TglVertex4f = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8071   TglVertex4fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8072   TglVertex4i = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8073   TglVertex4iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8074   TglVertex4s = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8075   TglVertex4sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8076   TglVertexPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8077 {$endif}
8078
8079   // GL_VERSION_1_2
8080   TglBlendColor = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8081   TglBlendEquation = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8082   TglDrawRangeElements = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8083   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}
8084   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}
8085   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}
8086 {$ifdef DGL_DEPRECATED}
8087   TglColorTable = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8088   TglColorTableParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8089   TglColorTableParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8090   TglCopyColorTable = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8091   TglGetColorTable = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8092   TglGetColorTableParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8093   TglGetColorTableParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8094   TglColorSubTable = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8095   TglCopyColorSubTable = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8096   TglConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8097   TglConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8098   TglConvolutionParameterf = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8099   TglConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8100   TglConvolutionParameteri = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8101   TglConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8102   TglCopyConvolutionFilter1D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8103   TglCopyConvolutionFilter2D = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8104   TglGetConvolutionFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8105   TglGetConvolutionParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8106   TglGetConvolutionParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8107   TglGetSeparableFilter = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8108   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}
8109   TglGetHistogram = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8110   TglGetHistogramParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8111   TglGetHistogramParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8112   TglGetMinmax = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8113   TglGetMinmaxParameterfv = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8114   TglGetMinmaxParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8115   TglHistogram = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8116   TglMinmax = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8117   TglResetHistogram = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8118   TglResetMinmax = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8119 {$endif}
8120
8121   // GL_VERSION_1_3
8122   TglActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8123   TglSampleCoverage = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8124   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}
8125   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}
8126   TglCompressedTexImage1D = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8127   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}
8128   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}
8129   TglCompressedTexSubImage1D = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8130   TglGetCompressedTexImage = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8131 {$ifdef DGL_DEPRECATED}
8132   TglClientActiveTexture = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8133   TglMultiTexCoord1d = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8134   TglMultiTexCoord1dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8135   TglMultiTexCoord1f = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8136   TglMultiTexCoord1fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8137   TglMultiTexCoord1i = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8138   TglMultiTexCoord1iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8139   TglMultiTexCoord1s = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8140   TglMultiTexCoord1sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8141   TglMultiTexCoord2d = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8142   TglMultiTexCoord2dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8143   TglMultiTexCoord2f = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8144   TglMultiTexCoord2fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8145   TglMultiTexCoord2i = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8146   TglMultiTexCoord2iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8147   TglMultiTexCoord2s = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8148   TglMultiTexCoord2sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8149   TglMultiTexCoord3d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8150   TglMultiTexCoord3dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8151   TglMultiTexCoord3f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8152   TglMultiTexCoord3fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8153   TglMultiTexCoord3i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8154   TglMultiTexCoord3iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8155   TglMultiTexCoord3s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8156   TglMultiTexCoord3sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8157   TglMultiTexCoord4d = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8158   TglMultiTexCoord4dv = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8159   TglMultiTexCoord4f = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8160   TglMultiTexCoord4fv = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8161   TglMultiTexCoord4i = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8162   TglMultiTexCoord4iv = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8163   TglMultiTexCoord4s = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8164   TglMultiTexCoord4sv = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8165   TglLoadTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8166   TglLoadTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8167   TglMultTransposeMatrixf = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8168   TglMultTransposeMatrixd = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8169 {$endif}
8170
8171   // GL_VERSION_1_4
8172   TglBlendFuncSeparate = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8173   TglMultiDrawArrays = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8174   TglMultiDrawElements = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8175   TglPointParameterf = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8176   TglPointParameterfv = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8177   TglPointParameteri = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8178   TglPointParameteriv = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8179 {$ifdef DGL_DEPRECATED}
8180   TglFogCoordf = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8181   TglFogCoordfv = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8182   TglFogCoordd = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8183   TglFogCoorddv = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8184   TglFogCoordPointer = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8185   TglSecondaryColor3b = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8186   TglSecondaryColor3bv = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8187   TglSecondaryColor3d = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8188   TglSecondaryColor3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8189   TglSecondaryColor3f = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8190   TglSecondaryColor3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8191   TglSecondaryColor3i = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8192   TglSecondaryColor3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8193   TglSecondaryColor3s = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8194   TglSecondaryColor3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8195   TglSecondaryColor3ub = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8196   TglSecondaryColor3ubv = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8197   TglSecondaryColor3ui = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8198   TglSecondaryColor3uiv = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8199   TglSecondaryColor3us = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8200   TglSecondaryColor3usv = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8201   TglSecondaryColorPointer = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8202   TglWindowPos2d = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8203   TglWindowPos2dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8204   TglWindowPos2f = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8205   TglWindowPos2fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8206   TglWindowPos2i = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8207   TglWindowPos2iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8208   TglWindowPos2s = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8209   TglWindowPos2sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8210   TglWindowPos3d = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8211   TglWindowPos3dv = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8212   TglWindowPos3f = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8213   TglWindowPos3fv = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8214   TglWindowPos3i = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8215   TglWindowPos3iv = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8216   TglWindowPos3s = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8217   TglWindowPos3sv = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8218 {$endif}
8219
8220   // GL_VERSION_1_5
8221   TglGenQueries = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8222   TglDeleteQueries = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8223   TglIsQuery = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8224   TglBeginQuery = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8225   TglEndQuery = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8226   TglGetQueryiv = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8227   TglGetQueryObjectiv = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8228   TglGetQueryObjectuiv = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8229   TglBindBuffer = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8230   TglDeleteBuffers = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8231   TglGenBuffers = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8232   TglIsBuffer = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8233   TglBufferData = procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8234   TglBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8235   TglGetBufferSubData = procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8236   TglMapBuffer = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8237   TglUnmapBuffer = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8238   TglGetBufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8239   TglGetBufferPointerv = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8240
8241   // GL_VERSION_2_0
8242   TglBlendEquationSeparate = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8243   TglDrawBuffers = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8244   TglStencilOpSeparate = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8245   TglStencilFuncSeparate = procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8246   TglStencilMaskSeparate = procedure(face: GLenum; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8247   TglAttachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8248   TglBindAttribLocation = procedure(programObj: GLhandle; index: GLuint; name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8249   TglCompileShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8250   TglCreateProgram = function: GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8251   TglCreateShader = function(shaderType: GLenum): GLhandle; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8252   TglDeleteProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8253   TglDeleteShader = procedure(shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8254   TglDetachShader = procedure(programObj, shaderObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8255   TglDisableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8256   TglEnableVertexAttribArray = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8257   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}
8258   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}
8259   TglGetAttachedShaders = procedure(programObj: GLhandle; MaxCount: GLsizei; var Count: GLint; shaders: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8260   TglGetAttribLocation = function(programObj: GLhandle; char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8261   TglGetProgramiv = procedure(programObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8262   TglGetProgramInfoLog = procedure(programObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8263   TglGetShaderiv = procedure(shaderObj: GLhandle; pname: GLenum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8264   TglGetShaderInfoLog = procedure(shaderObj: GLHandle; maxLength: glsizei; length: PGLSizei; infoLog: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8265   TglGetShaderSource = procedure(shaderObj: GLhandle; maxlength: GLsizei; var length: GLsizei; source: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8266   TglGetUniformLocation = function(programObj: GLhandle; const char: PGLChar): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8267   TglGetUniformfv = procedure(programObj: GLhandle; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8268   TglGetUniformiv = procedure(programObj: GLhandle; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8269   TglGetVertexAttribfv = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8270   TglGetVertexAttribiv = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8271   TglGetVertexAttribPointerv = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8272   TglIsProgram = function(programObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8273   TglIsShader = function(shaderObj: GLhandle) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8274   TglLinkProgram = procedure(programObj: GLHandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8275   TglShaderSource = procedure(shaderObj: GLHandle; count: glsizei; const _string: PPGLChar; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8276   TglUseProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8277   TglUniform1f = procedure(location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8278   TglUniform2f = procedure(location: GLint; v0, v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8279   TglUniform3f = procedure(location: GLint; v0, v1, v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8280   TglUniform4f = procedure(location: GLint; v0, v1, v2, v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8281   TglUniform1i = procedure(location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8282   TglUniform2i = procedure(location: GLint; v0, v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8283   TglUniform3i = procedure(location: GLint; v0, v1, v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8284   TglUniform4i = procedure(location: GLint; v0, v1, v2, v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8285   TglUniform1fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8286   TglUniform2fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8287   TglUniform3fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8288   TglUniform4fv = procedure(location: GLint; count: GLsizei; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8289   TglUniform1iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8290   TglUniform2iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8291   TglUniform3iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8292   TglUniform4iv = procedure(location: GLint; count: GLsizei; value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8293   TglUniformMatrix2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8294   TglUniformMatrix3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8295   TglUniformMatrix4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8296   TglValidateProgram = procedure(programObj: GLhandle); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8297   TglVertexAttrib1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8298   TglVertexAttrib1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8299   TglVertexAttrib1f = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8300   TglVertexAttrib1fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8301   TglVertexAttrib1s = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8302   TglVertexAttrib1sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8303   TglVertexAttrib2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8304   TglVertexAttrib2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8305   TglVertexAttrib2f = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8306   TglVertexAttrib2fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8307   TglVertexAttrib2s = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8308   TglVertexAttrib2sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8309   TglVertexAttrib3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8310   TglVertexAttrib3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8311   TglVertexAttrib3f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8312   TglVertexAttrib3fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8313   TglVertexAttrib3s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8314   TglVertexAttrib3sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8315   TglVertexAttrib4Nbv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8316   TglVertexAttrib4Niv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8317   TglVertexAttrib4Nsv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8318   TglVertexAttrib4Nub = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8319   TglVertexAttrib4Nubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8320   TglVertexAttrib4Nuiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8321   TglVertexAttrib4Nusv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8322   TglVertexAttrib4bv = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8323   TglVertexAttrib4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8324   TglVertexAttrib4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8325   TglVertexAttrib4f = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8326   TglVertexAttrib4fv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8327   TglVertexAttrib4iv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8328   TglVertexAttrib4s = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8329   TglVertexAttrib4sv = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8330   TglVertexAttrib4ubv = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8331   TglVertexAttrib4uiv = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8332   TglVertexAttrib4usv = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8333   TglVertexAttribPointer = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8334
8335   // GL_VERSION_2_1
8336   TglUniformMatrix2x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8337   TglUniformMatrix3x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8338   TglUniformMatrix2x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8339   TglUniformMatrix4x2fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8340   TglUniformMatrix3x4fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8341   TglUniformMatrix4x3fv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8342
8343   // GL_VERSION_3_0
8344   { OpenGL 3.0 also reuses entry points from these extensions: }
8345   { ARB_framebuffer_object }
8346   { ARB_map_buffer_range }
8347   { ARB_vertex_array_object }
8348   TglColorMaski = procedure(index_: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8349   TglGetBooleani_v = procedure(target: GLenum; index_: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8350   TglGetIntegeri_v = procedure(target: GLenum; index_: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8351   TglEnablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8352   TglDisablei = procedure(target: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8353   TglIsEnabledi = function(target: GLenum; index_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8354   TglBeginTransformFeedback = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8355   TglEndTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8356   TglBindBufferRange = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8357   TglBindBufferBase = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8358   TglTransformFeedbackVaryings = procedure(program_: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8359   TglGetTransformFeedbackVarying = procedure(program_: GLuint; index_: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; type_: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8360   TglClampColor = procedure(targe: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8361   TglBeginConditionalRender = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8362   TglEndConditionalRender = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8363   TglVertexAttribIPointer = procedure(index_: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8364   TglGetVertexAttribIiv = procedure(index_: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8365   TglGetVertexAttribIuiv = procedure(index_: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8366   TglVertexAttribI1i = procedure(index_: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8367   TglVertexAttribI2i = procedure(index_: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8368   TglVertexAttribI3i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8369   TglVertexAttribI4i = procedure(index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8370   TglVertexAttribI1ui = procedure(index_: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8371   TglVertexAttribI2ui = procedure(index_: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8372   TglVertexAttribI3ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8373   TglVertexAttribI4ui = procedure(index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8374   TglVertexAttribI1iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8375   TglVertexAttribI2iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8376   TglVertexAttribI3iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8377   TglVertexAttribI4iv = procedure(index_: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8378   TglVertexAttribI1uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8379   TglVertexAttribI2uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8380   TglVertexAttribI3uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8381   TglVertexAttribI4uiv = procedure(index_: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8382   TglVertexAttribI4bv = procedure(index_: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8383   TglVertexAttribI4sv = procedure(index_: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8384   TglVertexAttribI4ubv = procedure(index_: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8385   TglVertexAttribI4usv = procedure(index_: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8386   TglGetUniformuiv = procedure(program_: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8387   TglBindFragDataLocation = procedure(program_: GLuint; color: GLuint; const name: PGLChar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8388   TglGetFragDataLocation = function(program_: GLuint; const name: PGLChar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8389   TglUniform1ui = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8390   TglUniform2ui = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8391   TglUniform3ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8392   TglUniform4ui = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8393   TglUniform1uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8394   TglUniform2uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8395   TglUniform3uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8396   TglUniform4uiv = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8397   TglTexParameterIiv = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8398   TglTexParameterIuiv = procedure(target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8399   TglGetTexParameterIiv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8400   TglGetTexParameterIuiv = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8401   TglClearBufferiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8402   TglClearBufferuiv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8403   TglClearBufferfv = procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8404   TglClearBufferfi = procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8405   TglGetStringi = function(name: GLenum; index: GLuint): PGLubyte; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8406
8407   // GL_VERSION_2_1
8408   TglEnableVertexArrayEXT = procedure(vaobj: GLuint; array_: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8409   TglEnableVertexArrayAttribEXT = procedure(vaobj: GLuint; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8410   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}
8411
8412   // GL_VERSION_3_1
8413   { OpenGL 3.1 also reuses entry points from these extensions: }
8414   { ARB_copy_buffer }
8415   { ARB_uniform_buffer_object }
8416   TglDrawArraysInstanced = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8417   TglDrawElementsInstanced = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8418   TglTexBuffer = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8419   TglPrimitiveRestartIndex = procedure(index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8420
8421   // GL_VERSION_3_2
8422   { OpenGL 3.2 also reuses entry points from these extensions: }
8423   { ARB_draw_elements_base_vertex }
8424   { ARB_provoking_vertex }
8425   { ARB_sync }
8426   { ARB_texture_multisample }
8427   TglGetInteger64i_v = procedure(target: GLenum; index_: GLuint; data: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8428   TglGetBufferParameteri64v = procedure(target: GLenum; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8429   TglFramebufferTexture = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8430 //  TglFramebufferTextureFace = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8431
8432   // GL_VERSION_3_3
8433   { OpenGL 3.3 also reuses entry points from these extensions: }
8434   { ARB_blend_func_extended }
8435   { ARB_sampler_objects }
8436   { ARB_explicit_attrib_location, but it has none }
8437   { ARB_occlusion_query2 (no entry points) }
8438   { ARB_shader_bit_encoding (no entry points) }
8439   { ARB_texture_rgb10_a2ui (no entry points) }
8440   { ARB_texture_swizzle (no entry points) }
8441   { ARB_timer_query }
8442   { ARB_vertex_type_2_10_10_10_rev }
8443   TglVertexAttribDivisor = procedure(index: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8444
8445   // GL_VERSION_4_0
8446   { OpenGL 4.0 also reuses entry points from these extensions: }
8447   { ARB_texture_query_lod (no entry points) }
8448   { ARB_draw_indirect }
8449   { ARB_gpu_shader5 (no entry points) }
8450   { ARB_gpu_shader_fp64 }
8451   { ARB_shader_subroutine }
8452   { ARB_tessellation_shader }
8453   { ARB_texture_buffer_object_rgb32 (no entry points) }
8454   { ARB_texture_cube_map_array (no entry points) }
8455   { ARB_texture_gather (no entry points) }
8456   { ARB_transform_feedback2 }
8457   { ARB_transform_feedback3 }
8458   TglMinSampleShading = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8459   TglBlendEquationi = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8460   TglBlendEquationSeparatei = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8461   TglBlendFunci = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8462   TglBlendFuncSeparatei = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8463
8464   // GL_VERSION_4_1
8465   { OpenGL 4.1 also reuses entry points from these extensions: }
8466   { ARB_ES2_compatibility }
8467   { ARB_get_program_binary }
8468   { ARB_separate_shader_objects }
8469   { ARB_shader_precision (no entry points) }
8470   { ARB_vertex_attrib_64bit }
8471   { ARB_viewport_array }
8472
8473   // GL_3DFX_tbuffer
8474   TglTbufferMask3DFX = procedure(mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8475
8476   // GL_APPLE_element_array
8477   TglElementPointerAPPLE = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8478   TglDrawElementArrayAPPLE = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8479   TglDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8480   TglMultiDrawElementArrayAPPLE = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8481   TglMultiDrawRangeElementArrayAPPLE = procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8482
8483   // GL_APPLE_fence
8484   TglGenFencesAPPLE = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8485   TglDeleteFencesAPPLE = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8486   TglSetFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8487   TglIsFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8488   TglTestFenceAPPLE = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8489   TglFinishFenceAPPLE = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8490   TglTestObjectAPPLE = function(_object: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8491   TglFinishObjectAPPLE = procedure(_object: GLenum; name: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8492
8493   // GL_APPLE_vertex_array_object
8494   TglBindVertexArrayAPPLE = procedure(_array: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8495   TglDeleteVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8496   TglGenVertexArraysAPPLE = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8497   TglIsVertexArrayAPPLE = function(_array: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8498
8499   // GL_APPLE_vertex_array_range
8500   TglVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8501   TglFlushVertexArrayRangeAPPLE = procedure(length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8502   TglVertexArrayParameteriAPPLE = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8503
8504   // GL_APPLE_texture_range
8505   TglTextureRangeAPPLE = procedure(target: GLenum; length: GLsizei; const Pointer_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8506   TglGetTexParameterPointervAPPLE = procedure(target: GLenum; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8507
8508   // GL_APPLE_vertex_program_evaluators
8509   TglEnableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8510   TglDisableVertexAttribAPPLE = procedure(index_: GLuint; pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8511   TglIsVertexAttribEnabledAPPLE = function(index_: GLuint; pname: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8512   TglMapVertexAttrib1dAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8513   TglMapVertexAttrib1fAPPLE = procedure(index_: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8514   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}
8515   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}
8516
8517   // GL_APPLE_object_purgeable
8518   TglObjectPurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8519   TglObjectUnpurgeableAPPLE = function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8520   TglGetObjectParameterivAPPLE = procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8521
8522   // GL_ARB_matrix_palette
8523   TglCurrentPaletteMatrixARB = procedure(index: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8524   TglMatrixIndexubvARB = procedure(size: GLint; const indices: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8525   TglMatrixIndexusvARB = procedure(size: GLint; const indices: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8526   TglMatrixIndexuivARB = procedure(size: GLint; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8527   TglMatrixIndexPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8528
8529   // GL_ARB_multisample
8530   TglSampleCoverageARB = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8531
8532   // GL_ARB_multitexture
8533   TglActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8534   TglClientActiveTextureARB = procedure(texture: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8535   TglMultiTexCoord1dARB = procedure(target: GLenum; s: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8536   TglMultiTexCoord1dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8537   TglMultiTexCoord1fARB = procedure(target: GLenum; s: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8538   TglMultiTexCoord1fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8539   TglMultiTexCoord1iARB = procedure(target: GLenum; s: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8540   TglMultiTexCoord1ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8541   TglMultiTexCoord1sARB = procedure(target: GLenum; s: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8542   TglMultiTexCoord1svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8543   TglMultiTexCoord2dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8544   TglMultiTexCoord2dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8545   TglMultiTexCoord2fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8546   TglMultiTexCoord2fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8547   TglMultiTexCoord2iARB = procedure(target: GLenum; s: GLint; t: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8548   TglMultiTexCoord2ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8549   TglMultiTexCoord2sARB = procedure(target: GLenum; s: GLshort; t: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8550   TglMultiTexCoord2svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8551   TglMultiTexCoord3dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8552   TglMultiTexCoord3dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8553   TglMultiTexCoord3fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8554   TglMultiTexCoord3fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8555   TglMultiTexCoord3iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8556   TglMultiTexCoord3ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8557   TglMultiTexCoord3sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8558   TglMultiTexCoord3svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8559   TglMultiTexCoord4dARB = procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8560   TglMultiTexCoord4dvARB = procedure(target: GLenum; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8561   TglMultiTexCoord4fARB = procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8562   TglMultiTexCoord4fvARB = procedure(target: GLenum; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8563   TglMultiTexCoord4iARB = procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8564   TglMultiTexCoord4ivARB = procedure(target: GLenum; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8565   TglMultiTexCoord4sARB = procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8566   TglMultiTexCoord4svARB = procedure(target: GLenum; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8567
8568   // GL_ARB_point_parameters
8569   TglPointParameterfARB = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8570   TglPointParameterfvARB = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8571
8572   // GL_ARB_texture_compression
8573   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}
8574   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}
8575   TglCompressedTexImage1DARB = procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8576   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}
8577   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}
8578   TglCompressedTexSubImage1DARB = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8579   TglGetCompressedTexImageARB = procedure(target: GLenum; level: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8580
8581   // GL_ARB_transpose_matrix
8582   TglLoadTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8583   TglLoadTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8584   TglMultTransposeMatrixfARB = procedure(const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8585   TglMultTransposeMatrixdARB = procedure(const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8586
8587   // GL_ARB_vertex_blend
8588   TglWeightbvARB = procedure(size: GLint; const weights: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8589   TglWeightsvARB = procedure(size: GLint; const weights: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8590   TglWeightivARB = procedure(size: GLint; const weights: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8591   TglWeightfvARB = procedure(size: GLint; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8592   TglWeightdvARB = procedure(size: GLint; const weights: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8593   TglWeightubvARB = procedure(size: GLint; const weights: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8594   TglWeightusvARB = procedure(size: GLint; const weights: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8595   TglWeightuivARB = procedure(size: GLint; const weights: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8596   TglWeightPointerARB = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8597   TglVertexBlendARB = procedure(count: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8598
8599   // GL_ARB_vertex_buffer_object
8600   TglBindBufferARB = procedure(target: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8601   TglDeleteBuffersARB = procedure(n: GLsizei; const buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8602   TglGenBuffersARB = procedure(n: GLsizei; buffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8603   TglIsBufferARB = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8604   TglBufferDataARB = procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8605   TglBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8606   TglGetBufferSubDataARB = procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8607   TglMapBufferARB = function(target: GLenum; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8608   TglUnmapBufferARB = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8609   TglGetBufferParameterivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8610   TglGetBufferPointervARB = procedure(target: GLenum; pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8611
8612   // GL_ARB_vertex_program
8613   TglVertexAttrib1dARB = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8614   TglVertexAttrib1dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8615   TglVertexAttrib1fARB = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8616   TglVertexAttrib1fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8617   TglVertexAttrib1sARB = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8618   TglVertexAttrib1svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8619   TglVertexAttrib2dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8620   TglVertexAttrib2dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8621   TglVertexAttrib2fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8622   TglVertexAttrib2fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8623   TglVertexAttrib2sARB = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8624   TglVertexAttrib2svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8625   TglVertexAttrib3dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8626   TglVertexAttrib3dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8627   TglVertexAttrib3fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8628   TglVertexAttrib3fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8629   TglVertexAttrib3sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8630   TglVertexAttrib3svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8631   TglVertexAttrib4NbvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8632   TglVertexAttrib4NivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8633   TglVertexAttrib4NsvARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8634   TglVertexAttrib4NubARB = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8635   TglVertexAttrib4NubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8636   TglVertexAttrib4NuivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8637   TglVertexAttrib4NusvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8638   TglVertexAttrib4bvARB = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8639   TglVertexAttrib4dARB = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8640   TglVertexAttrib4dvARB = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8641   TglVertexAttrib4fARB = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8642   TglVertexAttrib4fvARB = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8643   TglVertexAttrib4ivARB = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8644   TglVertexAttrib4sARB = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8645   TglVertexAttrib4svARB = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8646   TglVertexAttrib4ubvARB = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8647   TglVertexAttrib4uivARB = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8648   TglVertexAttrib4usvARB = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8649   TglVertexAttribPointerARB = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8650   TglEnableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8651   TglDisableVertexAttribArrayARB = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8652   TglProgramStringARB = procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8653   TglBindProgramARB = procedure(target: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8654   TglDeleteProgramsARB = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8655   TglGenProgramsARB = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8656   TglProgramEnvParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8657   TglProgramEnvParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8658   TglProgramEnvParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8659   TglProgramEnvParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8660   TglProgramLocalParameter4dARB = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8661   TglProgramLocalParameter4dvARB = procedure(target: GLenum; index: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8662   TglProgramLocalParameter4fARB = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8663   TglProgramLocalParameter4fvARB = procedure(target: GLenum; index: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8664   TglGetProgramEnvParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8665   TglGetProgramEnvParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8666   TglGetProgramLocalParameterdvARB = procedure(target: GLenum; index: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8667   TglGetProgramLocalParameterfvARB = procedure(target: GLenum; index: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8668   TglGetProgramivARB = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8669   TglGetProgramStringARB = procedure(target: GLenum; pname: GLenum; _string: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8670   TglGetVertexAttribdvARB = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8671   TglGetVertexAttribfvARB = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8672   TglGetVertexAttribivARB = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8673   TglGetVertexAttribPointervARB = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8674   TglIsProgramARB = function(_program: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8675
8676   // GL_ARB_window_pos
8677   TglWindowPos2dARB = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8678   TglWindowPos2dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8679   TglWindowPos2fARB = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8680   TglWindowPos2fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8681   TglWindowPos2iARB = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8682   TglWindowPos2ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8683   TglWindowPos2sARB = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8684   TglWindowPos2svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8685   TglWindowPos3dARB = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8686   TglWindowPos3dvARB = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8687   TglWindowPos3fARB = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8688   TglWindowPos3fvARB = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8689   TglWindowPos3iARB = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8690   TglWindowPos3ivARB = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8691   TglWindowPos3sARB = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8692   TglWindowPos3svARB = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8693
8694   // GL_ARB_draw_buffers
8695   TglDrawBuffersARB = procedure(n: GLsizei; bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8696
8697   // GL_ARB_color_buffer_float
8698   TglClampColorARB = procedure(target: GLenum; clamp: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8699
8700   // GL_ARB_vertex_shader
8701   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}
8702   TglGetAttribLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8703   TglBindAttribLocationARB = procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8704
8705   // GL_ARB_shader_objects
8706   TglDeleteObjectARB = procedure(Obj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8707   TglGetHandleARB = function(pname: GlEnum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8708   TglDetachObjectARB = procedure(container, attached: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8709   TglCreateShaderObjectARB = function(shaderType: glenum): GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8710   TglShaderSourceARB = procedure(shaderObj: GLHandleARB; count: glsizei; const _string: PPGLCharARB; lengths: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8711   TglCompileShaderARB = procedure(shaderObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8712   TglCreateProgramObjectARB = function: GLHandleARB; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8713   TglAttachObjectARB = procedure(programObj, shaderObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8714   TglLinkProgramARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8715   TglUseProgramObjectARB = procedure(programObj: GLHandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8716   TglValidateProgramARB = procedure(programObj: GLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8717   TglUniform1fARB = procedure(location: glint; v0: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8718   TglUniform2fARB = procedure(location: glint; v0, v1: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8719   TglUniform3fARB = procedure(location: glint; v0, v1, v2: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8720   TglUniform4fARB = procedure(location: glint; v0, v1, v2, v3: glfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8721   TglUniform1iARB = procedure(location: glint; v0: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8722   TglUniform2iARB = procedure(location: glint; v0, v1: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8723   TglUniform3iARB = procedure(location: glint; v0, v1, v2: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8724   TglUniform4iARB = procedure(location: glint; v0, v1, v2, v3: glint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8725   TglUniform1fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8726   TglUniform2fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8727   TglUniform3fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8728   TglUniform4fvARB = procedure(location: glint; count: GLsizei; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8729   TglUniform1ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8730   TglUniform2ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8731   TglUniform3ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8732   TglUniform4ivARB = procedure(location: glint; count: GLsizei; value: pglint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8733   TglUniformMatrix2fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8734   TglUniformMatrix3fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8735   TglUniformMatrix4fvARB = procedure(location: glint; count: glsizei; transpose: glboolean; value: pglfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8736   TglGetObjectParameterfvARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8737   TglGetObjectParameterivARB = procedure(Obj: GLHandleARB; pname: GLEnum; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8738   TglGetInfoLogARB = procedure(shaderObj: GLHandleARB; maxLength: glsizei; var length: glint; infoLog: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8739   TglGetAttachedObjectsARB = procedure(programobj: GLhandleARB; maxCount: GLsizei; var count: GLsizei; objects: PGLhandleARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8740   TglGetUniformLocationARB = function(programObj: GLhandleARB; const char: PGLcharARB): glint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8741   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}
8742   TglGetUniformfvARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8743   TglGetUniformivARB = procedure(programObj: GLhandleARB; location: GLint; params: PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8744   TglGetShaderSourceARB = procedure(shader: GLhandleARB; maxLength: GLsizei; var length: GLsizei; source: PGLcharARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8745
8746   // GL_ARB_Occlusion_Query
8747   TglGenQueriesARB = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8748   TglDeleteQueriesARB = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8749   TglIsQueryARB = function(id: GLuint): boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8750   TglBeginQueryARB = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8751   TglEndQueryARB = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8752   TglGetQueryivARB = procedure(target, pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8753   TglGetQueryObjectivARB = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8754   TglGetQueryObjectuivARB = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8755
8756   // GL_ARB_draw_instanced
8757   TglDrawArraysInstancedARB = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8758   TglDrawElementsInstancedARB = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8759
8760   // GL_ARB_framebuffer_object
8761   TglIsRenderbuffer = function(renderbuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8762   TglBindRenderbuffer = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8763   TglDeleteRenderbuffers = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8764   TglGenRenderbuffers = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8765   TglRenderbufferStorage = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8766   TglGetRenderbufferParameteriv = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8767   TglIsFramebuffer = function(framebuffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8768   TglBindFramebuffer = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8769   TglDeleteFramebuffers = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8770   TglGenFramebuffers = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8771   TglCheckFramebufferStatus = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8772   TglFramebufferTexture1D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8773   TglFramebufferTexture2D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8774   TglFramebufferTexture3D = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8775   TglFramebufferRenderbuffer = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8776   TglGetFramebufferAttachmentParameteriv = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8777   TglGenerateMipmap = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8778   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}
8779   TglRenderbufferStorageMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8780   TglFramebufferTextureLayer = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8781
8782   // GL_ARB_geometry_shader4
8783   TglProgramParameteriARB = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8784   TglFramebufferTextureARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8785   TglFramebufferTextureLayerARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8786   TglFramebufferTextureFaceARB = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8787
8788   // GL_ARB_instanced_arrays
8789   TglVertexAttribDivisorARB = procedure(index_: GLuint; divisor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8790
8791   // GL_ARB_map_buffer_range
8792   TglMapBufferRange = function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8793   TglFlushMappedBufferRange = procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8794
8795   // GL_ARB_texture_buffer_object
8796   TglTexBufferARB = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8797
8798   // GL_ARB_vertex_array_object
8799   TglBindVertexArray = procedure(array_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8800   TglDeleteVertexArrays = procedure(n: GLsizei; const arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8801   TglGenVertexArrays = procedure(n: GLsizei; arrays: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8802   TglIsVertexArray = function(array_: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8803
8804   // GL_ARB_uniform_buffer_object
8805   TglGetUniformIndices = procedure(program_: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8806   TglGetActiveUniformsiv = procedure(program_: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8807   TglGetActiveUniformName = procedure(program_: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8808   TglGetUniformBlockIndex = function(program_: GLuint; const uniformBlockName: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8809   TglGetActiveUniformBlockiv = procedure(program_: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8810   TglGetActiveUniformBlockName = procedure(program_: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8811   TglUniformBlockBinding = procedure(program_: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8812
8813   // GL_ARB_copy_buffer
8814   TglCopyBufferSubData = procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8815
8816   // GL_ARB_draw_elements_base_vertex
8817   TglDrawElementsBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8818   TglDrawRangeElementsBaseVertex = procedure(mode: GLenum; start: GLuint; end_: GLuint; count: GLsizei; type_: GLenum; const indices: PGLvoid; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8819   TglDrawElementsInstancedBaseVertex = procedure(mode: GLenum; count: GLsizei; type_: GLenum; const indices: PGLvoid; primcount: GLsizei; basevertex: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8820   TglMultiDrawElementsBaseVertex = procedure(mode: GLenum; const count: PGLsizei; type_: GLenum; const indices: PPGLvoid; primcount: GLsizei; const basevertex: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8821
8822   // GL_ARB_provoking_vertex
8823   TglProvokingVertex = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8824
8825   // GL_ARB_sync
8826   TglFenceSync = function(condition: GLenum; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8827   TglIsSync = function(sync: GLsync): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8828   TglDeleteSync = procedure(sync: GLsync); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8829   TglClientWaitSync = function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8830   TglWaitSync = procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8831   TglGetInteger64v = procedure(pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8832   TglGetSynciv = procedure(sync: GLsync; pname: GLenum; butSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8833
8834   // GL_ARB_texture_multisample
8835   TglTexImage2DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8836   TglTexImage3DMultisample = procedure(target: GLenum; samples: GLsizei; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8837   TglGetMultisamplefv = procedure(pname: GLenum; index_: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8838   TglSampleMaski = procedure(index_: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8839
8840   // GL_ARB_draw_buffers_blend
8841   TglBlendEquationiARB = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8842   TglBlendEquationSeparateiARB = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8843   TglBlendFunciARB = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8844   TglBlendFuncSeparateiARB = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8845
8846   // GL_ARB_sample_shading
8847   TglMinSampleShadingARB = procedure(value: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8848
8849   // GL_ARB_shading_language_include
8850   TglNamedStringARB = procedure(type_: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8851   TglDeleteNamedStringARB = procedure(namelen: GLint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8852   TglCompileShaderIncludeARB = procedure (shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8853   TglIsNamedStringARB = function(namelen: GLint; const name: PGLchar): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8854   TglGetNamedStringARB = procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: GLint; string_: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8855   TglGetNamedStringivARB = procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8856
8857   // GL_ARB_blend_func_extended
8858   TglBindFragDataLocationIndexed = procedure(program_: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8859   TglGetFragDataIndex = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8860
8861   // GL_ARB_sampler_objects
8862   TglGenSamplers = procedure(count: GLsizei; samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8863   TglDeleteSamplers = procedure(count: GLsizei; const samplers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8864   TglIsSampler = function(sampler: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8865   TglBindSampler = procedure(unit_: GLuint; sampler: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8866   TglSamplerParameteri = procedure(sampler: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8867   TglSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8868   TglSamplerParameterf = procedure(sampler: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8869   TglSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8870   TglSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8871   TglSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8872   TglGetSamplerParameteriv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8873   TglGetSamplerParameterIiv = procedure(sampler: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8874   TglGetSamplerParameterfv = procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8875   TglGetSamplerParameterIuiv = procedure(sampler: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8876
8877   // GL_ARB_timer_query
8878   TglQueryCounter = procedure(id: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8879   TglGetQueryObjecti64v = procedure(id: GLuint; pname: GLenum; params: PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8880   TglGetQueryObjectui64v = procedure(id: GLuint; pname: GLenum; params: PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8881
8882   // GL_ARB_vertex_type_2_10_10_10_rev
8883   TglVertexP2ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8884   TglVertexP2uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8885   TglVertexP3ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8886   TglVertexP3uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8887   TglVertexP4ui = procedure(type_: GLenum; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8888   TglVertexP4uiv = procedure(type_: GLenum; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8889   TglTexCoordP1ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8890   TglTexCoordP1uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8891   TglTexCoordP2ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8892   TglTexCoordP2uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8893   TglTexCoordP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8894   TglTexCoordP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8895   TglTexCoordP4ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8896   TglTexCoordP4uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8897   TglMultiTexCoordP1ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8898   TglMultiTexCoordP1uiv = procedure(texture: GLenum; type_: GLenum; const coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8899   TglMultiTexCoordP2ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8900   TglMultiTexCoordP2uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8901   TglMultiTexCoordP3ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8902   TglMultiTexCoordP3uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8903   TglMultiTexCoordP4ui = procedure(texture: GLenum; type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8904   TglMultiTexCoordP4uiv = procedure(texture: GLenum; type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8905   TglNormalP3ui = procedure(type_: GLenum; coords: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8906   TglNormalP3uiv = procedure(type_: GLenum; const coords: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8907   TglColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8908   TglColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8909   TglColorP4ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8910   TglColorP4uiv = procedure(type_: GLenum; const color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8911   TglSecondaryColorP3ui = procedure(type_: GLenum; color: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8912   TglSecondaryColorP3uiv = procedure(type_: GLenum; const color: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8913   TglVertexAttribP1ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8914   TglVertexAttribP1uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8915   TglVertexAttribP2ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8916   TglVertexAttribP2uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8917   TglVertexAttribP3ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8918   TglVertexAttribP3uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8919   TglVertexAttribP4ui = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; value: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8920   TglVertexAttribP4uiv = procedure(index: GLuint; type_: GLenum; normalized: GLboolean; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8921
8922   // GL_ARB_draw_indirect
8923   TglDrawArraysIndirect = procedure(mode: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8924   TglDrawElementsIndirect = procedure(mode: GLenum; type_: GLenum; const indirect: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8925
8926   // GL_ARB_gpu_shader_fp64
8927   TglUniform1d = procedure(location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8928   TglUniform2d = procedure(location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8929   TglUniform3d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8930   TglUniform4d = procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8931   TglUniform1dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8932   TglUniform2dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8933   TglUniform3dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8934   TglUniform4dv = procedure(location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8935   TglUniformMatrix2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8936   TglUniformMatrix3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8937   TglUniformMatrix4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8938   TglUniformMatrix2x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8939   TglUniformMatrix2x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8940   TglUniformMatrix3x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8941   TglUniformMatrix3x4dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8942   TglUniformMatrix4x2dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8943   TglUniformMatrix4x3dv = procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8944   TglGetUniformdv = procedure(program_: GLuint; location: GLint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8945
8946   // GL_ARB_shader_subroutine
8947   TglGetSubroutineUniformLocation = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8948   TglGetSubroutineIndex = function(program_: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8949   TglGetActiveSubroutineUniformiv = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8950   TglGetActiveSubroutineUniformName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8951   TglGetActiveSubroutineName = procedure(program_: GLuint; shadertype: GLenum; index: GLuint; bufsize: GLsizei; length: PGLsizei; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8952   TglUniformSubroutinesuiv = procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8953   TglGetUniformSubroutineuiv = procedure(shadertype: GLenum; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8954   TglGetProgramStageiv = procedure(program_: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8955
8956   // GL_ARB_tessellation_shader
8957   TglPatchParameteri = procedure(pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8958   TglPatchParameterfv = procedure(pname: GLenum; const values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8959
8960   // GL_ARB_transform_feedback2
8961   TglBindTransformFeedback = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8962   TglDeleteTransformFeedbacks = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8963   TglGenTransformFeedbacks = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8964   TglIsTransformFeedback = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8965   TglPauseTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8966   TglResumeTransformFeedback = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8967   TglDrawTransformFeedback = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8968
8969   // GL_ARB_transform_feedback3
8970   TglDrawTransformFeedbackStream = procedure(mode: GLenum; id: GLuint; stream: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8971   TglBeginQueryIndexed = procedure(target: GLenum; index: GLuint; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8972   TglEndQueryIndexed = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8973   TglGetQueryIndexediv = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8974
8975   // GL_ARB_ES2_compatibility
8976   TglReleaseShaderCompiler = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8977   TglShaderBinary = procedure(count: GLsizei; const shaders: PGLuint; binaryformat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8978   TglGetShaderPrecisionFormat = procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8979   TglDepthRangef = procedure(n: GLclampf; f: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8980   TglClearDepthf = procedure(d: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8981
8982   // GL_ARB_get_program_binary
8983   TglGetProgramBinary = procedure(program_: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8984   TglProgramBinary = procedure(program_: GLuint; binaryFormat: GLenum; const binary: PGLvoid; length: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8985   TglProgramParameteri = procedure(program_: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8986
8987   // GL_ARB_separate_shader_objects
8988   TglUseProgramStages = procedure(pipeline: GLuint; stages: GLbitfield; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8989   TglActiveShaderProgram = procedure(pipeline: GLuint; program_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8990   TglCreateShaderProgramv = function(type_: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8991   TglBindProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8992   TglDeleteProgramPipelines = procedure(n: GLsizei; const pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8993   TglGenProgramPipelines = procedure(n: GLsizei; pipelines: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8994   TglIsProgramPipeline = function(pipeline: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8995   TglGetProgramPipelineiv = procedure(pipeline: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8996   TglProgramUniform1i = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8997   TglProgramUniform1iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8998   TglProgramUniform1f = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
8999   TglProgramUniform1fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9000   TglProgramUniform1d = procedure(program_: GLuint; location: GLint; v0: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9001   TglProgramUniform1dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9002   TglProgramUniform1ui = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9003   TglProgramUniform1uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9004   TglProgramUniform2i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9005   TglProgramUniform2iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9006   TglProgramUniform2f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9007   TglProgramUniform2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9008   TglProgramUniform2d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9009   TglProgramUniform2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9010   TglProgramUniform2ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9011   TglProgramUniform2uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9012   TglProgramUniform3i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9013   TglProgramUniform3iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9014   TglProgramUniform3f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9015   TglProgramUniform3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9016   TglProgramUniform3d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9017   TglProgramUniform3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9018   TglProgramUniform3ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9019   TglProgramUniform3uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9020   TglProgramUniform4i = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9021   TglProgramUniform4iv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9022   TglProgramUniform4f = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9023   TglProgramUniform4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9024   TglProgramUniform4d = procedure(program_: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9025   TglProgramUniform4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9026   TglProgramUniform4ui = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9027   TglProgramUniform4uiv = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9028   TglProgramUniformMatrix2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9029   TglProgramUniformMatrix3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9030   TglProgramUniformMatrix4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9031   TglProgramUniformMatrix2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9032   TglProgramUniformMatrix3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9033   TglProgramUniformMatrix4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9034   TglProgramUniformMatrix2x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9035   TglProgramUniformMatrix3x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9036   TglProgramUniformMatrix2x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9037   TglProgramUniformMatrix4x2fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9038   TglProgramUniformMatrix3x4fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9039   TglProgramUniformMatrix4x3fv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9040   TglProgramUniformMatrix2x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9041   TglProgramUniformMatrix3x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9042   TglProgramUniformMatrix2x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9043   TglProgramUniformMatrix4x2dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9044   TglProgramUniformMatrix3x4dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9045   TglProgramUniformMatrix4x3dv = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9046   TglValidateProgramPipeline = procedure(pipeline: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9047   TglGetProgramPipelineInfoLog = procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9048
9049   // GL_ARB_vertex_attrib_64bit
9050   TglVertexAttribL1d = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9051   TglVertexAttribL2d = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9052   TglVertexAttribL3d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9053   TglVertexAttribL4d = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9054   TglVertexAttribL1dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9055   TglVertexAttribL2dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9056   TglVertexAttribL3dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9057   TglVertexAttribL4dv = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9058   TglVertexAttribLPointer = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9059   TglGetVertexAttribLdv = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9060
9061   // GL_ARB_viewport_array
9062   TglViewportArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9063   TglViewportIndexedf = procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9064   TglViewportIndexedfv = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9065   TglScissorArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9066   TglScissorIndexed = procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9067   TglScissorIndexedv = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9068   TglDepthRangeArrayv = procedure(first: GLuint; count: GLsizei; const v: PGLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9069   TglDepthRangeIndexed = procedure(index: GLuint; n: GLclampd; f: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9070   TglGetFloati_v = procedure(target: GLenum; index: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9071   TglGetDoublei_v = procedure(target: GLenum; index: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9072
9073   // GL 4.2
9074
9075   // GL_ARB_base_instance
9076   TglDrawArraysInstancedBaseInstance = procedure(mode : GLenum; first : GLint; count :GLsizei; primcount : GLsizei; baseinstance : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9077   TglDrawElementsInstancedBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount : GLsizei; baseinstance : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9078   TglDrawElementsInstancedBaseVertexBaseInstance = procedure(mode : GLEnum; count : GLsizei; _type : GLenum; const indices : PGLVoid; primcount :GLsizei; basevertex : GLint; baseinstance : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9079
9080   // GL_ARB_transform_feedback_instanced
9081   TglDrawTransformFeedbackInstanced = procedure(mode : GLenum; id : GLuint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9082   TglDrawTransformFeedbackStreamInstanced = procedure(mode : GLenum; id : GLUInt; stream : GLUint; primcount : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9083
9084   // GL_ARB_internalformat_query
9085   TglGetInternalformativ = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9086
9087   // GL_ARB_shader_atomic_counters
9088   TglGetActiveAtomicCounterBufferiv = procedure(_program : GLuint; bufferIndex : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9089
9090   /// GL_ARB_shader_image_load_store
9091   TglBindImageTexture = procedure(_unit : GLuint; texture : GLuint; level :GLint; layered : GLboolean; layer : GLint; access : GLenum; format : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9092   TglMemoryBarrier = procedure(barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9093
9094   // GL_ARB_texture_storage
9095   TglTexStorage1D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9096   TglTexStorage2D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9097   TglTexStorage3D = procedure(target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9098   TglTextureStorage1DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9099   TglTextureStorage2DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9100   TglTextureStorage3DEXT = procedure(texture : GLuint; target : GLenum; levels :GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9101
9102
9103   // GL 4.3
9104
9105   // GL_KHR_debug
9106   TglDebugMessageControl = procedure(source : GLenum; type_ : GLenum; severity : TGLenum; count : GLsizei; const ids : PGLUInt; enabled : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9107   TglDebugMessageInsert = procedure(source : GLenum;  type_ : GLenum; id : GLuint; sverity : GLenum; length : GLsizei; const buf : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9108   TglDebugMessageCallback = procedure(callback : TGLDEBUGPROC; const userParam : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9109   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}
9110   TglPushDebugGroup = procedure(source : GLenum; id : GLuint; length : GLsizei; const message_ : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9111   TglPopDebugGroup = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9112   TglObjectLabel = procedure(identifier : GLenum; name : GLuint; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9113   TglGetObjectLabel = procedure(identifier : GLenum; name : GLuint; bufsize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9114   TglObjectPtrLabel = procedure(const ptr : Pointer; length : GLsizei; const label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9115   TglGetObjectPtrLabel = procedure(const ptr : Pointer; bufSize : GLsizei; length : PGLsizei; label_ : PGLCHar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9116
9117   // GL_ARB_clear_buffer_object
9118   TglClearBufferData = procedure(target : GLenum; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9119   TglClearBufferSubData = procedure(target : GLenum; internalformat : GLenum; offset : GLintptr; size : GLsizeiptr; format : GLenum; type_ : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9120   TglClearNamedBufferDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLEnum; type_ : GLEnum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9121   TglClearNamedBufferSubDataEXT = procedure(buffer : GLuint; internalformat : GLenum; format : GLenum; type_ : GLenum; offset : GLsizeiptr; size : GLsizeiptr; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9122
9123   // GL_ARB_compute_shader 1
9124   TglDispatchCompute = procedure(num_groups_x : GLuint; num_groups_y : GLuint; num_groups_z : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9125   TglDispatchComputeIndirect = procedure(indirect : GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9126
9127   // GL_ARB_copy_image
9128   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}
9129
9130   // GL_ARB_debug_group
9131   // ARB_debug_group reuses entry points from KHR_debug
9132
9133   // GL_ARB_debug_label
9134   // ARB_debug_label reuses entry points from KHR_debug
9135
9136   // GL_ARB_debug_output2
9137
9138   // GL_ARB_ES3_compatibility
9139
9140   // GL_ARB_explicit_uniform_location
9141
9142   // GL_ARB_fragment_layer_viewport
9143
9144   // GL_ARB_framebuffer_no_attachments
9145   TglFramebufferParameteri = procedure(target : GLenum; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9146   TglGetFramebufferParameteriv = procedure(target : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9147   TglNamedFramebufferParameteriEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9148   TglGetNamedFramebufferParameterivEXT = procedure(framebuffer : GLUInt; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9149
9150   // GL_ARB_internalformat_query2
9151   TglGetInternalformati64v = procedure(target : GLenum; internalformat : GLenum; pname : GLenum; bufSize : GLsizei; params : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9152
9153   // GL_ARB_invalidate_subdata
9154   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}
9155   TglInvalidateTexImage = procedure(texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9156   TglInvalidateBufferSubData = procedure(buffer : GLuint; offset : GLintptr; length : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9157   TglInvalidateBufferData = procedure(buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9158   TglInvalidateFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9159   TglInvalidateSubFramebuffer = procedure(target : GLenum; numAttachments : GLsizei; const attachments : PGLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9160
9161   // GL_ARB_multi_draw_indirect
9162   TglMultiDrawArraysIndirect = procedure(mode : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9163   TglMultiDrawElementsIndirect = procedure(mode : GLenum; type_ : GLenum; const indirect : Pointer; drawcount : GLsizei; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9164
9165   // GL_ARB_program_interface_query
9166   TglGetProgramInterfaceiv = procedure(program_ : GLUInt;programInterface : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9167   TglGetProgramResourceIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLUInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9168   TglGetProgramResourceName = procedure(program_ : GLUInt;programInterface : GLenum; index : GLuint; bufSize : GLsizei; length : PGLsizei; name : PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9169   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}
9170   TglGetProgramResourceLocation = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9171   TglGetProgramResourceLocationIndex = function(program_ : GLUInt;programInterface : GLenum; const name : PGLchar) : GLInt; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9172
9173   // GL_ARB_robust_buffer_access_behavior
9174
9175   // GL_ARB_shader_image_size
9176
9177   // GL_ARB_shader_storage_buffer_object
9178   TglShaderStorageBlockBinding = procedure(program_ : GLuint; storageBlockIndex : GLuint; storageBlockBinding : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9179
9180   // GL_ARB_stencil_texturing
9181
9182   // GL_ARB_texture_buffer_range
9183   TglTexBufferRange = procedure(target : GLenum; internalformat : GLenum; buffer : GLuint; offset :GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9184   TglTextureBufferRangeEXT = procedure(texture : GLuint; target : GLenum; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9185
9186   // GL_ARB_texture_query_levels
9187
9188   // GL_ARB_texture_storage_multisample
9189   TglTexStorage2DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9190   TglTexStorage3DMultisample = procedure(target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9191   TglTextureStorage2DMultisampleEXT = procedure(texture : GLuint; target : GLenum; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9192   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}
9193
9194   // GL 4.4
9195
9196   TglBufferStorage = procedure(target : GLenum; size : GLsizeiptr; const data : pointer; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9197   TglClearTexImage = procedure(texture : GLuint; level : GLint; format : GLenum; _type : GLenum; const data : Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9198   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}
9199   TglBindBuffersBase = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9200   TglBindBuffersRange = procedure(target : GLenum; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : GLintptr; const sizes : GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9201   TglBindTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9202   TglBindSamplers = procedure(first : GLuint; count : GLsizei; const samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9203   TglBindImageTextures = procedure(first : GLuint; count : GLsizei; const textures : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9204   TglBindVertexBuffers = procedure(first : GLuint; count : GLsizei; const buffers : GLuint; const offsets : GLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9205   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}
9206
9207   // GL 4.5
9208   TglClipControl = procedure(origin : GLenum; depth : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9209   TglCreateTransformFeedbacks = procedure(n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9210   TglTransformFeedbackBufferBase = procedure (xfb : GLuint; index : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9211   TglTransformFeedbackBufferRange = procedure (xfb : GLuint; index : GLuint; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9212   TglGetTransformFeedbackiv = procedure (xfb : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9213   TglGetTransformFeedbacki_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9214   TglGetTransformFeedbacki64_v = procedure (xfb : GLuint; pname : GLenum; index : GLuint; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9215   TglCreateBuffers = procedure (n : GLsizei; buffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9216   TglNamedBufferStorage = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; flags : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9217   TglNamedBufferData = procedure (buffer : GLuint; size : GLsizei; const data : PGLVoid; usage : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9218   TglNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9219   TglCopyNamedBufferSubData = procedure (readBuffer : GLuint; writeBuffer : GLuint; readOffset : GLintptr; writeOffset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9220   TglClearNamedBufferData = procedure (buffer : GLuint; internalformat : GLenum; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9221   TglClearNamedBufferSubData = procedure (buffer : GLuint; internalformat : GLenum; offset : GLintptr; size : GLsizei; format : GLenum; _type : GLenum; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9222   TglMapNamedBuffer = function(buffer : GLuint; access : GLenum) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9223   TglMapNamedBufferRange = function(buffer : GLuint; offset : GLintptr; length : GLsizei; access : GLbitfield) : PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9224   TglUnmapNamedBuffer = function(buffer : GLuint) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9225   TglFlushMappedNamedBufferRange = procedure (buffer : GLuint; offset : GLintptr; length : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9226   TglGetNamedBufferParameteriv = procedure (buffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9227   TglGetNamedBufferParameteri64v = procedure (buffer : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9228   TglGetNamedBufferPointerv = procedure (buffer : GLuint; pname : GLenum; params : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9229   TglGetNamedBufferSubData = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; data : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9230   TglCreateFramebuffers = procedure (n : GLsizei; framebuffers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9231   TglNamedFramebufferRenderbuffer = procedure (framebuffer : GLuint; attachment : GLenum ; renderbuffertarget : GLEnum; renderbuffer : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9232   TglNamedFramebufferParameteri = procedure (framebuffer : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9233   TglNamedFramebufferTexture = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9234   TglNamedFramebufferTextureLayer = procedure (framebuffer : GLuint; attachment : GLenum; texture : GLuint; level : GLint; layer : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9235   TglNamedFramebufferDrawBuffer = procedure (framebuffer : GLuint; buf : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9236   TglNamedFramebufferDrawBuffers = procedure (framebuffer : GLuint; n : GLsizei; bufs : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9237   TglNamedFramebufferReadBuffer = procedure (framebuffer : GLuint; src : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9238   TglInvalidateNamedFramebufferData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9239   TglInvalidateNamedFramebufferSubData = procedure (framebuffer : GLuint; numAttachments : GLSizei; attachments : PGLEnum; x : GLint; y : GLint; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9240   TglClearNamedFramebufferiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9241   TglClearNamedFramebufferuiv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9242   TglClearNamedFramebufferfv = procedure (framebuffer : GLuint; buffer : GLenum; drawbuffer : GLint; value : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9243   TglClearNamedFramebufferfi = procedure (framebuffer : GLuint; buffer : GLenum; const depth : GLfloat; stencil : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9244   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}
9245   TglCheckNamedFramebufferStatus = function(framebuffer : GLuint; target : GLenum) : GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9246   TglGetNamedFramebufferParameteriv = procedure (framebuffer : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9247   TglGetNamedFramebufferAttachmentParameteriv = procedure (framebuffer : GLuint; attachment : GLenum; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9248   TglCreateRenderbuffers = procedure (n : GLsizei; renderbuffers : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9249   TglNamedRenderbufferStorage = procedure (renderbuffer : GLUInt; internalformat : GLenum ; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9250   TglNamedRenderbufferStorageMultisample = procedure (renderbuffer : GLUInt; samples : GLSizei; internalformat : GLenum ; width : GLSizei; height : GLSizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9251   TglGetNamedRenderbufferParameteriv = procedure (renderbuffer : GLUInt; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9252   TglCreateTextures = procedure (target : GLenum ; n : GLsizei; textures : PGLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9253   TglTextureBuffer = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9254   TglTextureBufferRange = procedure (texture : GLuint; internalformat : GLenum; buffer : GLuint; offset : GLintptr; size : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9255   TglTextureStorage1D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9256   TglTextureStorage2D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9257   TglTextureStorage3D = procedure (texture : GLuint; levels : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9258   TglTextureStorage2DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9259   TglTextureStorage3DMultisample = procedure (texture : GLuint; samples : GLsizei; internalformat : GLenum; width : GLsizei; height : GLsizei; depth : GLsizei; fixedsamplelocations : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9260   TglTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; _type : GLenum; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9261   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}
9262   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}
9263   TglCompressedTextureSubImage1D = procedure (texture : GLuint; level : GLint; xoffset : GLint; width : GLsizei; format : GLenum; imageSize : GLsizei; data : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9264   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}
9265   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}
9266   TglCopyTextureSubImage1D = procedure (texture : GLuint; level : GLint ; xoffset : GLint; x : GLint; y : GLint; width : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9267   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}
9268   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}
9269   TglTextureParameterf = procedure (texture : GLuint; pname : GLenum; param : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9270   TglTextureParameterfv = procedure (texture : GLuint; pname : GLenum; const param : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9271   TglTextureParameteri = procedure (texture : GLuint; pname : GLenum; param : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9272   TglTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; const params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9273   TglTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; const params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9274   TglTextureParameteriv = procedure (texture : GLuint; pname : GLenum; const param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9275   TglGenerateTextureMipmap = procedure(texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9276   TglBindTextureUnit = procedure (_unit : GLuint; texture : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9277   TglGetTextureImage = procedure (texture : GLuint; level : GLint ; format : GLenum; _type : GLenum; bufSize : GLsizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9278   TglGetCompressedTextureImage = procedure (texture : GLuint; level : GLint; bufSize : GLSizei; pixels : PGLVoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9279   TglGetTextureLevelParameterfv = procedure (texture : GLuint; level : GLint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9280   TglGetTextureLevelParameteriv = procedure (texture : GLuint; level : GLint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9281   TglGetTextureParameterfv = procedure (texture : GLuint; pname : GLenum; params : PGLFloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9282   TglGetTextureParameterIiv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9283   TglGetTextureParameterIuiv = procedure (texture : GLuint; pname : GLenum; params : PGLInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9284   TglGetTextureParameteriv = procedure (texture : GLuint; pname : GLenum; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9285   TglCreateVertexArrays = procedure (n : GLsizei; arrays : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9286   TglDisableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9287   TglEnableVertexArrayAttrib = procedure (vaobj : GLuint; index : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9288   TglVertexArrayElementBuffer = procedure (vaobj : GLuint; buffer : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9289   TglVertexArrayVertexBuffer = procedure (vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9290   TglVertexArrayVertexBuffers = procedure (vaobj : GLuint; first : GLuint; count : GLsizei; const buffers : PGLuint; const offsets : PGLintptr; const strides : PGLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9291   TglVertexArrayAttribBinding = procedure (vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9292   TglVertexArrayAttribFormat = procedure(vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; normalized : GLboolean; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9293   TglVertexArrayAttribIFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9294   TglVertexArrayAttribLFormat = procedure (vaobj : GLuint; attribindex : GLuint; size : GLint; _type : GLenum; relativeoffset : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9295   TglVertexArrayBindingDivisor = procedure (vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9296   TglGetVertexArrayiv = procedure (vaobj : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9297   TglGetVertexArrayIndexediv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9298   TglGetVertexArrayIndexed64iv = procedure (vaobj : GLuint; index : GLuint; pname : GLenum; param : PGLint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9299   TglCreateSamplers = procedure (n : GLsizei; samplers : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9300   TglCreateProgramPipelines = procedure (n : GLsizei; pipelines : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9301   TglCreateQueries = procedure (target : GLenum; n : GLsizei; ids : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9302   TglMemoryBarrierByRegion = procedure (barriers : GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9303   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}
9304   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}
9305   TglGetGraphicsResetStatus = function : GLEnum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9306   TglGetnCompressedTexImage = procedure (target : GLenum; lod : GLint; bufSize : GLsizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9307   TglGetnTexImage = procedure (target : GLenum; level : GLint; format : GLenum; _type : GLenum; bufSize : GLSizei; pixels : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9308   TglGetnUniformdv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9309   TglGetnUniformfv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9310   TglGetnUniformiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9311   TglGetnUniformuiv = procedure (_program : GLuint; location : GLint; bufSize : GLsizei; params : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9312   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}
9313   TglGetnMapdv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9314   TglGetnMapfv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9315   TglGetnMapiv = procedure (target : GLenum; query : GLenum; bufSize : GLsizei; v : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9316   TglGetnPixelMapfv = procedure (map : GLenum; bufSize : GLsizei; values : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9317   TglGetnPixelMapuiv = procedure (map : GLenum; bufSize : GLsizei; values : PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9318   TglGetnPixelMapusv = procedure (map : GLenum; bufSize : GLsizei; values : PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9319   TglGetnPolygonStipple = procedure (bufSize : GLsizei; pattern : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9320   TglGetnColorTable = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; table : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9321   TglGetnConvolutionFilter = procedure (target : GLenum; format : GLenum; _type : GLenum; bufSize : GLsizei; image : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9322   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}
9323   TglGetnHistogram = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9324   TglGetnMinmax = procedure (target : GLenum; reset : GLboolean; format : GLenum; _type : GLenum; bufSize : GLsizei; values : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9325   TglTextureBarrier = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9326
9327   // GL_ARB_sparse_buffer
9328   TglBufferPageCommitmentARB = procedure (target : GLenum; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9329   TglNamedBufferPageCommitmentEXT = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9330   TglNamedBufferPageCommitmentARB = procedure (buffer : GLuint; offset : GLintptr; size : GLsizei; commit : GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9331
9332   // GL_KHR_blend_equation_advanced
9333   TglBlendBarrierKHR = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9334
9335   // GL_ARB_texture_view
9336   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}
9337
9338   // GL_ARB_vertex_attrib_binding
9339   TglBindVertexBuffer = procedure(bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9340   TglVertexAttribFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9341   TglVertexAttribIFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9342   TglVertexAttribLFormat = procedure(attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9343   TglVertexAttribBinding = procedure(attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9344   TglVertexBindingDivisor = procedure(bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9345   TglVertexArrayBindVertexBufferEXT = procedure(vaobj : GLuint; bindingindex : GLuint; buffer : GLuint; offset : GLintptr; stride : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9346   TglVertexArrayVertexAttribFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; normalized : GLboolean; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9347   TglVertexArrayVertexAttribIFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9348   TglVertexArrayVertexAttribLFormatEXT = procedure(vaobj : GLuint; attribindex : GLuint; size : GLInt; type_ : GLEnum; relativeoffset : GLUint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9349   TglVertexArrayVertexAttribBindingEXT = procedure(vaobj : GLuint; attribindex : GLuint; bindingindex : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9350   TglVertexArrayVertexBindingDivisorEXT = procedure(vaobj : GLuint; bindingindex : GLuint; divisor : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9351
9352   // GL_ARB_robustness_isolation
9353
9354   //
9355
9356   // GL_ARB_cl_event
9357   TglCreateSyncFromCLeventARB = function(context: p_cl_context; event: p_cl_event; flags: GLbitfield): GLsync; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9358
9359   // GL_ARB_debug_output
9360   TglDebugMessageControlARB = procedure(source: GLenum; type_: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9361   TglDebugMessageInsertARB = procedure(source: GLenum; type_: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9362   TglDebugMessageCallbackARB = procedure(callback: TglDebugProcARB; const userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9363   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}
9364
9365   // GL_ARB_robustness
9366   TglGetGraphicsResetStatusARB = function(): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9367   TglGetnMapdvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9368   TglGetnMapfvARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9369   TglGetnMapivARB = procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9370   TglGetnPixelMapfvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9371   TglGetnPixelMapuivARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9372   TglGetnPixelMapusvARB = procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9373   TglGetnPolygonStippleARB = procedure(bufSize: GLsizei; pattern: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9374   TglGetnColorTableARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9375   TglGetnConvolutionFilterARB = procedure(target: GLenum; format: GLenum; type_: GLenum; bufSize: GLsizei; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9376   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}
9377   TglGetnHistogramARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9378   TglGetnMinmaxARB = procedure(target: GLenum; reset: GLboolean; format: GLenum; type_: GLenum; bufSize: GLsizei; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9379   TglGetnTexImageARB = procedure(target: GLenum; level: GLint; format: GLenum; type_: GLenum; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9380   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}
9381   TglGetnCompressedTexImageARB = procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9382   TglGetnUniformfvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9383   TglGetnUniformivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9384   TglGetnUniformuivARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9385   TglGetnUniformdvARB = procedure(program_: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9386
9387   // GL_ATI_draw_buffers
9388   TglDrawBuffersATI = procedure(n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9389
9390   // GL_ATI_element_array
9391   TglElementPointerATI = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9392   TglDrawElementArrayATI = procedure(mode: GLenum; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9393   TglDrawRangeElementArrayATI = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9394
9395   // GL_ATI_envmap_bumpmap
9396   TglTexBumpParameterivATI = procedure(pname: GLenum; const param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9397   TglTexBumpParameterfvATI = procedure(pname: GLenum; const param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9398   TglGetTexBumpParameterivATI = procedure(pname: GLenum; param: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9399   TglGetTexBumpParameterfvATI = procedure(pname: GLenum; param: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9400
9401   // GL_ATI_fragment_shader
9402   TglGenFragmentShadersATI = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9403   TglBindFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9404   TglDeleteFragmentShaderATI = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9405   TglBeginFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9406   TglEndFragmentShaderATI = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9407   TglPassTexCoordATI = procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9408   TglSampleMapATI = procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9409   TglColorFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9410   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}
9411   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}
9412   TglAlphaFragmentOp1ATI = procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9413   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}
9414   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}
9415   TglSetFragmentShaderConstantATI = procedure(dst: GLuint; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9416
9417   // GL_ATI_map_object_buffer
9418   TglMapObjectBufferATI = function(buffer: GLuint): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9419   TglUnmapObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9420
9421   // GL_ATI_pn_triangles
9422   TglPNTrianglesiATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9423   TglPNTrianglesfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9424
9425   // GL_ATI_separate_stencil
9426   TglStencilOpSeparateATI = procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9427   TglStencilFuncSeparateATI = procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9428
9429   // GL_ATI_vertex_array_object
9430   TglNewObjectBufferATI = function(size: GLsizei; const _pointer: PGLvoid; usage: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9431   TglIsObjectBufferATI = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9432   TglUpdateObjectBufferATI = procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: PGLvoid; preserve: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9433   TglGetObjectBufferfvATI = procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9434   TglGetObjectBufferivATI = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9435   TglFreeObjectBufferATI = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9436   TglArrayObjectATI = procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9437   TglGetArrayObjectfvATI = procedure(_array: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9438   TglGetArrayObjectivATI = procedure(_array: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9439   TglVariantArrayObjectATI = procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9440   TglGetVariantArrayObjectfvATI = procedure(id: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9441   TglGetVariantArrayObjectivATI = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9442
9443   // GL_ATI_vertex_attrib_array_object
9444   TglVertexAttribArrayObjectATI = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9445   TglGetVertexAttribArrayObjectfvATI = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9446   TglGetVertexAttribArrayObjectivATI = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9447
9448   // GL_ATI_vertex_streams
9449   TglVertexStream1sATI = procedure(stream: GLenum; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9450   TglVertexStream1svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9451   TglVertexStream1iATI = procedure(stream: GLenum; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9452   TglVertexStream1ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9453   TglVertexStream1fATI = procedure(stream: GLenum; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9454   TglVertexStream1fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9455   TglVertexStream1dATI = procedure(stream: GLenum; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9456   TglVertexStream1dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9457   TglVertexStream2sATI = procedure(stream: GLenum; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9458   TglVertexStream2svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9459   TglVertexStream2iATI = procedure(stream: GLenum; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9460   TglVertexStream2ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9461   TglVertexStream2fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9462   TglVertexStream2fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9463   TglVertexStream2dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9464   TglVertexStream2dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9465   TglVertexStream3sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9466   TglVertexStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9467   TglVertexStream3iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9468   TglVertexStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9469   TglVertexStream3fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9470   TglVertexStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9471   TglVertexStream3dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9472   TglVertexStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9473   TglVertexStream4sATI = procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9474   TglVertexStream4svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9475   TglVertexStream4iATI = procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9476   TglVertexStream4ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9477   TglVertexStream4fATI = procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9478   TglVertexStream4fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9479   TglVertexStream4dATI = procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9480   TglVertexStream4dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9481   TglNormalStream3bATI = procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9482   TglNormalStream3bvATI = procedure(stream: GLenum; const coords: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9483   TglNormalStream3sATI = procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9484   TglNormalStream3svATI = procedure(stream: GLenum; const coords: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9485   TglNormalStream3iATI = procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9486   TglNormalStream3ivATI = procedure(stream: GLenum; const coords: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9487   TglNormalStream3fATI = procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9488   TglNormalStream3fvATI = procedure(stream: GLenum; const coords: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9489   TglNormalStream3dATI = procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9490   TglNormalStream3dvATI = procedure(stream: GLenum; const coords: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9491   TglClientActiveVertexStreamATI = procedure(stream: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9492   TglVertexBlendEnviATI = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9493   TglVertexBlendEnvfATI = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9494
9495   // GL_AMD_performance_monitor
9496   TglGetPerfMonitorGroupsAMD = procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9497   TglGetPerfMonitorCountersAMD = procedure(group: GLuint; numCounters: PGLint; maxActiveCouters: PGLint; counterSize: GLsizei; counters: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9498   TglGetPerfMonitorGroupStringAMD = procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9499   TglGetPerfMonitorCounterStringAMD = procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9500   TglGetPerfMonitorCounterInfoAMD = procedure(group: GLuint; counter: GLuint; pname: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9501   TglGenPerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9502   TglDeletePerfMonitorsAMD = procedure(n: GLsizei; monitors: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9503   TglSelectPerfMonitorCountersAMD = procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9504   TglBeginPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9505   TglEndPerfMonitorAMD = procedure(monitor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9506   TglGetPerfMonitorCounterDataAMD = procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9507
9508   // GL_AMD_vertex_shader_tesselator
9509   TglTessellationFactorAMD = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9510   TglTessellationModeAMD = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9511
9512   // GL_AMD_draw_buffers_blend
9513   TglBlendFuncIndexedAMD = procedure(buf: GLuint; src: GLenum; dst: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9514   TglBlendFuncSeparateIndexedAMD = procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9515   TglBlendEquationIndexedAMD = procedure(buf: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9516   TglBlendEquationSeparateIndexedAMD = procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9517
9518   // GL_AMD_name_gen_delete
9519   TglGenNamesAMD = procedure(identifier: GLenum; num: GLuint; names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9520   TglDeleteNamesAMD = procedure(identifier: GLenum; num: GLuint; const names: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9521   TglIsNameAMD = function(identifier: GLenum; name: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9522
9523   // GL_AMD_debug_output
9524   TglDebugMessageEnableAMD = procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9525   TglDebugMessageInsertAMD = procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9526   TglDebugMessageCallbackAMD = procedure(callback: TGLDebugProcAMD; userParam: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9527   TglGetDebugMessageLogAMD = function(count: GLuint; bufsize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; message: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9528
9529   // GL_EXT_blend_color
9530   TglBlendColorEXT = procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9531
9532   // GL_EXT_blend_func_separate
9533   TglBlendFuncSeparateEXT = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9534
9535   // GL_EXT_blend_minmax
9536   TglBlendEquationEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9537
9538   // GL_EXT_color_subtable
9539   TglColorSubTableEXT = procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9540   TglCopyColorSubTableEXT = procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9541
9542   // GL_EXT_compiled_vertex_array
9543   TglLockArraysEXT = procedure(first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9544   TglUnlockArraysEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9545
9546   // GL_EXT_convolution
9547   TglConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9548   TglConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9549   TglConvolutionParameterfEXT = procedure(target: GLenum; pname: GLenum; params: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9550   TglConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9551   TglConvolutionParameteriEXT = procedure(target: GLenum; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9552   TglConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9553   TglCopyConvolutionFilter1DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9554   TglCopyConvolutionFilter2DEXT = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9555   TglGetConvolutionFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9556   TglGetConvolutionParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9557   TglGetConvolutionParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9558   TglGetSeparableFilterEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9559   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}
9560
9561   // GL_EXT_coordinate_frame
9562   TglTangent3bEXT = procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9563   TglTangent3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9564   TglTangent3dEXT = procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9565   TglTangent3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9566   TglTangent3fEXT = procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9567   TglTangent3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9568   TglTangent3iEXT = procedure(tx: GLint; ty: GLint; tz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9569   TglTangent3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9570   TglTangent3sEXT = procedure(tx: GLshort; ty: GLshort; tz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9571   TglTangent3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9572   TglBinormal3bEXT = procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9573   TglBinormal3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9574   TglBinormal3dEXT = procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9575   TglBinormal3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9576   TglBinormal3fEXT = procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9577   TglBinormal3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9578   TglBinormal3iEXT = procedure(bx: GLint; by: GLint; bz: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9579   TglBinormal3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9580   TglBinormal3sEXT = procedure(bx: GLshort; by: GLshort; bz: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9581   TglBinormal3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9582   TglTangentPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9583   TglBinormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9584
9585   // GL_EXT_copy_texture
9586   TglCopyTexImage1DEXT = procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9587   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}
9588   TglCopyTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9589   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}
9590   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}
9591
9592   // GL_EXT_cull_vertex
9593   TglCullParameterdvEXT = procedure(pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9594   TglCullParameterfvEXT = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9595
9596   // GL_EXT_draw_range_elements
9597   TglDrawRangeElementsEXT = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9598
9599   // GL_EXT_fog_coord
9600   TglFogCoordfEXT = procedure(coord: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9601   TglFogCoordfvEXT = procedure(const coord: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9602   TglFogCoorddEXT = procedure(coord: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9603   TglFogCoorddvEXT = procedure(const coord: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9604   TglFogCoordPointerEXT = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9605
9606   // GL_EXT_framebuffer_object
9607   TglIsRenderbufferEXT = function(renderbuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9608   TglBindRenderbufferEXT = procedure(target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9609   TglDeleteRenderbuffersEXT = procedure(n: GLsizei; const renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9610   TglGenRenderbuffersEXT = procedure(n: GLsizei; renderbuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9611   TglRenderbufferStorageEXT = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9612   TglGetRenderbufferParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9613   TglIsFramebufferEXT = function(framebuffer: GLuint): Boolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9614   TglBindFramebufferEXT = procedure(target: GLenum; framebuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9615   TglDeleteFramebuffersEXT = procedure(n: GLsizei; const framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9616   TglGenFramebuffersEXT = procedure(n: GLsizei; framebuffers: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9617   TglCheckFramebufferStatusEXT = function(target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9618   TglFramebufferTexture1DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9619   TglFramebufferTexture2DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9620   TglFramebufferTexture3DEXT = procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9621   TglFramebufferRenderbufferEXT = procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9622   TglGetFramebufferAttachmentParameterivEXT = procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9623   TglGenerateMipmapEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9624
9625   // GL_EXT_histogram
9626   TglGetHistogramEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9627   TglGetHistogramParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9628   TglGetHistogramParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9629   TglGetMinmaxEXT = procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9630   TglGetMinmaxParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9631   TglGetMinmaxParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9632   TglHistogramEXT = procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9633   TglMinmaxEXT = procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9634   TglResetHistogramEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9635   TglResetMinmaxEXT = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9636
9637   // GL_EXT_index_func
9638   TglIndexFuncEXT = procedure(func: GLenum; ref: GLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9639
9640   // GL_EXT_index_material
9641   TglIndexMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9642
9643   // GL_EXT_light_texture
9644   TglApplyTextureEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9645   TglTextureLightEXT = procedure(pname: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9646   TglTextureMaterialEXT = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9647
9648   // GL_EXT_multi_draw_arrays
9649   TglMultiDrawArraysEXT = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9650   TglMultiDrawElementsEXT = procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9651
9652   // GL_EXT_multisample
9653   TglSampleMaskEXT = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9654   TglSamplePatternEXT = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9655
9656   // GL_EXT_paletted_texture
9657   TglColorTableEXT = procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9658   TglGetColorTableEXT = procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9659   TglGetColorTableParameterivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9660   TglGetColorTableParameterfvEXT = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9661
9662   // GL_EXT_pixel_transform
9663   TglPixelTransformParameteriEXT = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9664   TglPixelTransformParameterfEXT = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9665   TglPixelTransformParameterivEXT = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9666   TglPixelTransformParameterfvEXT = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9667
9668   // GL_EXT_point_parameters
9669   TglPointParameterfEXT = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9670   TglPointParameterfvEXT = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9671
9672   // GL_EXT_polygon_offset
9673   TglPolygonOffsetEXT = procedure(factor: GLfloat; bias: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9674
9675   // GL_EXT_secondary_color
9676   TglSecondaryColor3bEXT = procedure(red: GLbyte; green: GLbyte; blue: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9677   TglSecondaryColor3bvEXT = procedure(const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9678   TglSecondaryColor3dEXT = procedure(red: GLdouble; green: GLdouble; blue: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9679   TglSecondaryColor3dvEXT = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9680   TglSecondaryColor3fEXT = procedure(red: GLfloat; green: GLfloat; blue: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9681   TglSecondaryColor3fvEXT = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9682   TglSecondaryColor3iEXT = procedure(red: GLint; green: GLint; blue: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9683   TglSecondaryColor3ivEXT = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9684   TglSecondaryColor3sEXT = procedure(red: GLshort; green: GLshort; blue: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9685   TglSecondaryColor3svEXT = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9686   TglSecondaryColor3ubEXT = procedure(red: GLubyte; green: GLubyte; blue: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9687   TglSecondaryColor3ubvEXT = procedure(const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9688   TglSecondaryColor3uiEXT = procedure(red: GLuint; green: GLuint; blue: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9689   TglSecondaryColor3uivEXT = procedure(const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9690   TglSecondaryColor3usEXT = procedure(red: GLushort; green: GLushort; blue: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9691   TglSecondaryColor3usvEXT = procedure(const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9692   TglSecondaryColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9693
9694   // GL_EXT_stencil_two_side
9695   TglActiveStencilFaceEXT = procedure(face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9696
9697   // GL_EXT_subtexture
9698   TglTexSubImage1DEXT = procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9699   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}
9700
9701   // GL_EXT_texture3D
9702   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}
9703   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}
9704
9705   // GL_EXT_texture_object
9706   TglAreTexturesResidentEXT = function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9707   TglBindTextureEXT = procedure(target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9708   TglDeleteTexturesEXT = procedure(n: GLsizei; const textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9709   TglGenTexturesEXT = procedure(n: GLsizei; textures: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9710   TglIsTextureEXT = function(texture: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9711   TglPrioritizeTexturesEXT = procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9712
9713   // GL_EXT_texture_perturb_normal
9714   TglTextureNormalEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9715
9716   // GL_EXT_vertex_array
9717   TglArrayElementEXT = procedure(i: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9718   TglColorPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9719   TglDrawArraysEXT = procedure(mode: GLenum; first: GLint; count: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9720   TglEdgeFlagPointerEXT = procedure(stride: GLsizei; count: GLsizei; const _pointer: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9721   TglGetPointervEXT = procedure(pname: GLenum; params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9722   TglIndexPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9723   TglNormalPointerEXT = procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9724   TglTexCoordPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9725   TglVertexPointerEXT = procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9726
9727   // GL_EXT_vertex_shader
9728   TglBeginVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9729   TglEndVertexShaderEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9730   TglBindVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9731   TglGenVertexShadersEXT = function(range: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9732   TglDeleteVertexShaderEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9733   TglShaderOp1EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9734   TglShaderOp2EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9735   TglShaderOp3EXT = procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9736   TglSwizzleEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9737   TglWriteMaskEXT = procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9738   TglInsertComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9739   TglExtractComponentEXT = procedure(res: GLuint; src: GLuint; num: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9740   TglGenSymbolsEXT = function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9741   TglSetInvariantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9742   TglSetLocalConstantEXT = procedure(id: GLuint; _type: GLenum; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9743   TglVariantbvEXT = procedure(id: GLuint; const addr: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9744   TglVariantsvEXT = procedure(id: GLuint; const addr: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9745   TglVariantivEXT = procedure(id: GLuint; const addr: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9746   TglVariantfvEXT = procedure(id: GLuint; const addr: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9747   TglVariantdvEXT = procedure(id: GLuint; const addr: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9748   TglVariantubvEXT = procedure(id: GLuint; const addr: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9749   TglVariantusvEXT = procedure(id: GLuint; const addr: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9750   TglVariantuivEXT = procedure(id: GLuint; const addr: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9751   TglVariantPointerEXT = procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9752   TglEnableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9753   TglDisableVariantClientStateEXT = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9754   TglBindLightParameterEXT = function(light: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9755   TglBindMaterialParameterEXT = function(face: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9756   TglBindTexGenParameterEXT = function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9757   TglBindTextureUnitParameterEXT = function(_unit: GLenum; value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9758   TglBindParameterEXT = function(value: GLenum): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9759   TglIsVariantEnabledEXT = function(id: GLuint; cap: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9760   TglGetVariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9761   TglGetVariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9762   TglGetVariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9763   TglGetVariantPointervEXT = procedure(id: GLuint; value: GLenum; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9764   TglGetInvariantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9765   TglGetInvariantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9766   TglGetInvariantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9767   TglGetLocalConstantBooleanvEXT = procedure(id: GLuint; value: GLenum; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9768   TglGetLocalConstantIntegervEXT = procedure(id: GLuint; value: GLenum; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9769   TglGetLocalConstantFloatvEXT = procedure(id: GLuint; value: GLenum; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9770
9771   // GL_EXT_vertex_weighting
9772   TglVertexWeightfEXT = procedure(weight: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9773   TglVertexWeightfvEXT = procedure(const weight: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9774   TglVertexWeightPointerEXT = procedure(size: GLsizei; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9775
9776   // GL_EXT_stencil_clear_tag
9777   TglStencilClearTagEXT = procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9778
9779   // GL_EXT_framebuffer_blit
9780   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}
9781
9782   // GL_EXT_framebuffer_multisample
9783   TglRenderbufferStorageMultisampleEXT = procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9784
9785   // GL_EXT_timer_query
9786   TglGetQueryObjecti64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9787   TglGetQueryObjectui64vEXT = procedure(id: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9788
9789   // GL_EXT_gpu_program_parameters
9790   TglProgramEnvParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9791   TglProgramLocalParameters4fvEXT = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9792
9793   // GL_EXT_bindable_uniform
9794   TglUniformBufferEXT = procedure(_program: GLuint; location: GLint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9795   TglGetUniformBufferSizeEXT = function(_program: GLuint; location: GLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9796   TglGetUniformOffsetEXT = function(_program: GLuint; location: GLint): GLintptr; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9797
9798   // GL_EXT_draw_buffers2
9799   TglColorMaskIndexedEXT = procedure(buf: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9800   TglGetBooleanIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9801   TglGetIntegerIndexedvEXT = procedure(value: GLenum; index: GLuint; data: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9802   TglEnableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9803   TglDisableIndexedEXT = procedure(target: GLenum; index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9804   TglIsEnabledIndexedEXT = function(target: GLenum; index: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9805
9806   // GL_EXT_draw_instanced
9807   TglDrawArraysInstancedEXT = procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9808   TglDrawElementsInstancedEXT = procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: Pointer; primcount: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9809
9810   // GL_EXT_geometry_shader4
9811   TglProgramParameteriEXT = procedure (_program: GLuint; pname: GLenum; value: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9812   TglFramebufferTextureEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9813
9814   TglFramebufferTextureFaceEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9815
9816   // GL_EXT_gpu_shader4
9817   TglVertexAttribI1iEXT = procedure(index: GLuint; x: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9818   TglVertexAttribI2iEXT = procedure(index: GLuint; x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9819   TglVertexAttribI3iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9820   TglVertexAttribI4iEXT = procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9821   TglVertexAttribI1uiEXT = procedure(index: GLuint; x: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9822   TglVertexAttribI2uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9823   TglVertexAttribI3uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9824   TglVertexAttribI4uiEXT = procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9825   TglVertexAttribI1ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9826   TglVertexAttribI2ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9827   TglVertexAttribI3ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9828   TglVertexAttribI4ivEXT = procedure(index: GLuint; const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9829   TglVertexAttribI1uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9830   TglVertexAttribI2uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9831   TglVertexAttribI3uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9832   TglVertexAttribI4uivEXT = procedure(index: GLuint; const v: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9833   TglVertexAttribI4bvEXT = procedure(index: GLuint; const v: PGLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9834   TglVertexAttribI4svEXT = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9835   TglVertexAttribI4ubvEXT = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9836   TglVertexAttribI4usvEXT = procedure(index: GLuint; const v: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9837   TglVertexAttribIPointerEXT = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9838   TglGetVertexAttribIivEXT = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9839   TglGetVertexAttribIuivEXT = procedure(index: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9840   TglUniform1uiEXT = procedure(location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9841   TglUniform2uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9842   TglUniform3uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9843   TglUniform4uiEXT = procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9844   TglUniform1uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9845   TglUniform2uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9846   TglUniform3uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9847   TglUniform4uivEXT = procedure(location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9848   TglGetUniformuivEXT = procedure(_program: GLuint; location: GLint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9849   TglBindFragDataLocationEXT = procedure(_program: GLuint; colorNumber: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9850   TglGetFragDataLocationEXT = function(_program: GLuint; const name: PGLchar): GLint;
9851
9852   // GL_EXT_texture_array
9853   TglFramebufferTextureLayerEXT = procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9854
9855   // GL_EXT_texture_buffer_object
9856   TglTexBufferEXT = procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9857
9858   // GL_EXT_texture_integer
9859   TglClearColorIiEXT = procedure(r: GLint; g: GLint; b: GLint; a: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9860   TglClearColorIuiEXT = procedure(r: GLuint; g: GLuint; b: GLuint; a: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9861   TglTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9862   TglTexParameterIuivEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9863   TglGetTexParameterIivEXT = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9864   TglGetTexParameterIiuvEXT = procedure(target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9865
9866   // GL_HP_image_transform
9867   TglImageTransformParameteriHP = procedure(target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9868   TglImageTransformParameterfHP = procedure(target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9869   TglImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9870   TglImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9871   TglGetImageTransformParameterivHP = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9872   TglGetImageTransformParameterfvHP = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9873
9874   // GL_EXT_depth_bounds_test
9875   TglDepthBoundsEXT = procedure(zmin: GLclampd; zmax: GLclampd); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9876
9877   // GL_EXT_blend_equation_separate
9878   TglBlendEquationSeparateEXT = procedure(modeRGB: GLenum; modeAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9879
9880   // GL_EXT_transform_feedback
9881   TglBeginTransformFeedbackEXT = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9882   TglEndTransformFeedbackEXT = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9883   TglBindBufferRangeEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9884   TglBindBufferOffsetEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9885   TglBindBufferBaseEXT = procedure(target: GLenum; index_: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9886   TglTransformFeedbackVaryingsEXT = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9887   TglGetTransformFeedbackVaryingEXT = procedure(program_: GLuint; index_: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9888
9889   // GL_EXT_direct_state_access
9890   TglClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9891   TglPushClientAttribDefaultEXT = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9892   TglMatrixLoadfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9893   TglMatrixLoaddEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9894   TglMatrixMultfEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9895   TglMatrixMultdEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9896   TglMatrixLoadIdentityEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9897   TglMatrixRotatefEXT = procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9898   TglMatrixRotatedEXT = procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9899   TglMatrixScalefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9900   TglMatrixScaledEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9901   TglMatrixTranslatefEXT = procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9902   TglMatrixTranslatedEXT = procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9903   TglMatrixFrustumEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9904   TglMatrixOrthoEXT = procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9905   TglMatrixPopEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9906   TglMatrixPushEXT = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9907   TglMatrixLoadTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9908   TglMatrixLoadTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9909   TglMatrixMultTransposefEXT = procedure(mode: GLenum; const m: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9910   TglMatrixMultTransposedEXT = procedure(mode: GLenum; const m: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9911   TglTextureParameterfEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9912   TglTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9913   TglTextureParameteriEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9914   TglTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9915   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}
9916   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}
9917   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}
9918   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}
9919   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}
9920   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}
9921   TglCopyTextureSubImage1DEXT = procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9922   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}
9923   TglGetTextureImageEXT = procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9924   TglGetTextureParameterfvEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9925   TglGetTextureParameterivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9926   TglGetTextureLevelParameterfvEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9927   TglGetTextureLevelParameterivEXT = procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9928   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}
9929   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}
9930   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}
9931   TglMultiTexParameterfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9932   TglMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9933   TglMultiTexParameteriEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9934   TglMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9935   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}
9936   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}
9937   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}
9938   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}
9939   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}
9940   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}
9941   TglCopyMultiTexSubImage1DEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9942   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}
9943   TglGetMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; type_: GLenum; pixels: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9944   TglGetMultiTexParameterfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9945   TglGetMultiTexParameterivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9946   TglGetMultiTexLevelParameterfvEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9947   TglGetMultiTexLevelParameterivEXT = procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9948   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}
9949   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}
9950   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}
9951   TglBindMultiTextureEXT = procedure(texunit: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9952   TglEnableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9953   TglDisableClientStateIndexedEXT = procedure(array_: GLenum; index_: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9954   TglMultiTexCoordPointerEXT = procedure(texunit: GLenum; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9955   TglMultiTexEnvfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9956   TglMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9957   TglMultiTexEnviEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9958   TglMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9959   TglMultiTexGendEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9960   TglMultiTexGendvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9961   TglMultiTexGenfEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9962   TglMultiTexGenfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9963   TglMultiTexGeniEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9964   TglMultiTexGenivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9965   TglGetMultiTexEnvfvEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9966   TglGetMultiTexEnvivEXT = procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9967   TglGetMultiTexGendvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9968   TglGetMultiTexGenfvEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9969   TglGetMultiTexGenivEXT = procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9970   TglGetFloatIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9971   TglGetDoubleIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9972   TglGetPointerIndexedvEXT = procedure(target: GLenum; index_: GLuint; data: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9973   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}
9974   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}
9975   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}
9976   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}
9977   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}
9978   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}
9979   TglGetCompressedTextureImageEXT = procedure(texture: GLuint; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9980   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}
9981   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}
9982   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}
9983   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}
9984   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}
9985   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}
9986   TglGetCompressedMultiTexImageEXT = procedure(texunit: GLenum; target: GLenum; lod: GLint; img: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9987   TglNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; format: GLenum; len: GLsizei; const string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9988   TglNamedProgramLocalParameter4dEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9989   TglNamedProgramLocalParameter4dvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9990   TglNamedProgramLocalParameter4fEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9991   TglNamedProgramLocalParameter4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9992   TglGetNamedProgramLocalParameterdvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9993   TglGetNamedProgramLocalParameterfvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9994   TglGetNamedProgramivEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9995   TglGetNamedProgramStringEXT = procedure(program_: GLuint; target: GLenum; pname: GLenum; string_: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9996   TglNamedProgramLocalParameters4fvEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9997   TglNamedProgramLocalParameterI4iEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9998   TglNamedProgramLocalParameterI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
9999   TglNamedProgramLocalParametersI4ivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10000   TglNamedProgramLocalParameterI4uiEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10001   TglNamedProgramLocalParameterI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10002   TglNamedProgramLocalParametersI4uivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10003   TglGetNamedProgramLocalParameterIivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10004   TglGetNamedProgramLocalParameterIuivEXT = procedure(program_: GLuint; target: GLenum; index_: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10005   TglTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10006   TglTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10007   TglGetTextureParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10008   TglGetTextureParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10009   TglMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10010   TglMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10011   TglGetMultiTexParameterIivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10012   TglGetMultiTexParameterIuivEXT = procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10013   TglProgramUniform1fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10014   TglProgramUniform2fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10015   TglProgramUniform3fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10016   TglProgramUniform4fEXT = procedure(program_: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10017   TglProgramUniform1iEXT = procedure(program_: GLuint; location: GLint; v0: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10018   TglProgramUniform2iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10019   TglProgramUniform3iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10020   TglProgramUniform4iEXT = procedure(program_: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10021   TglProgramUniform1fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10022   TglProgramUniform2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10023   TglProgramUniform3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10024   TglProgramUniform4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10025   TglProgramUniform1ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10026   TglProgramUniform2ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10027   TglProgramUniform3ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10028   TglProgramUniform4ivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10029   TglProgramUniformMatrix2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10030   TglProgramUniformMatrix3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10031   TglProgramUniformMatrix4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10032   TglProgramUniformMatrix2x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10033   TglProgramUniformMatrix3x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10034   TglProgramUniformMatrix2x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10035   TglProgramUniformMatrix4x2fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10036   TglProgramUniformMatrix3x4fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10037   TglProgramUniformMatrix4x3fvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10038   TglProgramUniform1uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10039   TglProgramUniform2uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10040   TglProgramUniform3uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10041   TglProgramUniform4uiEXT = procedure(program_: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10042   TglProgramUniform1uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10043   TglProgramUniform2uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10044   TglProgramUniform3uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10045   TglProgramUniform4uivEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10046   TglNamedBufferDataEXT = procedure(buffer: GLuint; size: GLsizei; const data: PGLvoid; usage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10047   TglNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10048   TglMapNamedBufferEXT = function(buffer: GLuint; access: GLenum): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10049   TglUnmapNamedBufferEXT = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10050   TglMapNamedBufferRangeEXT = function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): PGLvoid; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10051   TglFlushMappedNamedBufferRangeEXT = procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10052   TglNamedCopyBufferSubDataEXT = procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10053   TglGetNamedBufferParameterivEXT = procedure(buffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10054   TglGetNamedBufferPointervEXT = procedure(buffer: GLuint; pname: GLenum; params: PPGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10055   TglGetNamedBufferSubDataEXT = procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10056   TglTextureBufferEXT = procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10057   TglMultiTexBufferEXT = procedure(texunit: GLenum; target: GLenum; interformat: GLenum; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10058   TglNamedRenderbufferStorageEXT = procedure(renderbuffer: GLuint; interformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10059   TglGetNamedRenderbufferParameterivEXT = procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10060   TglCheckNamedFramebufferStatusEXT = function(framebuffer: GLuint; target: GLenum): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10061   TglNamedFramebufferTexture1DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10062   TglNamedFramebufferTexture2DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10063   TglNamedFramebufferTexture3DEXT = procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10064   TglNamedFramebufferRenderbufferEXT = procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10065   TglGetNamedFramebufferAttachmentParameterivEXT = procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10066   TglGenerateTextureMipmapEXT = procedure(texture: GLuint; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10067   TglGenerateMultiTexMipmapEXT = procedure(texunit: GLenum; target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10068   TglFramebufferDrawBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10069   TglFramebufferDrawBuffersEXT = procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10070   TglFramebufferReadBufferEXT = procedure(framebuffer: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10071   TglGetFramebufferParameterivEXT = procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10072   TglNamedRenderbufferStorageMultisampleEXT = procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10073   TglNamedRenderbufferStorageMultisampleCoverageEXT = procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10074   TglNamedFramebufferTextureEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10075   TglNamedFramebufferTextureLayerEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10076   TglNamedFramebufferTextureFaceEXT = procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10077   TglTextureRenderbufferEXT = procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10078   TglMultiTexRenderbufferEXT = procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10079   TglProgramUniform1dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10080   TglProgramUniform2dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10081   TglProgramUniform3dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10082   TglProgramUniform4dEXT = procedure(program_: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10083   TglProgramUniform1dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10084   TglProgramUniform2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10085   TglProgramUniform3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10086   TglProgramUniform4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10087   TglProgramUniformMatrix2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10088   TglProgramUniformMatrix3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10089   TglProgramUniformMatrix4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10090   TglProgramUniformMatrix2x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10091   TglProgramUniformMatrix2x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10092   TglProgramUniformMatrix3x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10093   TglProgramUniformMatrix3x4dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10094   TglProgramUniformMatrix4x2dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10095   TglProgramUniformMatrix4x3dvEXT = procedure(program_: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10096
10097   // GL_EXT_separate_shader_objects
10098   TglUseShaderProgramEXT = procedure(_type: GLenum; _program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10099   TglActiveProgramEXT = procedure(_program: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10100   TglCreateShaderProgramEXT = function(_type: GLenum; const _string: PGLchar): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10101
10102   // GL_EXT_shader_image_load_store
10103   TglBindImageTextureEXT = procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10104   TglMemoryBarrierEXT = procedure(barriers: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10105
10106   // GL_EXT_vertex_attrib_64bit
10107   TglVertexAttribL1dEXT = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10108   TglVertexAttribL2dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10109   TglVertexAttribL3dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10110   TglVertexAttribL4dEXT = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10111   TglVertexAttribL1dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10112   TglVertexAttribL2dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10113   TglVertexAttribL3dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10114   TglVertexAttribL4dvEXT = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10115   TglVertexAttribLPointerEXT = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; const pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10116   TglGetVertexAttribLdvEXT = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10117   TglVertexArrayVertexAttribLOffsetEXT = procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; type_: GLenum; stride: GLsizei; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10118
10119   // GL_IBM_multimode_draw_arrays
10120   TglMultiModeDrawArraysIBM = procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10121   TglMultiModeDrawElementsIBM = procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10122
10123   // GL_IBM_vertex_array_lists
10124   TglColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10125   TglSecondaryColorPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10126   TglEdgeFlagPointerListIBM = procedure(stride: GLint; const _pointer: PGLboolean; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10127   TglFogCoordPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10128   TglIndexPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10129   TglNormalPointerListIBM = procedure(_type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10130   TglTexCoordPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10131   TglVertexPointerListIBM = procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: PGLvoid; ptrstride: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10132
10133   // GL_INGR_blend_func_separate
10134   TglBlendFuncSeparateINGR = procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10135
10136   // GL_INTEL_parallel_arrays
10137   TglVertexPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10138   TglNormalPointervINTEL = procedure(_type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10139   TglColorPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10140   TglTexCoordPointervINTEL = procedure(size: GLint; _type: GLenum; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10141
10142   // GL_MESA_resize_buffers
10143   TglResizeBuffersMESA = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10144
10145   // GL_MESA_window_pos
10146   TglWindowPos2dMESA = procedure(x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10147   TglWindowPos2dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10148   TglWindowPos2fMESA = procedure(x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10149   TglWindowPos2fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10150   TglWindowPos2iMESA = procedure(x: GLint; y: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10151   TglWindowPos2ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10152   TglWindowPos2sMESA = procedure(x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10153   TglWindowPos2svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10154   TglWindowPos3dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10155   TglWindowPos3dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10156   TglWindowPos3fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10157   TglWindowPos3fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10158   TglWindowPos3iMESA = procedure(x: GLint; y: GLint; z: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10159   TglWindowPos3ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10160   TglWindowPos3sMESA = procedure(x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10161   TglWindowPos3svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10162   TglWindowPos4dMESA = procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10163   TglWindowPos4dvMESA = procedure(const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10164   TglWindowPos4fMESA = procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10165   TglWindowPos4fvMESA = procedure(const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10166   TglWindowPos4iMESA = procedure(x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10167   TglWindowPos4ivMESA = procedure(const v: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10168   TglWindowPos4sMESA = procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10169   TglWindowPos4svMESA = procedure(const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10170
10171   // GL_NV_evaluators
10172   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}
10173   TglMapParameterivNV = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10174   TglMapParameterfvNV = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10175   TglGetMapControlPointsNV = procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10176   TglGetMapParameterivNV = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10177   TglGetMapParameterfvNV = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10178   TglGetMapAttribParameterivNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10179   TglGetMapAttribParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10180   TglEvalMapsNV = procedure(target: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10181
10182   // GL_NV_fence
10183   TglDeleteFencesNV = procedure(n: GLsizei; const fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10184   TglGenFencesNV = procedure(n: GLsizei; fences: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10185   TglIsFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10186   TglTestFenceNV = function(fence: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10187   TglGetFenceivNV = procedure(fence: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10188   TglFinishFenceNV = procedure(fence: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10189   TglSetFenceNV = procedure(fence: GLuint; condition: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10190
10191   // GL_NV_fragment_program
10192   TglProgramNamedParameter4fNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10193   TglProgramNamedParameter4dNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10194   TglProgramNamedParameter4fvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10195   TglProgramNamedParameter4dvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10196   TglGetProgramNamedParameterfvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10197   TglGetProgramNamedParameterdvNV = procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10198
10199   // GL_NV_half_float
10200   TglVertex2hNV = procedure(x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10201   TglVertex2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10202   TglVertex3hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10203   TglVertex3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10204   TglVertex4hNV = procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10205   TglVertex4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10206   TglNormal3hNV = procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10207   TglNormal3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10208   TglColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10209   TglColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10210   TglColor4hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10211   TglColor4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10212   TglTexCoord1hNV = procedure(s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10213   TglTexCoord1hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10214   TglTexCoord2hNV = procedure(s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10215   TglTexCoord2hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10216   TglTexCoord3hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10217   TglTexCoord3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10218   TglTexCoord4hNV = procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10219   TglTexCoord4hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10220   TglMultiTexCoord1hNV = procedure(target: GLenum; s: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10221   TglMultiTexCoord1hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10222   TglMultiTexCoord2hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10223   TglMultiTexCoord2hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10224   TglMultiTexCoord3hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10225   TglMultiTexCoord3hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10226   TglMultiTexCoord4hNV = procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10227   TglMultiTexCoord4hvNV = procedure(target: GLenum; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10228   TglFogCoordhNV = procedure(fog: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10229   TglFogCoordhvNV = procedure(const fog: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10230   TglSecondaryColor3hNV = procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10231   TglSecondaryColor3hvNV = procedure(const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10232   TglVertexWeighthNV = procedure(weight: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10233   TglVertexWeighthvNV = procedure(const weight: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10234   TglVertexAttrib1hNV = procedure(index: GLuint; x: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10235   TglVertexAttrib1hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10236   TglVertexAttrib2hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10237   TglVertexAttrib2hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10238   TglVertexAttrib3hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10239   TglVertexAttrib3hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10240   TglVertexAttrib4hNV = procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10241   TglVertexAttrib4hvNV = procedure(index: GLuint; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10242   TglVertexAttribs1hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10243   TglVertexAttribs2hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10244   TglVertexAttribs3hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10245   TglVertexAttribs4hvNV = procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10246
10247   // GL_NV_occlusion_query
10248   TglGenOcclusionQueriesNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10249   TglDeleteOcclusionQueriesNV = procedure(n: GLsizei; const ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10250   TglIsOcclusionQueryNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10251   TglBeginOcclusionQueryNV = procedure(id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10252   TglEndOcclusionQueryNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10253   TglGetOcclusionQueryivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10254   TglGetOcclusionQueryuivNV = procedure(id: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10255
10256   // GL_NV_pixel_data_range
10257   TglPixelDataRangeNV = procedure(target: GLenum; length: GLsizei; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10258   TglFlushPixelDataRangeNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10259
10260   // GL_NV_point_sprite
10261   TglPointParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10262   TglPointParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10263
10264   // GL_NV_primitive_restart
10265   TglPrimitiveRestartNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10266   TglPrimitiveRestartIndexNV = procedure(index: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10267
10268   // GL_NV_register_combiners
10269   TglCombinerParameterfvNV = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10270   TglCombinerParameterfNV = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10271   TglCombinerParameterivNV = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10272   TglCombinerParameteriNV = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10273   TglCombinerInputNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10274   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}
10275   TglFinalCombinerInputNV = procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10276   TglGetCombinerInputParameterfvNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10277   TglGetCombinerInputParameterivNV = procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10278   TglGetCombinerOutputParameterfvNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10279   TglGetCombinerOutputParameterivNV = procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10280   TglGetFinalCombinerInputParameterfvNV = procedure(variable: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10281   TglGetFinalCombinerInputParameterivNV = procedure(variable: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10282
10283   // GL_NV_register_combiners2
10284   TglCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10285   TglGetCombinerStageParameterfvNV = procedure(stage: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10286
10287   // GL_NV_vertex_array_range
10288   TglFlushVertexArrayRangeNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10289   TglVertexArrayRangeNV = procedure(length: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10290
10291   // GL_NV_vertex_program
10292   TglAreProgramsResidentNV = function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10293   TglBindProgramNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10294   TglDeleteProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10295   TglExecuteProgramNV = procedure(target: GLenum; id: GLuint; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10296   TglGenProgramsNV = procedure(n: GLsizei; programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10297   TglGetProgramParameterdvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10298   TglGetProgramParameterfvNV = procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10299   TglGetProgramivNV = procedure(id: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10300   TglGetProgramStringNV = procedure(id: GLuint; pname: GLenum; _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10301   TglGetTrackMatrixivNV = procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10302   TglGetVertexAttribdvNV = procedure(index: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10303   TglGetVertexAttribfvNV = procedure(index: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10304   TglGetVertexAttribivNV = procedure(index: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10305   TglGetVertexAttribPointervNV = procedure(index: GLuint; pname: GLenum; _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10306   TglIsProgramNV = function(id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10307   TglLoadProgramNV = procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10308   TglProgramParameter4dNV = procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10309   TglProgramParameter4dvNV = procedure(target: GLenum; index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10310   TglProgramParameter4fNV = procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10311   TglProgramParameter4fvNV = procedure(target: GLenum; index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10312   TglProgramParameters4dvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10313   TglProgramParameters4fvNV = procedure(target: GLenum; index: GLuint; count: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10314   TglRequestResidentProgramsNV = procedure(n: GLsizei; const programs: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10315   TglTrackMatrixNV = procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10316   TglVertexAttribPointerNV = procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10317   TglVertexAttrib1dNV = procedure(index: GLuint; x: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10318   TglVertexAttrib1dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10319   TglVertexAttrib1fNV = procedure(index: GLuint; x: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10320   TglVertexAttrib1fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10321   TglVertexAttrib1sNV = procedure(index: GLuint; x: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10322   TglVertexAttrib1svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10323   TglVertexAttrib2dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10324   TglVertexAttrib2dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10325   TglVertexAttrib2fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10326   TglVertexAttrib2fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10327   TglVertexAttrib2sNV = procedure(index: GLuint; x: GLshort; y: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10328   TglVertexAttrib2svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10329   TglVertexAttrib3dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10330   TglVertexAttrib3dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10331   TglVertexAttrib3fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10332   TglVertexAttrib3fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10333   TglVertexAttrib3sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10334   TglVertexAttrib3svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10335   TglVertexAttrib4dNV = procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10336   TglVertexAttrib4dvNV = procedure(index: GLuint; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10337   TglVertexAttrib4fNV = procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10338   TglVertexAttrib4fvNV = procedure(index: GLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10339   TglVertexAttrib4sNV = procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10340   TglVertexAttrib4svNV = procedure(index: GLuint; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10341   TglVertexAttrib4ubNV = procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10342   TglVertexAttrib4ubvNV = procedure(index: GLuint; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10343   TglVertexAttribs1dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10344   TglVertexAttribs1fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10345   TglVertexAttribs1svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10346   TglVertexAttribs2dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10347   TglVertexAttribs2fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10348   TglVertexAttribs2svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10349   TglVertexAttribs3dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10350   TglVertexAttribs3fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10351   TglVertexAttribs3svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10352   TglVertexAttribs4dvNV = procedure(index: GLuint; count: GLsizei; const v: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10353   TglVertexAttribs4fvNV = procedure(index: GLuint; count: GLsizei; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10354   TglVertexAttribs4svNV = procedure(index: GLuint; count: GLsizei; const v: PGLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10355   TglVertexAttribs4ubvNV = procedure(index: GLuint; count: GLsizei; const v: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10356
10357   // GL_NV_depth_buffer_float
10358   TglDepthRangedNV = procedure(n: GLdouble; f: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10359   TglClearDepthdNV = procedure(d: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10360   TglDepthBoundsdNV = procedure(zmin: GLdouble; zmax: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10361
10362   // GL_NV_framebuffer_multisample_coverage
10363   TglRenderbufferStorageMultsampleCoverageNV = procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10364
10365   // GL_NV_geometry_program4
10366   TglProgramVertexLimitNV = procedure(target: GLenum; limit: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10367
10368   // GL_NV_gpu_program4
10369   TglProgramLocalParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10370   TglProgramLocalParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10371   TglProgramLocalParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10372   TglProgramLocalParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10373   TglProgramLocalParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10374   TglProgramLocalParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10375   TglProgramEnvParameterI4iNV = procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10376   TglProgramEnvParameterI4ivNV = procedure(target: GLenum; index: GLuint; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10377   TglProgramEnvParametersI4ivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10378   TglProgramEnvParameterI4uiNV = procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10379   TglProgramEnvParameterI4uivNV = procedure(target: GLenum; index: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10380   TglProgramEnvParametersI4uivNV = procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10381   TglGetProgramLocalParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10382   TglGetProgramLocalParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10383   TglGetProgramEnvParameterIivNV = procedure(target: GLenum; index: GLuint; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10384   TglGetProgramEnvParameterIuivNV = procedure(target: GLenum; index: GLuint; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10385
10386   // GL_NV_parameter_buffer_object
10387   TglProgramBufferParametersfvNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10388   TglProgramBufferParametersIivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLsizei; const params: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10389   TglProgramBufferParametersIuivNV = procedure(target: GLenum; buffer: GLuint; index: GLuint; count: GLuint; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10390
10391   // GL_NV_transform_feedback
10392   TglBeginTransformFeedbackNV = procedure(primitiveMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10393   TglEndTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10394   TglTransformFeedbackAttribsNV = procedure(count: GLsizei; const attribs: GLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10395   TglBindBufferRangeNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10396   TglBindBufferOffsetNV = procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10397   TglBindBufferBaseNV = procedure(target: GLenum; index: GLuint; buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10398   TglTransformFeedbackVaryingsNV = procedure(program_: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10399   TglActiveVaryingNV = procedure(program_: GLuint; const name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10400   TglGetVaryingLocationNV = function(program_: GLuint; const name: PGLchar): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10401   TglGetActiveVaryingNV = procedure(program_: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10402   TglGetTransformFeedbackVaryingNV = procedure(program_: GLuint; index: GLuint; location: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10403   TglTransformFeedbackStreamAttribsNV = procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10404
10405   // GL_NV_conditional_render
10406   TglBeginConditionalRenderNV = procedure(id: GLuint; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10407   TglEndConditionalRenderNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10408
10409   // GL_NV_present_video
10410   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}
10411   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}
10412   TglGetVideoivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10413   TglGetVideouivNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10414   TglGetVideoi64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10415   TglGetVideoui64vNV = procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10416 //  TglVideoParameterivNV = procedure(video_slot: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10417
10418   // GL_NV_explicit_multisample
10419   TglGetMultisamplefvNV = procedure (pname: GLenum; index: GLuint; val: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10420   TglSampleMaskIndexedNV = procedure (index: GLuint; mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10421   TglTexRenderbufferNV = procedure (target: GLenum; renderbuffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10422
10423   // GL_NV_transform_feedback2
10424   TglBindTransformFeedbackNV = procedure(target: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10425   TglDeleteTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10426   TglGenTransformFeedbacksNV = procedure(n: GLsizei; ids: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10427   TglIsTransformFeedbackNV = function (id: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10428   TglPauseTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10429   TglResumeTransformFeedbackNV = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10430   TglDrawTransformFeedbackNV = procedure(mode: GLenum; id: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10431
10432   // GL_NV_video_capture
10433   TglBeginVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10434   TglBindVideoCaptureStreamBufferNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10435   TglBindVideoCaptureStreamTextureNV = procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10436   TglEndVideoCaptureNV = procedure(video_capture_slot: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10437   TglGetVideoCaptureivNV = procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10438   TglGetVideoCaptureStreamivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10439   TglGetVideoCaptureStreamfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10440   TglGetVideoCaptureStreamdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10441   TglVideoCaptureNV = function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10442   TglVideoCaptureStreamParameterivNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10443   TglVideoCaptureStreamParameterfvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10444   TglVideoCaptureStreamParameterdvNV = procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10445
10446   // GL_NV_copy_image
10447   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}
10448
10449   // GL_NV_shader_buffer_load
10450   TglMakeBufferResidentNV = procedure(target: GLenum; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10451   TglMakeBufferNonResidentNV = procedure(target: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10452   TglIsBufferResidentNV = function(target: GLenum): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10453   TglMakeNamedBufferResidentNV = procedure(buffer: GLuint; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10454   TglMakeNamedBufferNonResidentNV = procedure(buffer: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10455   TglIsNamedBufferResidentNV = function(buffer: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10456   TglGetBufferParameterui64vNV = procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10457   TglGetNamedBufferParameterui64vNV = procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10458   TglGetIntegerui64vNV = procedure(value: GLenum; result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10459   TglUniformui64NV = procedure(location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10460   TglUniformui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10461   TglGetUniformui64vNV = procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10462   TglProgramUniformui64NV = procedure(_program: GLuint; location: GLint; value: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10463   TglProgramUniformui64vNV = procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10464
10465   // GL_NV_vertex_buffer_unified_memory
10466   TglBufferAddressRangeNV = procedure(pname: GLenum; index: GLuint; adress: GLuint64EXT; length: GLsizeiptr); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10467   TglVertexFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10468   TglNormalFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10469   TglColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10470   TglIndexFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10471   TglTexCoordFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10472   TglEdgeFlagFormatNV = procedure(stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10473   TglSecondaryColorFormatNV = procedure(size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10474   TglFogCoordFormatNV = procedure(_type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10475   TglVertexAttribFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10476   TglVertexAttribIFormatNV = procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10477   TglGetIntegerui64i_vNV = procedure(value: GLenum; index: GLuint; Result: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10478
10479   // GL_NV_gpu_program5
10480   TglProgramSubroutineParametersuivNV = procedure(target: GLenum; count: GLsizei; const params: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10481   TglGetProgramSubroutineParameteruivNV = procedure(target: GLenum; index: GLuint; param: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10482
10483   // GL_NV_gpu_shader5
10484   TglUniform1i64NV = procedure(location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10485   TglUniform2i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10486   TglUniform3i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10487   TglUniform4i64NV = procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10488   TglUniform1i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10489   TglUniform2i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10490   TglUniform3i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10491   TglUniform4i64vNV = procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10492   TglUniform1ui64NV = procedure(location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10493   TglUniform2ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10494   TglUniform3ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10495   TglUniform4ui64NV = procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10496   TglUniform1ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10497   TglUniform2ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10498   TglUniform3ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10499   TglUniform4ui64vNV = procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10500   TglGetUniformi64vNV = procedure(program_: GLuint; location: GLint; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10501   TglProgramUniform1i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10502   TglProgramUniform2i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10503   TglProgramUniform3i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10504   TglProgramUniform4i64NV = procedure(program_: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10505   TglProgramUniform1i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10506   TglProgramUniform2i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10507   TglProgramUniform3i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10508   TglProgramUniform4i64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10509   TglProgramUniform1ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10510   TglProgramUniform2ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10511   TglProgramUniform3ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10512   TglProgramUniform4ui64NV = procedure(program_: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10513   TglProgramUniform1ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10514   TglProgramUniform2ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10515   TglProgramUniform3ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10516   TglProgramUniform4ui64vNV = procedure(program_: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10517
10518   // GL_NV_vertex_attrib_integer_64bit
10519   TglVertexAttribL1i64NV = procedure(index: GLuint; x: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10520   TglVertexAttribL2i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10521   TglVertexAttribL3i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10522   TglVertexAttribL4i64NV = procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10523   TglVertexAttribL1i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10524   TglVertexAttribL2i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10525   TglVertexAttribL3i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10526   TglVertexAttribL4i64vNV = procedure(index: GLuint; const v: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10527   TglVertexAttribL1ui64NV = procedure(index: GLuint; x: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10528   TglVertexAttribL2ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10529   TglVertexAttribL3ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10530   TglVertexAttribL4ui64NV = procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10531   TglVertexAttribL1ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10532   TglVertexAttribL2ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10533   TglVertexAttribL3ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10534   TglVertexAttribL4ui64vNV = procedure(index: GLuint; const v: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10535   TglGetVertexAttribLi64vNV = procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10536   TglGetVertexAttribLui64vNV = procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10537   TglVertexAttribLFormatNV = procedure(index: GLuint; size: GLint; type_: GLenum; stride: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10538
10539   // GL_NV_vdpau_interop
10540   TglVDPAUInitNV = procedure(const vdpDevice: PGLvoid; const getProcAddress: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10541   TglVDPAUFiniNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10542   TglVDPAURegisterVideoSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10543   TglVDPAURegisterOutputSurfaceNV = function(vdpSurface: PGLvoid; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10544   TglVDPAUIsSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10545   TglVDPAUUnregisterSurfaceNV = procedure(surface: GLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10546   TglVDPAUGetSurfaceivNV = procedure(surface: GLvdpauSurfaceNV; pname: GLenum; bufSize: GLsizei; length: PGLsizei; values: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10547   TglVDPAUSurfaceAccessNV = procedure(surface: GLvdpauSurfaceNV; access: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10548   TglVDPAUMapSurfacesNV = procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10549   TglVDPAUUnmapSurfacesNV = procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10550
10551   // GL_NV_texture_barrier
10552   TglTextureBarrierNV = procedure; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10553
10554   // (4.3)
10555         // GL_NV_path_rendering
10556   TglGenPathsNV = function(range : GLsizei) : GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10557   TglDeletePathsNV = procedure(path : GLUInt; range : GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10558   TglIsPathNV = function(path : GLUInt) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10559   TglPathCommandsNV = procedure(path : GLUInt; numCommands : GLsizei; const commands : PGLubyte; numCoords : GLsizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10560   TglPathCoordsNV = procedure(path : GLUInt; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10561   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}
10562   TglPathSubCoordsNV = procedure(path : GLUInt; coordStart : GLsizei; numCoords : GLSizei; coordType : GLenum; const coords : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10563   TglPathStringNV = procedure(path : GLUInt; format : GLenum; length : GLsizei; const pathString : PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10564   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}
10565   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}
10566   TglWeightPathsNV = procedure(resultPath : GLUInt; numPaths : GLSizei; const paths : PGLuint; const weights : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10567   TglCopyPathNV = procedure(resultPath : GLUInt; srcPath : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10568   TglInterpolatePathsNV = procedure(resultPath : GLUInt; pathA : GLUInt; pathB : GLUInt; weight : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10569   TglTransformPathNV = procedure(resultPath : GLUInt; srcPath : GLuint; transformType : GLenum; const transformValues : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10570   TglPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10571   TglPathParameteriNV = procedure(path : GLUInt; pname : GLEnum; value : GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10572   TglPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; const value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10573   TglPathParameterfNV = procedure(path : GLUInt; pname : GLEnum; value : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10574   TglPathDashArrayNV = procedure(path : GLUInt; dashCount : GLsizei; const dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10575   TglPathStencilFuncNV = procedure(func : GLenum; ref : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10576   TglPathStencilDepthOffsetNV = procedure(factor : GLfloat; units : GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10577   TglStencilFillPathNV = procedure(path : GLUInt; fillMode : GLenum; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10578   TglStencilStrokePathNV = procedure(path : GLUInt; reference : GLint; mask : GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10579   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}
10580   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}
10581   TglPathCoverDepthFuncNV = procedure(func : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10582   TglPathColorGenNV = procedure(color : GLenum; genMode : GLenum; colorFormat : GLenum; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10583   TglPathTexGenNV = procedure(texCoordSet : GLenum; genMode : GLenum; components : GLint; const coeffs : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10584   TglPathFogGenNV = procedure(genMode : GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10585   TglCoverFillPathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10586   TglCoverStrokePathNV = procedure(path : GLUInt; coverMode : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10587   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}
10588   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}
10589   TglGetPathParameterivNV = procedure(path : GLUInt; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10590   TglGetPathParameterfvNV = procedure(path : GLUInt; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10591   TglGetPathCommandsNV = procedure(path : GLUInt; commands : PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10592   TglGetPathCoordsNV = procedure(path : GLUInt; coords : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10593   TglGetPathDashArrayNV = procedure(path : GLUInt; dashArray : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10594   TglGetPathMetricsNV = procedure(metricQueryMask : GLbitfield; numPaths : GLSizei; pathNameType : GLenum; const paths : PGLvoid; pathBase : GLUInt; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10595   TglGetPathMetricRangeNV = procedure(metricQueryMask : GLbitfield; firstPathName : GLuint; numPaths : GLSizei; stride : GLsizei; metrics : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10596   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}
10597   TglGetPathColorGenivNV = procedure(color : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10598   TglGetPathColorGenfvNV = procedure(color : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10599   TglGetPathTexGenivNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10600   TglGetPathTexGenfvNV = procedure(texCoordSet : GLenum; pname : GLEnum; value : PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10601   TglIsPointInFillPathNV = function(path : GLUInt; mask : GLuint; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10602   TglIsPointInStrokePathNV = function (path : GLUInt; x : GLfloat; y : GLfloat) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10603   TglGetPathLengthNV = function(path : GLUInt; startSegment : GLsizei; numSegments : GLsizei) : GLfloat; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10604   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}
10605
10606   // GL_AMD_pinned_memory
10607
10608   // GL_AMD_stencil_operation_extended
10609   TglStencilOpValueAMD = procedure(face : GLEnum; value : GLUInt); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10610
10611   // GL_AMD_vertex_shader_viewport_index
10612
10613   // GL_AMD_vertex_shader_layer
10614
10615   // GL_NV_bindless_texture
10616   TglGetTextureHandleNV = function(texture : GLuint ) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10617   TglGetTextureSamplerHandleNV = function(texture : GLuint; sampler : GLuint) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10618   TglMakeTextureHandleResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10619   TglMakeTextureHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10620   TglGetImageHandleNV = function(texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10621   TglMakeImageHandleResidentNV = procedure(handle : GLUint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10622   TglMakeImageHandleNonResidentNV = procedure(handle : GLUint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10623   TglUniformHandleui64NV = procedure(location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10624   TglUniformHandleui64vNV = procedure(location : GLint; cowunt : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10625   TglProgramUniformHandleui64NV = procedure(program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10626   TglProgramUniformHandleui64vNV = procedure(program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10627   TglIsTextureHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10628   TglIsImageHandleResidentNV = function(handle : GLUint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10629
10630   // GL_ARB_bindless_texture
10631
10632   TglGetTextureHandleARB = function (texture : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10633   TglGetTextureSamplerHandleARB = function (texture : GLuint; sampler : GLuint) : GLUInt64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10634   TglMakeTextureHandleResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10635   TglMakeTextureHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10636   TglGetImageHandleARB = function (texture : GLuint; level : GLint; layered : GLboolean; layer : GLint; format : GLenum) : GLuint64; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10637   TglMakeImageHandleResidentARB = procedure (handle : GLuint64; access : GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10638   TglMakeImageHandleNonResidentARB = procedure (handle : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10639   TglUniformHandleui64ARB = procedure (location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10640   TglUniformHandleui64vARB = procedure (location : GLint; count : GLsizei; const value : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10641   TglProgramUniformHandleui64ARB = procedure (program_ : GLuint; location : GLint; value : GLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10642   TglProgramUniformHandleui64vARB = procedure (program_ : GLuint; location : GLint; count : GLsizei; const values : PGLuint64); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10643   TglIsTextureHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10644   TglIsImageHandleResidentARB = function (handle : GLuint64) : GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10645   TglVertexAttribL1ui64ARB = procedure (index : GLuint; x : GLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10646   TglVertexAttribL1ui64vARB = procedure (index : GLuint; const v : PGLuint64EXT); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10647   TglGetVertexAttribLui64vARB = procedure (index : GLuint; pname : GLenum; params : PGLuint64EXT ); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10648
10649         // GL_NV_shader_atomic_float
10650
10651         // GL_AMD_query_buffer_object
10652
10653   //
10654
10655   // GL_PGI_misc_hints
10656   TglHintPGI = procedure(target: GLenum; mode: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10657
10658   // GL_SGIS_detail_texture
10659   TglDetailTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10660   TglGetDetailTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10661
10662   // GL_SGIS_fog_function
10663   TglFogFuncSGIS = procedure(n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10664   TglGetFogFuncSGIS = procedure(points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10665
10666   // GL_SGIS_multisample
10667   TglSampleMaskSGIS = procedure(value: GLclampf; invert: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10668   TglSamplePatternSGIS = procedure(pattern: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10669
10670   // GL_SGIS_pixel_texture
10671   TglPixelTexGenParameteriSGIS = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10672   TglPixelTexGenParameterivSGIS = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10673   TglPixelTexGenParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10674   TglPixelTexGenParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10675   TglGetPixelTexGenParameterivSGIS = procedure(pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10676   TglGetPixelTexGenParameterfvSGIS = procedure(pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10677
10678   // GL_SGIS_point_parameters
10679   TglPointParameterfSGIS = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10680   TglPointParameterfvSGIS = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10681
10682   // GL_SGIS_sharpen_texture
10683   TglSharpenTexFuncSGIS = procedure(target: GLenum; n: GLsizei; const points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10684   TglGetSharpenTexFuncSGIS = procedure(target: GLenum; points: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10685
10686   // GL_SGIS_texture4D
10687   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}
10688   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}
10689
10690   // GL_SGIS_texture_color_mask
10691   TglTextureColorMaskSGIS = procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10692
10693   // GL_SGIS_texture_filter4
10694   TglGetTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10695   TglTexFilterFuncSGIS = procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10696
10697   // GL_SGIX_async
10698   TglAsyncMarkerSGIX = procedure(marker: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10699   TglFinishAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10700   TglPollAsyncSGIX = function(markerp: PGLuint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10701   TglGenAsyncMarkersSGIX = function(range: GLsizei): GLuint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10702   TglDeleteAsyncMarkersSGIX = procedure(marker: GLuint; range: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10703   TglIsAsyncMarkerSGIX = function(marker: GLuint): GLboolean; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10704
10705   // GL_SGIX_flush_raster
10706   TglFlushRasterSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10707
10708   // GL_SGIX_fragment_lighting
10709   TglFragmentColorMaterialSGIX = procedure(face: GLenum; mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10710   TglFragmentLightfSGIX = procedure(light: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10711   TglFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10712   TglFragmentLightiSGIX = procedure(light: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10713   TglFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10714   TglFragmentLightModelfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10715   TglFragmentLightModelfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10716   TglFragmentLightModeliSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10717   TglFragmentLightModelivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10718   TglFragmentMaterialfSGIX = procedure(face: GLenum; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10719   TglFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10720   TglFragmentMaterialiSGIX = procedure(face: GLenum; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10721   TglFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10722   TglGetFragmentLightfvSGIX = procedure(light: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10723   TglGetFragmentLightivSGIX = procedure(light: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10724   TglGetFragmentMaterialfvSGIX = procedure(face: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10725   TglGetFragmentMaterialivSGIX = procedure(face: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10726   TglLightEnviSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10727
10728   // GL_SGIX_framezoom
10729   TglFrameZoomSGIX = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10730
10731   // GL_SGIX_igloo_interface
10732   TglIglooInterfaceSGIX = procedure(pname: GLenum; const params: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10733
10734   // GL_SGIX_instruments
10735   TglGetInstrumentsSGIX = function(): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10736   TglInstrumentsBufferSGIX = procedure(size: GLsizei; buffer: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10737   TglPollInstrumentsSGIX = function(marker_p: PGLint): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10738   TglReadInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10739   TglStartInstrumentsSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10740   TglStopInstrumentsSGIX = procedure(marker: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10741
10742   // GL_SGIX_list_priority
10743   TglGetListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10744   TglGetListParameterivSGIX = procedure(list: GLuint; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10745   TglListParameterfSGIX = procedure(list: GLuint; pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10746   TglListParameterfvSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10747   TglListParameteriSGIX = procedure(list: GLuint; pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10748   TglListParameterivSGIX = procedure(list: GLuint; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10749
10750   // GL_SGIX_pixel_texture
10751   TglPixelTexGenSGIX = procedure(mode: GLenum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10752
10753   // GL_SGIX_polynomial_ffd
10754   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}
10755   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}
10756   TglDeformSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10757   TglLoadIdentityDeformationMapSGIX = procedure(mask: GLbitfield); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10758
10759   // GL_SGIX_reference_plane
10760   TglReferencePlaneSGIX = procedure(const equation: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10761
10762   // GL_SGIX_sprite
10763   TglSpriteParameterfSGIX = procedure(pname: GLenum; param: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10764   TglSpriteParameterfvSGIX = procedure(pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10765   TglSpriteParameteriSGIX = procedure(pname: GLenum; param: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10766   TglSpriteParameterivSGIX = procedure(pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10767
10768   // GL_SGIX_tag_sample_buffer
10769   TglTagSampleBufferSGIX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10770
10771   // GL_SGI_color_table
10772   TglColorTableSGI = procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10773   TglColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; const params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10774   TglColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; const params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10775   TglCopyColorTableSGI = procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10776   TglGetColorTableSGI = procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10777   TglGetColorTableParameterfvSGI = procedure(target: GLenum; pname: GLenum; params: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10778   TglGetColorTableParameterivSGI = procedure(target: GLenum; pname: GLenum; params: PGLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10779
10780   // GL_SUNX_constant_data
10781   TglFinishTextureSUNX = procedure(); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10782
10783   // GL_SUN_global_alpha
10784   TglGlobalAlphaFactorbSUN = procedure(factor: GLbyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10785   TglGlobalAlphaFactorsSUN = procedure(factor: GLshort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10786   TglGlobalAlphaFactoriSUN = procedure(factor: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10787   TglGlobalAlphaFactorfSUN = procedure(factor: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10788   TglGlobalAlphaFactordSUN = procedure(factor: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10789   TglGlobalAlphaFactorubSUN = procedure(factor: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10790   TglGlobalAlphaFactorusSUN = procedure(factor: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10791   TglGlobalAlphaFactoruiSUN = procedure(factor: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10792
10793   // GL_SUN_mesh_array
10794   TglDrawMeshArraysSUN = procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10795
10796   // GL_SUN_triangle_list
10797   TglReplacementCodeuiSUN = procedure(code: GLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10798   TglReplacementCodeusSUN = procedure(code: GLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10799   TglReplacementCodeubSUN = procedure(code: GLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10800   TglReplacementCodeuivSUN = procedure(const code: PGLuint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10801   TglReplacementCodeusvSUN = procedure(const code: PGLushort); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10802   TglReplacementCodeubvSUN = procedure(const code: PGLubyte); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10803   TglReplacementCodePointerSUN = procedure(_type: GLenum; stride: GLsizei; const _pointer: PGLvoid); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10804
10805   // GL_SUN_vertex
10806   TglColor4ubVertex2fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10807   TglColor4ubVertex2fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10808   TglColor4ubVertex3fSUN = procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10809   TglColor4ubVertex3fvSUN = procedure(const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10810   TglColor3fVertex3fSUN = procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10811   TglColor3fVertex3fvSUN = procedure(const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10812   TglNormal3fVertex3fSUN = procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10813   TglNormal3fVertex3fvSUN = procedure(const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10814   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}
10815   TglColor4fNormal3fVertex3fvSUN = procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10816   TglTexCoord2fVertex3fSUN = procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10817   TglTexCoord2fVertex3fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10818   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}
10819   TglTexCoord4fVertex4fvSUN = procedure(const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10820   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}
10821   TglTexCoord2fColor4ubVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10822   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}
10823   TglTexCoord2fColor3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10824   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}
10825   TglTexCoord2fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10826   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}
10827   TglTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10828   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}
10829   TglTexCoord4fColor4fNormal3fVertex4fvSUN = procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10830   TglReplacementCodeuiVertex3fSUN = procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10831   TglReplacementCodeuiVertex3fvSUN = procedure(const rc: PGLuint; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10832   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}
10833   TglReplacementCodeuiColor4ubVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10834   TglReplacementCodeuiColor3fVertex3fSUN = procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10835   TglReplacementCodeuiColor3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10836   TglReplacementCodeuiNormal3fVertex3fSUN = procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10837   TglReplacementCodeuiNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10838   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}
10839   TglReplacementCodeuiColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10840   TglReplacementCodeuiTexCoord2fVertex3fSUN = procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10841   TglReplacementCodeuiTexCoord2fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10842   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}
10843   TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10844   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}
10845   TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
10846
10847   // window support functions
10848 {$IFDEF DGL_WIN}
10849   TwglGetProcAddress = function(ProcName: PAnsiChar): Pointer; stdcall;
10850   TwglCopyContext = function(p1: HGLRC; p2: HGLRC; p3: Cardinal): BOOL; stdcall;
10851   TwglCreateContext = function(DC: HDC): HGLRC; stdcall;
10852   TwglCreateLayerContext = function(p1: HDC; p2: Integer): HGLRC; stdcall;
10853   TwglDeleteContext = function(p1: HGLRC): BOOL; stdcall;
10854   TwglDescribeLayerPlane = function(p1: HDC; p2, p3: Integer; p4: Cardinal; p5: PLayerPlaneDescriptor): BOOL; stdcall;
10855   TwglGetCurrentContext = function: HGLRC; stdcall;
10856   TwglGetCurrentDC = function: HDC; stdcall;
10857   TwglGetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10858   TwglMakeCurrent = function(DC: HDC; p2: HGLRC): BOOL; stdcall;
10859   TwglRealizeLayerPalette = function(p1: HDC; p2: Integer; p3: BOOL): BOOL; stdcall;
10860   TwglSetLayerPaletteEntries = function(p1: HDC; p2, p3, p4: Integer; var pcr): Integer; stdcall;
10861   TwglShareLists = function(p1, p2: HGLRC): BOOL; stdcall;
10862   TwglSwapLayerBuffers = function(p1: HDC; p2: Cardinal): BOOL; stdcall;
10863   TwglSwapMultipleBuffers = function(p1: UINT; const p2: PWGLSWAP): DWORD; stdcall;
10864   TwglUseFontBitmapsA = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10865   TwglUseFontBitmapsW = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10866   TwglUseFontBitmaps = function(DC: HDC; p2, p3, p4: DWORD): BOOL; stdcall;
10867
10868   TwglUseFontOutlinesA = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10869   TwglUseFontOutlinesW = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10870   TwglUseFontOutlines = function(p1: HDC; p2, p3, p4: DWORD; p5, p6: Single; p7: Integer; p8: PGlyphMetricsFloat): BOOL; stdcall;
10871
10872
10873   // WGL_ARB_buffer_region
10874   TwglCreateBufferRegionARB = function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall;
10875   TwglDeleteBufferRegionARB = procedure(hRegion: THandle); stdcall;
10876   TwglSaveBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): Boolean; stdcall;
10877   TwglRestoreBufferRegionARB = function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): Boolean; stdcall;
10878
10879   // WGL_ARB_extensions_string
10880   TwglGetExtensionsStringARB = function(hdc: HDC): PAnsiChar; stdcall;
10881
10882   // WGL_ARB_make_current_read
10883   TwglMakeContextCurrentARB = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10884   TwglGetCurrentReadDCARB = function(): HDC; stdcall;
10885
10886   // WGL_ARB_pbuffer
10887   TwglCreatePbufferARB = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFERARB; stdcall;
10888   TwglGetPbufferDCARB = function(hPbuffer: HPBUFFERARB): HDC; stdcall;
10889   TwglReleasePbufferDCARB = function(hPbuffer: HPBUFFERARB; hDC: HDC): GLint; stdcall;
10890   TwglDestroyPbufferARB = function(hPbuffer: HPBUFFERARB): Boolean; stdcall;
10891   TwglQueryPbufferARB = function(hPbuffer: HPBUFFERARB; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10892
10893   // WGL_ARB_pixel_format
10894   TwglGetPixelFormatAttribivARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10895   TwglGetPixelFormatAttribfvARB = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10896   TwglChoosePixelFormatARB = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall;
10897
10898   // WGL_ARB_color_buffer_float
10899   TwglClampColorARB = procedure(target: GLenum; clamp: GLenum); stdcall;
10900
10901   // WGL_ARB_render_texture
10902   TwglBindTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10903   TwglReleaseTexImageARB = function(hPbuffer: HPBUFFERARB; iBuffer: GLint): Boolean; stdcall;
10904   TwglSetPbufferAttribARB = function(hPbuffer: HPBUFFERARB; const piAttribList: PGLint): Boolean; stdcall;
10905
10906   // WGL_ARB_create_context
10907   TwglCreateContextAttribsARB = function(hDC: HDC; hShareContext: HGLRC; const attribList: PGLint): HGLRC; stdcall;
10908
10909   // WGL_AMD_gpu_association
10910   TwglGetGPUIDsAMD = function(maxCount: Cardinal; ids: PCardinal): Cardinal; stdcall;
10911   TwglGetGPUInfoAMD = function(id: Cardinal; property_: Integer; dataType: GLenum; size: Cardinal; data: Pointer): Integer; stdcall;
10912   TwglGetContextGPUIDAMD = function(hglrc: HGLRC): Cardinal; stdcall;
10913   TwglCreateAssociatedContextAMD = function(id: Cardinal): HGLRC; stdcall;
10914   TwglCreateAssociatedContextAttribsAMD = function(id: Cardinal; hShareContext: HGLRC; const attribList: PInteger): HGLRC; stdcall;
10915   TwglDeleteAssociatedContextAMD = function(hglrc: HGLRC): Boolean; stdcall;
10916   TwglMakeAssociatedContextCurrentAMD = function(hglrc: HGLRC): Boolean; stdcall;
10917   TwglGetCurrentAssociatedContextAMD = function(): HGLRC; stdcall;
10918   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;
10919
10920   // WGL_EXT_display_color_table
10921   TwglCreateDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10922   TwglLoadDisplayColorTableEXT = function(const table: PGLushort; length: GLuint): GLboolean; stdcall;
10923   TwglBindDisplayColorTableEXT = function(id: GLushort): GLboolean; stdcall;
10924   TwglDestroyDisplayColorTableEXT = procedure(id: GLushort); stdcall;
10925
10926   // WGL_EXT_extensions_string
10927   TwglGetExtensionsStringEXT = function(): PAnsiChar; stdcall;
10928
10929   // WGL_EXT_make_current_read
10930   TwglMakeContextCurrentEXT = function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): Boolean; stdcall;
10931   TwglGetCurrentReadDCEXT = function(): HDC; stdcall;
10932
10933   // WGL_EXT_pbuffer
10934   TwglCreatePbufferEXT = function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): HPBUFFEREXT; stdcall;
10935   TwglGetPbufferDCEXT = function(hPbuffer: HPBUFFEREXT): HDC; stdcall;
10936   TwglReleasePbufferDCEXT = function(hPbuffer: HPBUFFEREXT; hDC: HDC): GLint; stdcall;
10937   TwglDestroyPbufferEXT = function(hPbuffer: HPBUFFEREXT): Boolean; stdcall;
10938   TwglQueryPbufferEXT = function(hPbuffer: HPBUFFEREXT; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10939
10940   // WGL_EXT_pixel_format
10941   TwglGetPixelFormatAttribivEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): Boolean; stdcall;
10942   TwglGetPixelFormatAttribfvEXT = function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): Boolean; stdcall;
10943   TwglChoosePixelFormatEXT = function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): Boolean; stdcall;
10944
10945   // WGL_EXT_swap_control
10946   TwglSwapIntervalEXT = function(interval: GLint): Boolean; stdcall;
10947   TwglGetSwapIntervalEXT = function(): GLint; stdcall;
10948
10949   // WGL_I3D_digital_video_control
10950   TwglGetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10951   TwglSetDigitalVideoParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10952
10953   // WGL_I3D_gamma
10954   TwglGetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; piValue: PGLint): Boolean; stdcall;
10955   TwglSetGammaTableParametersI3D = function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): Boolean; stdcall;
10956   TwglGetGammaTableI3D = function(hDC: HDC; iEntries: GLint; puRed: PGLushort; puGreen: PGLushort; puBlue: PGLushort): Boolean; stdcall;
10957   TwglSetGammaTableI3D = function(hDC: HDC; iEntries: GLint; const puRed: PGLushort; const puGreen: PGLushort; const puBlue: PGLushort): Boolean; stdcall;
10958
10959   // WGL_I3D_genlock
10960   TwglEnableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10961   TwglDisableGenlockI3D = function(hDC: HDC): Boolean; stdcall;
10962   TwglIsEnabledGenlockI3D = function(hDC: HDC; pFlag: Boolean): Boolean; stdcall;
10963   TwglGenlockSourceI3D = function(hDC: HDC; uSource: GLuint): Boolean; stdcall;
10964   TwglGetGenlockSourceI3D = function(hDC: HDC; uSource: PGLuint): Boolean; stdcall;
10965   TwglGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: GLuint): Boolean; stdcall;
10966   TwglGetGenlockSourceEdgeI3D = function(hDC: HDC; uEdge: PGLuint): Boolean; stdcall;
10967   TwglGenlockSampleRateI3D = function(hDC: HDC; uRate: GLuint): Boolean; stdcall;
10968   TwglGetGenlockSampleRateI3D = function(hDC: HDC; uRate: PGLuint): Boolean; stdcall;
10969   TwglGenlockSourceDelayI3D = function(hDC: HDC; uDelay: GLuint): Boolean; stdcall;
10970   TwglGetGenlockSourceDelayI3D = function(hDC: HDC; uDelay: PGLuint): Boolean; stdcall;
10971   TwglQueryGenlockMaxSourceDelayI3D = function(hDC: HDC; uMaxLineDelay: PGLuint; uMaxPixelDelay: PGLuint): Boolean; stdcall;
10972
10973   // WGL_I3D_image_buffer
10974   TwglCreateImageBufferI3D = function(hDC: HDC; dwSize: GLuint; uFlags: GLuint): GLvoid; stdcall;
10975   TwglDestroyImageBufferI3D = function(hDC: HDC; pAddress: GLvoid): Boolean; stdcall;
10976   TwglAssociateImageBufferEventsI3D = function(hDC: HDC; const pEvent: THandle; const pAddress: PGLvoid; const pSize: PGLuint; count: GLuint): Boolean; stdcall;
10977   TwglReleaseImageBufferEventsI3D = function(hDC: HDC; const pAddress: PGLvoid; count: GLuint): Boolean; stdcall;
10978
10979   // WGL_I3D_swap_frame_lock
10980   TwglEnableFrameLockI3D = function(): Boolean; stdcall;
10981   TwglDisableFrameLockI3D = function(): Boolean; stdcall;
10982   TwglIsEnabledFrameLockI3D = function(pFlag: Boolean): Boolean; stdcall;
10983   TwglQueryFrameLockMasterI3D = function(pFlag: Boolean): Boolean; stdcall;
10984
10985   // WGL_I3D_swap_frame_usage
10986   TwglGetFrameUsageI3D = function(pUsage: PGLfloat): Boolean; stdcall;
10987   TwglBeginFrameTrackingI3D = function(): Boolean; stdcall;
10988   TwglEndFrameTrackingI3D = function(): Boolean; stdcall;
10989   TwglQueryFrameTrackingI3D = function(pFrameCount: PGLuint; pMissedFrames: PGLuint; pLastMissedUsage: PGLfloat): Boolean; stdcall;
10990
10991   // WGL_NV_vertex_array_range
10992   TwglAllocateMemoryNV = procedure(size: GLsizei; readfreq: GLfloat; writefreq: GLfloat; priority: GLfloat); stdcall;
10993   TwglFreeMemoryNV = procedure(_pointer: Pointer); stdcall;
10994
10995   // WGL_NV_present_video
10996   TwglEnumerateVideoDevicesNV = function(hdc: HDC; phDeviceList: PHVIDEOOUTPUTDEVICENV): Integer; stdcall;
10997   TwglBindVideoDeviceNV = function(hd: HDC; uVideoSlot: Cardinal; hVideoDevice: HVIDEOOUTPUTDEVICENV; piAttribList: PInteger): Boolean; stdcall;
10998   TwglQueryCurrentContextNV = function(iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
10999
11000   // WGL_NV_video_output
11001   TwglGetVideoDeviceNV = function(hDC: HDC; numDevices: Integer; hVideoDevice: PHPVIDEODEV): Boolean; stdcall;
11002   TwglReleaseVideoDeviceNV = function(hVideoDevice: HPVIDEODEV): Boolean; stdcall;
11003   TwglBindVideoImageNV = function(hVideoDevice: HPVIDEODEV; hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11004   TwglReleaseVideoImageNV = function(hPbuffer: HPBUFFERARB; iVideoBuffer: Integer): Boolean; stdcall;
11005   TwglSendPbufferToVideoNV = function(hPbuffer: HPBUFFERARB; iBufferType: Integer; pulCounterPbuffer: PCardinal; bBlock: Boolean): Boolean; stdcall;
11006   TwglGetVideoInfoNV = function(hpVideoDevice: HPVIDEODEV; pulCounterOutputPbuffer: PCardinal; pulCounterOutputVideo: PCardinal): Boolean; stdcall;
11007
11008   // WGL_NV_swap_group
11009   TwglJoinSwapGroupNV = function(hDC: HDC; group: GLuint): Boolean; stdcall;
11010   TwglBindSwapBarrierNV = function(group: GLuint; barrier: GLuint): Boolean; stdcall;
11011   TwglQuerySwapGroupNV = function(hDC: HDC; group: PGLuint; barrier: PGLuint): Boolean; stdcall;
11012   TwglQueryMaxSwapGroupsNV = function(hDC: HDC; mxGroups: PGLuint; maxBarriers: PGLuint): Boolean; stdcall;
11013   TwglQueryFrameCountNV = function(hDC: HDC; count: PGLuint): Boolean; stdcall;
11014   TwglResetFrameCountNV = function(hDC: HDC): Boolean; stdcall;
11015
11016   // WGL_NV_gpu_affinity
11017   TwglEnumGpusNV = function(iGpuIndex: Cardinal; phGpu: PHGPUNV): Boolean; stdcall;
11018   TwglEnumGpuDevicesNV = function(hGpu: HGPUNV; iDeviceIndex: Cardinal; lpGpuDevice: PGPU_DEVICE): Boolean; stdcall;
11019   TwglCreateAffinityDCNV = function(const phGpuList: PHGPUNV): HDC; stdcall;
11020   TwglEnumGpusFromAffinityDCNV = function(hAffinityDC: HDC; iGpuIndex: Cardinal; hGpu: PHGPUNV): Boolean; stdcall;
11021   TwglDeleteDCNV = function(hDC: HDC): Boolean; stdcall;
11022
11023   // WGL_NV_video_capture
11024   TwglBindVideoCaptureDeviceNV = function(uVideoSlot: Cardinal; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11025   TwglEnumerateVideoCaptureDevicesNV = function(hDc: HDC; phDeviceList: PHVIDEOINPUTDEVICENV): Cardinal; stdcall;
11026   TwglLockVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11027   TwglQueryVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV; iAttribute: Integer; piValue: PInteger): Boolean; stdcall;
11028   TwglReleaseVideoCaptureDeviceNV = function(hDc: HDC; hDevice: HVIDEOINPUTDEVICENV): Boolean; stdcall;
11029
11030   // WGL_NV_copy_image
11031   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;
11032
11033   // WGL_NV_DX_interop
11034   TwglDXSetResourceShareHandleNV = function(dxObject : PGLVoid; hareHandle : Cardinal) : Boolean; stdcall;
11035   TwglDXOpenDeviceNV = function(dxDevice : PGLVoid) : Cardinal; stdcall;
11036   TwglDXCloseDeviceNV = function(hDevice : Cardinal) : Boolean; stdcall;
11037   TwglDXRegisterObjectNV = function(hDevice : Cardinal; dxObject : PGLVoid; name : GLUInt; _type : TGLEnum; access : TGLenum) : Cardinal; stdcall;
11038   TwglDXUnregisterObjectNV = function(hDevice : Cardinal; hObject : Cardinal) : Boolean; stdcall;
11039   TwglDXObjectAccessNV = function(hObject : Cardinal; access : GLenum) : Boolean; stdcall;
11040   TwglDXLockObjectsNV = function(hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11041   TwglDXUnlockObjectsNV = function (hDevice : Cardinal; count : GLint; hObjects : PCardinal) : Boolean; stdcall;
11042
11043   // WGL_OML_sync_control
11044   TwglGetSyncValuesOML = function(hdc: HDC; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11045   TwglGetMscRateOML = function(hdc: HDC; numerator: PGLint; denominator: PGLint): Boolean; stdcall;
11046   TwglSwapBuffersMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11047   TwglSwapLayerBuffersMscOML = function(hdc: HDC; fuPlanes: GLint; target_msc: GLint64; divisor: GLint64; remainder: GLint64): GLint64; stdcall;
11048   TwglWaitForMscOML = function(hdc: HDC; target_msc: GLint64; divisor: GLint64; remainder: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11049   TwglWaitForSbcOML = function(hdc: HDC; target_sbc: GLint64; ust: PGLint64; msc: PGLint64; sbc: PGLint64): Boolean; stdcall;
11050
11051   // WGL_3DL_stereo_control
11052   TwglSetStereoEmitterState3DL = function(hDC: HDC; uState: UINT): Boolean; stdcall;
11053
11054   // WIN_draw_range_elements
11055   TglDrawRangeElementsWIN = procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall;
11056
11057   // WIN_swap_hint
11058   TglAddSwapHintRectWIN = procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
11059 {$ENDIF}
11060
11061 {$IFDEF DGL_LINUX}
11062   TglXChooseVisual = function(dpy: PDisplay; screen: GLint; attribList: PGLint): PXVisualInfo; cdecl;
11063   TglXCopyContext = procedure(dpy: PDisplay; src: GLXContext; dst: GLXContext; mask: GLuint); cdecl;
11064   TglXCreateContext = function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: GLboolean): GLXContext; cdecl;
11065   TglXCreateGLXPixmap = function(dpy: PDisplay; vis: PXVisualInfo; pixmap: Pixmap): GLXPixmap cdecl;
11066   TglXDestroyContext = procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
11067   TglXDestroyGLXPixmap = procedure(dpy : PDisplay; pix: GLXPixmap); cdecl;
11068   TglXGetConfig = function(dpy : PDisplay; vis: PXVisualInfo; attrib: GLint; value: PGLint): GLint; cdecl;
11069   TglXGetCurrentContext = function: GLXContext cdecl;
11070   TglXGetCurrentDrawable = function: GLXDrawable cdecl;
11071   TglXIsDirect = function(dpy: PDisplay; ctx: GLXContext): glboolean; cdecl;
11072   TglXMakeCurrent = function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): GLboolean cdecl;
11073   TglXQueryExtension = function(dpy: PDisplay; errorBase: PGLint; eventBase: PGLint): GLboolean; cdecl;
11074   TglXQueryVersion = function(dpy: PDisplay; major: PGLint; minor: PGLint): GLboolean cdecl;
11075   TglXSwapBuffers = procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
11076   TglXUseXFont = procedure(font: Font; first: GLint; count: GLint; listBase: GLint); cdecl;
11077   TglXWaitGL = procedure; cdecl;
11078   TglXWaitX = procedure; cdecl;
11079
11080   TglXGetClientString = function(dpy: PDisplay; name: GLint): PGLchar; cdecl;
11081   TglXQueryServerString = function(dpy: PDisplay; screen: GLint; name: GLint): PGLchar; cdecl;
11082   TglXQueryExtensionsString = function(dpy: PDisplay; screen: GLint): PGLchar; cdecl;
11083
11084   // GLX_VERSION_1_3
11085   TglXGetFBConfigs = function(dpy: PDisplay; screen: GLint; nelements: PGLint): GLXFBConfig; cdecl;
11086   TglXChooseFBConfig = function(dpy: PDisplay; screen: GLint; attrib_list: PGLint; nelements: PGLint): GLXFBConfig; cdecl;
11087   TglXGetFBConfigAttrib = function(dpy: PDisplay; config: GLXFBConfig; attribute: GLint; value: PGLint): glint; cdecl;
11088   TglXGetVisualFromFBConfig = function(dpy: PDisplay; config: GLXFBConfig) : PXVisualInfo; cdecl;
11089   TglXCreateWindow = function(dpy: PDisplay; config: GLXFBConfig; win: Window; attrib_list: PGLint): GLXWindow; cdecl;
11090   TglXDestroyWindow = procedure(dpy: PDisplay; win: GLXWindow); cdecl;
11091   TglXCreatePixmap = function(dpy: PDisplay; config: GLXFBConfig; pixmap: Pixmap; attrib_list: PGLint): GLXPixmap; cdecl;
11092
11093   TglXDestroyPixmap = procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
11094   TglXCreatePbuffer = function(dpy: PDisplay; config: GLXFBConfig; attrib_list: PGLint): GLXPbuffer; cdecl;
11095   TglXDestroyPbuffer = procedure(dpy: PDisplay; pbuf: GLXPbuffer); cdecl;
11096   TglXQueryDrawable = procedure(dpy: PDisplay; draw: GLXDrawable; attribute: GLint; value: PGLuint); cdecl;
11097   TglXCreateNewContext = function(dpy: PDisplay; config: GLXFBConfig; render_type: GLint; share_list: GLXContext; direct: GLboolean): GLXContext cdecl;
11098   TglXMakeContextCurrent = function(display: PDisplay; draw: GLXDrawable; read_: GLXDrawable; ctx: GLXContext): GLboolean; cdecl;
11099   TglXGetCurrentReadDrawable = function: GLXDrawable; cdecl;
11100   TglXGetCurreentDisplay = function: PDisplay;
11101
11102   TglXQueryContext = function(dpy: PDisplay; ctx: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11103   TglXSelectEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: GLuint); cdecl;
11104   TglXGetSelectedEvent = procedure(dpy: PDisplay; draw: GLXDrawable; event_mask: PGLuint); cdecl;
11105
11106   // GLX_VERSION_1_4
11107   TglXGetProcAddress = function(const name: PAnsiChar): pointer; cdecl;
11108
11109   // GLX_ARB_get_proc_address
11110   TglXGetProcAddressARB = function(const name: PAnsiChar): pointer; cdecl;
11111
11112   // GLX_ARB_create_context
11113   TglXCreateContextAttribsARB = function(dpy: PDisplay; config: GLXFBConfig; share_context: GLXContext; direct: GLboolean; const attrib_list: PGLint): GLXContext; cdecl;
11114
11115   // GLX_EXT_import_context
11116   TglXGetCurrentDisplayEXT = function: PDisplay; cdecl;
11117   TglXQueryContextInfoEXT = function(dpy: PDisplay; context: GLXContext; attribute: GLint; value: PGLint): GLint; cdecl;
11118   TglXGetContextIDEXT = function(const context: GLXContext): GLXContextID; cdecl;
11119   TglXImportContextEXT = function(dpy: PDisplay; contextID: GLXContextID): GLXContext; cdecl;
11120   TglXFreeContextEXT = procedure(dpy: PDisplay; context: GLXContext); cdecl;
11121
11122   // GLX_EXT_texture_from_pixmap
11123   TglXBindTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint; const attrib_list: PGLint); cdecl;
11124   TglXReleaseTexImageEXT = procedure(dpy: PDisplay; drawable: GLXDrawable; buffer: GLint); cdecl;
11125 {$ENDIF}
11126
11127   // GL utility functions and procedures
11128   TgluErrorString = function(errCode: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11129   TgluGetString = function(name: GLEnum): PAnsiChar; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11130   TgluOrtho2D = procedure(left, right, bottom, top: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11131   TgluPerspective = procedure(fovy, aspect, zNear, zFar: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11132   TgluPickMatrix = procedure(x, y, width, height: GLdouble; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11133   TgluLookAt = procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11134   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}
11135   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}
11136   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}
11137   TgluBuild1DMipmaps = function(target: GLEnum; components, width: GLint; format, atype: GLEnum; const data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11138   TgluBuild2DMipmaps = function(target: GLEnum; components, width, height: GLint; format, atype: GLEnum; const Data: Pointer): GLint; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11139   TgluNewQuadric = function: PGLUquadric; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11140   TgluDeleteQuadric = procedure(state: PGLUquadric); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11141   TgluQuadricNormals = procedure(quadObject: PGLUquadric; normals: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11142   TgluQuadricTexture = procedure(quadObject: PGLUquadric; textureCoords: GLboolean); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11143   TgluQuadricOrientation = procedure(quadObject: PGLUquadric; orientation: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11144   TgluQuadricDrawStyle = procedure(quadObject: PGLUquadric; drawStyle: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11145   TgluCylinder = procedure(quadObject: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11146   TgluDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11147   TgluPartialDisk = procedure(quadObject: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11148   TgluSphere = procedure(quadObject: PGLUquadric; radius: GLdouble; slices, stacks: GLint); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11149   TgluQuadricCallback = procedure(quadObject: PGLUquadric; which: GLEnum; fn: TGLUQuadricErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11150   TgluNewTess = function: PGLUtesselator; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11151   TgluDeleteTess = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11152   TgluTessBeginPolygon = procedure(tess: PGLUtesselator; polygon_data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11153   TgluTessBeginContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11154   TgluTessVertex = procedure(tess: PGLUtesselator; const coords: TGLArrayd3; data: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11155   TgluTessEndContour = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11156   TgluTessEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11157   TgluTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11158   TgluTessNormal = procedure(tess: PGLUtesselator; x, y, z: GLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11159   TgluTessCallback = procedure(tess: PGLUtesselator; which: GLEnum; fn: Pointer); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11160   TgluGetTessProperty = procedure(tess: PGLUtesselator; which: GLEnum; value: PGLdouble); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11161   TgluNewNurbsRenderer = function: PGLUnurbs; {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11162   TgluDeleteNurbsRenderer = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11163   TgluBeginSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11164   TgluBeginCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11165   TgluEndCurve = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11166   TgluEndSurface = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11167   TgluBeginTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11168   TgluEndTrim = procedure(nobj: PGLUnurbs); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11169   TgluPwlCurve = procedure(nobj: PGLUnurbs; count: GLint; points: PGLfloat; stride: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11170   TgluNurbsCurve = procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11171   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}
11172   TgluLoadSamplingMatrices = procedure(nobj: PGLUnurbs; const modelMatrix, projMatrix: TGLMatrixf4; const viewport: TVector4i); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11173   TgluNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: GLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11174   TgluGetNurbsProperty = procedure(nobj: PGLUnurbs; aproperty: GLEnum; value: PGLfloat); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11175   TgluNurbsCallback = procedure(nobj: PGLUnurbs; which: GLEnum; fn: TGLUNurbsErrorProc); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11176   TgluBeginPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11177   TgluNextContour = procedure(tess: PGLUtesselator; atype: GLEnum); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11178   TgluEndPolygon = procedure(tess: PGLUtesselator); {$IFDEF DGL_WIN}stdcall; {$ELSE}cdecl; {$ENDIF}
11179
11180 var
11181   // GL_VERSION_1_0
11182   glCullFace: TglCullFace;
11183   glFrontFace: TglFrontFace;
11184   glHint: TglHint;
11185   glLineWidth: TglLineWidth;
11186   glPointSize: TglPointSize;
11187   glPolygonMode: TglPolygonMode;
11188   glScissor: TglScissor;
11189   glTexParameterf: TglTexParameterf;
11190   glTexParameterfv: TglTexParameterfv;
11191   glTexParameteri: TglTexParameteri;
11192   glTexParameteriv: TglTexParameteriv;
11193   glTexImage1D: TglTexImage1D;
11194   glTexImage2D: TglTexImage2D;
11195   glDrawBuffer: TglDrawBuffer;
11196   glClear: TglClear;
11197   glClearColor: TglClearColor;
11198   glClearStencil: TglClearStencil;
11199   glClearDepth: TglClearDepth;
11200   glStencilMask: TglStencilMask;
11201   glColorMask: TglColorMask;
11202   glDepthMask: TglDepthMask;
11203   glDisable: TglDisable;
11204   glEnable: TglEnable;
11205   glFinish: TglFinish;
11206   glFlush: TglFlush;
11207   glBlendFunc: TglBlendFunc;
11208   glLogicOp: TglLogicOp;
11209   glStencilFunc: TglStencilFunc;
11210   glStencilOp: TglStencilOp;
11211   glDepthFunc: TglDepthFunc;
11212   glPixelStoref: TglPixelStoref;
11213   glPixelStorei: TglPixelStorei;
11214   glReadBuffer: TglReadBuffer;
11215   glReadPixels: TglReadPixels;
11216   glGetBooleanv: TglGetBooleanv;
11217   glGetDoublev: TglGetDoublev;
11218   glGetError: TglGetError;
11219   glGetFloatv: TglGetFloatv;
11220   glGetIntegerv: TglGetIntegerv;
11221   glGetString: TglGetString;
11222   glGetTexImage: TglGetTexImage;
11223   glGetTexParameteriv: TglGetTexParameteriv;
11224   glGetTexParameterfv: TglGetTexParameterfv;
11225   glGetTexLevelParameterfv: TglGetTexLevelParameterfv;
11226   glGetTexLevelParameteriv: TglGetTexLevelParameteriv;
11227   glIsEnabled: TglIsEnabled;
11228   glDepthRange: TglDepthRange;
11229   glViewport: TglViewport;
11230
11231   // GL_VERSION_1_1
11232   glDrawArrays: TglDrawArrays;
11233   glDrawElements: TglDrawElements;
11234   glGetPointerv: TglGetPointerv;
11235   glPolygonOffset: TglPolygonOffset;
11236   glCopyTexImage1D: TglCopyTexImage1D;
11237   glCopyTexImage2D: TglCopyTexImage2D;
11238   glCopyTexSubImage1D: TglCopyTexSubImage1D;
11239   glCopyTexSubImage2D: TglCopyTexSubImage2D;
11240   glTexSubImage1D: TglTexSubImage1D;
11241   glTexSubImage2D: TglTexSubImage2D;
11242   glBindTexture: TglBindTexture;
11243   glDeleteTextures: TglDeleteTextures;
11244   glGenTextures: TglGenTextures;
11245 {$ifdef DGL_DEPRECATED}
11246   glAccum: TglAccum;
11247   glAlphaFunc: TglAlphaFunc;
11248   glAreTexturesResident: TglAreTexturesResident;
11249   glArrayElement: TglArrayElement;
11250   glBegin: TglBegin;
11251   glBitmap: TglBitmap;
11252   glCallList: TglCallList;
11253   glCallLists: TglCallLists;
11254   glClearAccum: TglClearAccum;
11255   glClearIndex: TglClearIndex;
11256   glClipPlane: TglClipPlane;
11257   glColor3b: TglColor3b;
11258   glColor3bv: TglColor3bv;
11259   glColor3d: TglColor3d;
11260   glColor3dv: TglColor3dv;
11261   glColor3f: TglColor3f;
11262   glColor3fv: TglColor3fv;
11263   glColor3i: TglColor3i;
11264   glColor3iv: TglColor3iv;
11265   glColor3s: TglColor3s;
11266   glColor3sv: TglColor3sv;
11267   glColor3ub: TglColor3ub;
11268   glColor3ubv: TglColor3ubv;
11269   glColor3ui: TglColor3ui;
11270   glColor3uiv: TglColor3uiv;
11271   glColor3us: TglColor3us;
11272   glColor3usv: TglColor3usv;
11273   glColor4b: TglColor4b;
11274   glColor4bv: TglColor4bv;
11275   glColor4d: TglColor4d;
11276   glColor4dv: TglColor4dv;
11277   glColor4f: TglColor4f;
11278   glColor4fv: TglColor4fv;
11279   glColor4i: TglColor4i;
11280   glColor4iv: TglColor4iv;
11281   glColor4s: TglColor4s;
11282   glColor4sv: TglColor4sv;
11283   glColor4ub: TglColor4ub;
11284   glColor4ubv: TglColor4ubv;
11285   glColor4ui: TglColor4ui;
11286   glColor4uiv: TglColor4uiv;
11287   glColor4us: TglColor4us;
11288   glColor4usv: TglColor4usv;
11289   glColorMaterial: TglColorMaterial;
11290   glColorPointer: TglColorPointer;
11291   glCopyPixels: TglCopyPixels;
11292   glDeleteLists: TglDeleteLists;
11293   glDisableClientState: TglDisableClientState;
11294   glDrawPixels: TglDrawPixels;
11295   glEdgeFlag: TglEdgeFlag;
11296   glEdgeFlagPointer: TglEdgeFlagPointer;
11297   glEdgeFlagv: TglEdgeFlagv;
11298   glEnableClientState: TglEnableClientState;
11299   glEnd: TglEnd;
11300   glEndList: TglEndList;
11301   glEvalCoord1d: TglEvalCoord1d;
11302   glEvalCoord1dv: TglEvalCoord1dv;
11303   glEvalCoord1f: TglEvalCoord1f;
11304   glEvalCoord1fv: TglEvalCoord1fv;
11305   glEvalCoord2d: TglEvalCoord2d;
11306   glEvalCoord2dv: TglEvalCoord2dv;
11307   glEvalCoord2f: TglEvalCoord2f;
11308   glEvalCoord2fv: TglEvalCoord2fv;
11309   glEvalMesh1: TglEvalMesh1;
11310   glEvalMesh2: TglEvalMesh2;
11311   glEvalPoint1: TglEvalPoint1;
11312   glEvalPoint2: TglEvalPoint2;
11313   glFeedbackBuffer: TglFeedbackBuffer;
11314   glFogf: TglFogf;
11315   glFogfv: TglFogfv;
11316   glFogi: TglFogi;
11317   glFogiv: TglFogiv;
11318   glFrustum: TglFrustum;
11319   glGenLists: TglGenLists;
11320   glGetClipPlane: TglGetClipPlane;
11321   glGetLightfv: TglGetLightfv;
11322   glGetLightiv: TglGetLightiv;
11323   glGetMapdv: TglGetMapdv;
11324   glGetMapfv: TglGetMapfv;
11325   glGetMapiv: TglGetMapiv;
11326   glGetMaterialfv: TglGetMaterialfv;
11327   glGetMaterialiv: TglGetMaterialiv;
11328   glGetPixelMapfv: TglGetPixelMapfv;
11329   glGetPixelMapuiv: TglGetPixelMapuiv;
11330   glGetPixelMapusv: TglGetPixelMapusv;
11331   glGetPolygonStipple: TglGetPolygonStipple;
11332   glGetTexEnvfv: TglGetTexEnvfv;
11333   glGetTexEnviv: TglGetTexEnviv;
11334   glGetTexGendv: TglGetTexGendv;
11335   glGetTexGenfv: TglGetTexGenfv;
11336   glGetTexGeniv: TglGetTexGeniv;
11337   glIndexMask: TglIndexMask;
11338   glIndexPointer: TglIndexPointer;
11339   glIndexd: TglIndexd;
11340   glIndexdv: TglIndexdv;
11341   glIndexf: TglIndexf;
11342   glIndexfv: TglIndexfv;
11343   glIndexi: TglIndexi;
11344   glIndexiv: TglIndexiv;
11345   glIndexs: TglIndexs;
11346   glIndexsv: TglIndexsv;
11347   glIndexub: TglIndexub;
11348   glIndexubv: TglIndexubv;
11349   glInitNames: TglInitNames;
11350   glInterleavedArrays: TglInterleavedArrays;
11351   glIsList: TglIsList;
11352   glIsTexture: TglIsTexture;
11353   glLightModelf: TglLightModelf;
11354   glLightModelfv: TglLightModelfv;
11355   glLightModeli: TglLightModeli;
11356   glLightModeliv: TglLightModeliv;
11357   glLightf: TglLightf;
11358   glLightfv: TglLightfv;
11359   glLighti: TglLighti;
11360   glLightiv: TglLightiv;
11361   glLineStipple: TglLineStipple;
11362   glListBase: TglListBase;
11363   glLoadIdentity: TglLoadIdentity;
11364   glLoadMatrixd: TglLoadMatrixd;
11365   glLoadMatrixf: TglLoadMatrixf;
11366   glLoadName: TglLoadName;
11367   glMap1d: TglMap1d;
11368   glMap1f: TglMap1f;
11369   glMap2d: TglMap2d;
11370   glMap2f: TglMap2f;
11371   glMapGrid1d: TglMapGrid1d;
11372   glMapGrid1f: TglMapGrid1f;
11373   glMapGrid2d: TglMapGrid2d;
11374   glMapGrid2f: TglMapGrid2f;
11375   glMaterialf: TglMaterialf;
11376   glMaterialfv: TglMaterialfv;
11377   glMateriali: TglMateriali;
11378   glMaterialiv: TglMaterialiv;
11379   glMatrixMode: TglMatrixMode;
11380   glMultMatrixd: TglMultMatrixd;
11381   glMultMatrixf: TglMultMatrixf;
11382   glNewList: TglNewList;
11383   glNormal3b: TglNormal3b;
11384   glNormal3bv: TglNormal3bv;
11385   glNormal3d: TglNormal3d;
11386   glNormal3dv: TglNormal3dv;
11387   glNormal3f: TglNormal3f;
11388   glNormal3fv: TglNormal3fv;
11389   glNormal3i: TglNormal3i;
11390   glNormal3iv: TglNormal3iv;
11391   glNormal3s: TglNormal3s;
11392   glNormal3sv: TglNormal3sv;
11393   glNormalPointer: TglNormalPointer;
11394   glOrtho: TglOrtho;
11395   glPassThrough: TglPassThrough;
11396   glPixelMapfv: TglPixelMapfv;
11397   glPixelMapuiv: TglPixelMapuiv;
11398   glPixelMapusv: TglPixelMapusv;
11399   glPixelTransferf: TglPixelTransferf;
11400   glPixelTransferi: TglPixelTransferi;
11401   glPixelZoom: TglPixelZoom;
11402   glPolygonStipple: TglPolygonStipple;
11403   glPopAttrib: TglPopAttrib;
11404   glPopClientAttrib: TglPopClientAttrib;
11405   glPopMatrix: TglPopMatrix;
11406   glPopName: TglPopName;
11407   glPrioritizeTextures: TglPrioritizeTextures;
11408   glPushAttrib: TglPushAttrib;
11409   glPushClientAttrib: TglPushClientAttrib;
11410   glPushMatrix: TglPushMatrix;
11411   glPushName: TglPushName;
11412   glRasterPos2d: TglRasterPos2d;
11413   glRasterPos2dv: TglRasterPos2dv;
11414   glRasterPos2f: TglRasterPos2f;
11415   glRasterPos2fv: TglRasterPos2fv;
11416   glRasterPos2i: TglRasterPos2i;
11417   glRasterPos2iv: TglRasterPos2iv;
11418   glRasterPos2s: TglRasterPos2s;
11419   glRasterPos2sv: TglRasterPos2sv;
11420   glRasterPos3d: TglRasterPos3d;
11421   glRasterPos3dv: TglRasterPos3dv;
11422   glRasterPos3f: TglRasterPos3f;
11423   glRasterPos3fv: TglRasterPos3fv;
11424   glRasterPos3i: TglRasterPos3i;
11425   glRasterPos3iv: TglRasterPos3iv;
11426   glRasterPos3s: TglRasterPos3s;
11427   glRasterPos3sv: TglRasterPos3sv;
11428   glRasterPos4d: TglRasterPos4d;
11429   glRasterPos4dv: TglRasterPos4dv;
11430   glRasterPos4f: TglRasterPos4f;
11431   glRasterPos4fv: TglRasterPos4fv;
11432   glRasterPos4i: TglRasterPos4i;
11433   glRasterPos4iv: TglRasterPos4iv;
11434   glRasterPos4s: TglRasterPos4s;
11435   glRasterPos4sv: TglRasterPos4sv;
11436   glRectd: TglRectd;
11437   glRectdv: TglRectdv;
11438   glRectf: TglRectf;
11439   glRectfv: TglRectfv;
11440   glRecti: TglRecti;
11441   glRectiv: TglRectiv;
11442   glRects: TglRects;
11443   glRectsv: TglRectsv;
11444   glRenderMode: TglRenderMode;
11445   glRotated: TglRotated;
11446   glRotatef: TglRotatef;
11447   glScaled: TglScaled;
11448   glScalef: TglScalef;
11449   glSelectBuffer: TglSelectBuffer;
11450   glShadeModel: TglShadeModel;
11451   glTexCoord1d: TglTexCoord1d;
11452   glTexCoord1dv: TglTexCoord1dv;
11453   glTexCoord1f: TglTexCoord1f;
11454   glTexCoord1fv: TglTexCoord1fv;
11455   glTexCoord1i: TglTexCoord1i;
11456   glTexCoord1iv: TglTexCoord1iv;
11457   glTexCoord1s: TglTexCoord1s;
11458   glTexCoord1sv: TglTexCoord1sv;
11459   glTexCoord2d: TglTexCoord2d;
11460   glTexCoord2dv: TglTexCoord2dv;
11461   glTexCoord2f: TglTexCoord2f;
11462   glTexCoord2fv: TglTexCoord2fv;
11463   glTexCoord2i: TglTexCoord2i;
11464   glTexCoord2iv: TglTexCoord2iv;
11465   glTexCoord2s: TglTexCoord2s;
11466   glTexCoord2sv: TglTexCoord2sv;
11467   glTexCoord3d: TglTexCoord3d;
11468   glTexCoord3dv: TglTexCoord3dv;
11469   glTexCoord3f: TglTexCoord3f;
11470   glTexCoord3fv: TglTexCoord3fv;
11471   glTexCoord3i: TglTexCoord3i;
11472   glTexCoord3iv: TglTexCoord3iv;
11473   glTexCoord3s: TglTexCoord3s;
11474   glTexCoord3sv: TglTexCoord3sv;
11475   glTexCoord4d: TglTexCoord4d;
11476   glTexCoord4dv: TglTexCoord4dv;
11477   glTexCoord4f: TglTexCoord4f;
11478   glTexCoord4fv: TglTexCoord4fv;
11479   glTexCoord4i: TglTexCoord4i;
11480   glTexCoord4iv: TglTexCoord4iv;
11481   glTexCoord4s: TglTexCoord4s;
11482   glTexCoord4sv: TglTexCoord4sv;
11483   glTexCoordPointer: TglTexCoordPointer;
11484   glTexEnvf: TglTexEnvf;
11485   glTexEnvfv: TglTexEnvfv;
11486   glTexEnvi: TglTexEnvi;
11487   glTexEnviv: TglTexEnviv;
11488   glTexGend: TglTexGend;
11489   glTexGendv: TglTexGendv;
11490   glTexGenf: TglTexGenf;
11491   glTexGenfv: TglTexGenfv;
11492   glTexGeni: TglTexGeni;
11493   glTexGeniv: TglTexGeniv;
11494   glTranslated: TglTranslated;
11495   glTranslatef: TglTranslatef;
11496   glVertex2d: TglVertex2d;
11497   glVertex2dv: TglVertex2dv;
11498   glVertex2f: TglVertex2f;
11499   glVertex2fv: TglVertex2fv;
11500   glVertex2i: TglVertex2i;
11501   glVertex2iv: TglVertex2iv;
11502   glVertex2s: TglVertex2s;
11503   glVertex2sv: TglVertex2sv;
11504   glVertex3d: TglVertex3d;
11505   glVertex3dv: TglVertex3dv;
11506   glVertex3f: TglVertex3f;
11507   glVertex3fv: TglVertex3fv;
11508   glVertex3i: TglVertex3i;
11509   glVertex3iv: TglVertex3iv;
11510   glVertex3s: TglVertex3s;
11511   glVertex3sv: TglVertex3sv;
11512   glVertex4d: TglVertex4d;
11513   glVertex4dv: TglVertex4dv;
11514   glVertex4f: TglVertex4f;
11515   glVertex4fv: TglVertex4fv;
11516   glVertex4i: TglVertex4i;
11517   glVertex4iv: TglVertex4iv;
11518   glVertex4s: TglVertex4s;
11519   glVertex4sv: TglVertex4sv;
11520   glVertexPointer: TglVertexPointer;
11521 {$endif}
11522
11523   // GL_VERSION_1_2
11524   glBlendColor: TglBlendColor;
11525   glBlendEquation: TglBlendEquation;
11526   glDrawRangeElements: TglDrawRangeElements;
11527   glTexImage3D: TglTexImage3D;
11528   glTexSubImage3D: TglTexSubImage3D;
11529   glCopyTexSubImage3D: TglCopyTexSubImage3D;
11530 {$ifdef DGL_DEPRECATED}
11531   glColorTable: TglColorTable;
11532   glColorTableParameterfv: TglColorTableParameterfv;
11533   glColorTableParameteriv: TglColorTableParameteriv;
11534   glCopyColorTable: TglCopyColorTable;
11535   glGetColorTable: TglGetColorTable;
11536   glGetColorTableParameterfv: TglGetColorTableParameterfv;
11537   glGetColorTableParameteriv: TglGetColorTableParameteriv;
11538   glColorSubTable: TglColorSubTable;
11539   glCopyColorSubTable: TglCopyColorSubTable;
11540   glConvolutionFilter1D: TglConvolutionFilter1D;
11541   glConvolutionFilter2D: TglConvolutionFilter2D;
11542   glConvolutionParameterf: TglConvolutionParameterf;
11543   glConvolutionParameterfv: TglConvolutionParameterfv;
11544   glConvolutionParameteri: TglConvolutionParameteri;
11545   glConvolutionParameteriv: TglConvolutionParameteriv;
11546   glCopyConvolutionFilter1D: TglCopyConvolutionFilter1D;
11547   glCopyConvolutionFilter2D: TglCopyConvolutionFilter2D;
11548   glGetConvolutionFilter: TglGetConvolutionFilter;
11549   glGetConvolutionParameterfv: TglGetConvolutionParameterfv;
11550   glGetConvolutionParameteriv: TglGetConvolutionParameteriv;
11551   glGetSeparableFilter: TglGetSeparableFilter;
11552   glSeparableFilter2D: TglSeparableFilter2D;
11553   glGetHistogram: TglGetHistogram;
11554   glGetHistogramParameterfv: TglGetHistogramParameterfv;
11555   glGetHistogramParameteriv: TglGetHistogramParameteriv;
11556   glGetMinmax: TglGetMinmax;
11557   glGetMinmaxParameterfv: TglGetMinmaxParameterfv;
11558   glGetMinmaxParameteriv: TglGetMinmaxParameteriv;
11559   glHistogram: TglHistogram;
11560   glMinmax: TglMinmax;
11561   glResetHistogram: TglResetHistogram;
11562   glResetMinmax: TglResetMinmax;
11563 {$endif}
11564
11565   // GL_VERSION_1_3
11566   glActiveTexture: TglActiveTexture;
11567   glSampleCoverage: TglSampleCoverage;
11568   glCompressedTexImage3D: TglCompressedTexImage3D;
11569   glCompressedTexImage2D: TglCompressedTexImage2D;
11570   glCompressedTexImage1D: TglCompressedTexImage1D;
11571   glCompressedTexSubImage3D: TglCompressedTexSubImage3D;
11572   glCompressedTexSubImage2D: TglCompressedTexSubImage2D;
11573   glCompressedTexSubImage1D: TglCompressedTexSubImage1D;
11574   glGetCompressedTexImage: TglGetCompressedTexImage;
11575 {$ifdef DGL_DEPRECATED}
11576   glClientActiveTexture: TglClientActiveTexture;
11577   glMultiTexCoord1d: TglMultiTexCoord1d;
11578   glMultiTexCoord1dv: TglMultiTexCoord1dv;
11579   glMultiTexCoord1f: TglMultiTexCoord1f;
11580   glMultiTexCoord1fv: TglMultiTexCoord1fv;
11581   glMultiTexCoord1i: TglMultiTexCoord1i;
11582   glMultiTexCoord1iv: TglMultiTexCoord1iv;
11583   glMultiTexCoord1s: TglMultiTexCoord1s;
11584   glMultiTexCoord1sv: TglMultiTexCoord1sv;
11585   glMultiTexCoord2d: TglMultiTexCoord2d;
11586   glMultiTexCoord2dv: TglMultiTexCoord2dv;
11587   glMultiTexCoord2f: TglMultiTexCoord2f;
11588   glMultiTexCoord2fv: TglMultiTexCoord2fv;
11589   glMultiTexCoord2i: TglMultiTexCoord2i;
11590   glMultiTexCoord2iv: TglMultiTexCoord2iv;
11591   glMultiTexCoord2s: TglMultiTexCoord2s;
11592   glMultiTexCoord2sv: TglMultiTexCoord2sv;
11593   glMultiTexCoord3d: TglMultiTexCoord3d;
11594   glMultiTexCoord3dv: TglMultiTexCoord3dv;
11595   glMultiTexCoord3f: TglMultiTexCoord3f;
11596   glMultiTexCoord3fv: TglMultiTexCoord3fv;
11597   glMultiTexCoord3i: TglMultiTexCoord3i;
11598   glMultiTexCoord3iv: TglMultiTexCoord3iv;
11599   glMultiTexCoord3s: TglMultiTexCoord3s;
11600   glMultiTexCoord3sv: TglMultiTexCoord3sv;
11601   glMultiTexCoord4d: TglMultiTexCoord4d;
11602   glMultiTexCoord4dv: TglMultiTexCoord4dv;
11603   glMultiTexCoord4f: TglMultiTexCoord4f;
11604   glMultiTexCoord4fv: TglMultiTexCoord4fv;
11605   glMultiTexCoord4i: TglMultiTexCoord4i;
11606   glMultiTexCoord4iv: TglMultiTexCoord4iv;
11607   glMultiTexCoord4s: TglMultiTexCoord4s;
11608   glMultiTexCoord4sv: TglMultiTexCoord4sv;
11609   glLoadTransposeMatrixf: TglLoadTransposeMatrixf;
11610   glLoadTransposeMatrixd: TglLoadTransposeMatrixd;
11611   glMultTransposeMatrixf: TglMultTransposeMatrixf;
11612   glMultTransposeMatrixd: TglMultTransposeMatrixd;
11613 {$endif}
11614
11615   // GL_VERSION_1_4
11616   glBlendFuncSeparate: TglBlendFuncSeparate;
11617   glMultiDrawArrays: TglMultiDrawArrays;
11618   glMultiDrawElements: TglMultiDrawElements;
11619   glPointParameterf: TglPointParameterf;
11620   glPointParameterfv: TglPointParameterfv;
11621   glPointParameteri: TglPointParameteri;
11622   glPointParameteriv: TglPointParameteriv;
11623 {$ifdef DGL_DEPRECATED}
11624   glFogCoordf: TglFogCoordf;
11625   glFogCoordfv: TglFogCoordfv;
11626   glFogCoordd: TglFogCoordd;
11627   glFogCoorddv: TglFogCoorddv;
11628   glFogCoordPointer: TglFogCoordPointer;
11629   glSecondaryColor3b: TglSecondaryColor3b;
11630   glSecondaryColor3bv: TglSecondaryColor3bv;
11631   glSecondaryColor3d: TglSecondaryColor3d;
11632   glSecondaryColor3dv: TglSecondaryColor3dv;
11633   glSecondaryColor3f: TglSecondaryColor3f;
11634   glSecondaryColor3fv: TglSecondaryColor3fv;
11635   glSecondaryColor3i: TglSecondaryColor3i;
11636   glSecondaryColor3iv: TglSecondaryColor3iv;
11637   glSecondaryColor3s: TglSecondaryColor3s;
11638   glSecondaryColor3sv: TglSecondaryColor3sv;
11639   glSecondaryColor3ub: TglSecondaryColor3ub;
11640   glSecondaryColor3ubv: TglSecondaryColor3ubv;
11641   glSecondaryColor3ui: TglSecondaryColor3ui;
11642   glSecondaryColor3uiv: TglSecondaryColor3uiv;
11643   glSecondaryColor3us: TglSecondaryColor3us;
11644   glSecondaryColor3usv: TglSecondaryColor3usv;
11645   glSecondaryColorPointer: TglSecondaryColorPointer;
11646   glWindowPos2d: TglWindowPos2d;
11647   glWindowPos2dv: TglWindowPos2dv;
11648   glWindowPos2f: TglWindowPos2f;
11649   glWindowPos2fv: TglWindowPos2fv;
11650   glWindowPos2i: TglWindowPos2i;
11651   glWindowPos2iv: TglWindowPos2iv;
11652   glWindowPos2s: TglWindowPos2s;
11653   glWindowPos2sv: TglWindowPos2sv;
11654   glWindowPos3d: TglWindowPos3d;
11655   glWindowPos3dv: TglWindowPos3dv;
11656   glWindowPos3f: TglWindowPos3f;
11657   glWindowPos3fv: TglWindowPos3fv;
11658   glWindowPos3i: TglWindowPos3i;
11659   glWindowPos3iv: TglWindowPos3iv;
11660   glWindowPos3s: TglWindowPos3s;
11661   glWindowPos3sv: TglWindowPos3sv;
11662 {$endif}
11663
11664   // GL_VERSION_1_5
11665   glGenQueries: TglGenQueries;
11666   glDeleteQueries: TglDeleteQueries;
11667   glIsQuery: TglIsQuery;
11668   glBeginQuery: TglBeginQuery;
11669   glEndQuery: TglEndQuery;
11670   glGetQueryiv: TglGetQueryiv;
11671   glGetQueryObjectiv: TglGetQueryObjectiv;
11672   glGetQueryObjectuiv: TglGetQueryObjectuiv;
11673   glBindBuffer: TglBindBuffer;
11674   glDeleteBuffers: TglDeleteBuffers;
11675   glGenBuffers: TglGenBuffers;
11676   glIsBuffer: TglIsBuffer;
11677   glBufferData: TglBufferData;
11678   glBufferSubData: TglBufferSubData;
11679   glGetBufferSubData: TglGetBufferSubData;
11680   glMapBuffer: TglMapBuffer;
11681   glUnmapBuffer: TglUnmapBuffer;
11682   glGetBufferParameteriv: TglGetBufferParameteriv;
11683   glGetBufferPointerv: TglGetBufferPointerv;
11684
11685   // GL_VERSION_2_0
11686   glBlendEquationSeparate: TglBlendEquationSeparate;
11687   glDrawBuffers: TglDrawBuffers;
11688   glStencilOpSeparate: TglStencilOpSeparate;
11689   glStencilFuncSeparate: TglStencilFuncSeparate;
11690   glStencilMaskSeparate: TglStencilMaskSeparate;
11691   glAttachShader: TglAttachShader;
11692   glBindAttribLocation: TglBindAttribLocation;
11693   glCompileShader: TglCompileShader;
11694   glCreateProgram: TglCreateProgram;
11695   glCreateShader: TglCreateShader;
11696   glDeleteProgram: TglDeleteProgram;
11697   glDeleteShader: TglDeleteShader;
11698   glDetachShader: TglDetachShader;
11699   glDisableVertexAttribArray: TglDisableVertexAttribArray;
11700   glEnableVertexAttribArray: TglEnableVertexAttribArray;
11701   glGetActiveAttrib: TglGetActiveAttrib;
11702   glGetActiveUniform: TglGetActiveUniform;
11703   glGetAttachedShaders: TglGetAttachedShaders;
11704   glGetAttribLocation: TglGetAttribLocation;
11705   glGetProgramiv: TglGetProgramiv;
11706   glGetProgramInfoLog: TglGetProgramInfoLog;
11707   glGetShaderiv: TglGetShaderiv;
11708   glGetShaderInfoLog: TglGetShaderInfoLog;
11709   glGetShaderSource: TglGetShaderSource;
11710   glGetUniformLocation: TglGetUniformLocation;
11711   glGetUniformfv: TglGetUniformfv;
11712   glGetUniformiv: TglGetUniformiv;
11713   glGetVertexAttribfv: TglGetVertexAttribfv;
11714   glGetVertexAttribiv: TglGetVertexAttribiv;
11715   glGetVertexAttribPointerv: TglGetVertexAttribPointerv;
11716   glIsProgram: TglIsProgram;
11717   glIsShader: TglIsShader;
11718   glLinkProgram: TglLinkProgram;
11719   glShaderSource: TglShaderSource;
11720   glUseProgram: TglUseProgram;
11721   glUniform1f: TglUniform1f;
11722   glUniform2f: TglUniform2f;
11723   glUniform3f: TglUniform3f;
11724   glUniform4f: TglUniform4f;
11725   glUniform1i: TglUniform1i;
11726   glUniform2i: TglUniform2i;
11727   glUniform3i: TglUniform3i;
11728   glUniform4i: TglUniform4i;
11729   glUniform1fv: TglUniform1fv;
11730   glUniform2fv: TglUniform2fv;
11731   glUniform3fv: TglUniform3fv;
11732   glUniform4fv: TglUniform4fv;
11733   glUniform1iv: TglUniform1iv;
11734   glUniform2iv: TglUniform2iv;
11735   glUniform3iv: TglUniform3iv;
11736   glUniform4iv: TglUniform4iv;
11737   glUniformMatrix2fv: TglUniformMatrix2fv;
11738   glUniformMatrix3fv: TglUniformMatrix3fv;
11739   glUniformMatrix4fv: TglUniformMatrix4fv;
11740   glValidateProgram: TglValidateProgram;
11741   glVertexAttrib1d: TglVertexAttrib1d;
11742   glVertexAttrib1dv: TglVertexAttrib1dv;
11743   glVertexAttrib1f: TglVertexAttrib1f;
11744   glVertexAttrib1fv: TglVertexAttrib1fv;
11745   glVertexAttrib1s: TglVertexAttrib1s;
11746   glVertexAttrib1sv: TglVertexAttrib1sv;
11747   glVertexAttrib2d: TglVertexAttrib2d;
11748   glVertexAttrib2dv: TglVertexAttrib2dv;
11749   glVertexAttrib2f: TglVertexAttrib2f;
11750   glVertexAttrib2fv: TglVertexAttrib2fv;
11751   glVertexAttrib2s: TglVertexAttrib2s;
11752   glVertexAttrib2sv: TglVertexAttrib2sv;
11753   glVertexAttrib3d: TglVertexAttrib3d;
11754   glVertexAttrib3dv: TglVertexAttrib3dv;
11755   glVertexAttrib3f: TglVertexAttrib3f;
11756   glVertexAttrib3fv: TglVertexAttrib3fv;
11757   glVertexAttrib3s: TglVertexAttrib3s;
11758   glVertexAttrib3sv: TglVertexAttrib3sv;
11759   glVertexAttrib4Nbv: TglVertexAttrib4Nbv;
11760   glVertexAttrib4Niv: TglVertexAttrib4Niv;
11761   glVertexAttrib4Nsv: TglVertexAttrib4Nsv;
11762   glVertexAttrib4Nub: TglVertexAttrib4Nub;
11763   glVertexAttrib4Nubv: TglVertexAttrib4Nubv;
11764   glVertexAttrib4Nuiv: TglVertexAttrib4Nuiv;
11765   glVertexAttrib4Nusv: TglVertexAttrib4Nusv;
11766   glVertexAttrib4bv: TglVertexAttrib4bv;
11767   glVertexAttrib4d: TglVertexAttrib4d;
11768   glVertexAttrib4dv: TglVertexAttrib4dv;
11769   glVertexAttrib4f: TglVertexAttrib4f;
11770   glVertexAttrib4fv: TglVertexAttrib4fv;
11771   glVertexAttrib4iv: TglVertexAttrib4iv;
11772   glVertexAttrib4s: TglVertexAttrib4s;
11773   glVertexAttrib4sv: TglVertexAttrib4sv;
11774   glVertexAttrib4ubv: TglVertexAttrib4ubv;
11775   glVertexAttrib4uiv: TglVertexAttrib4uiv;
11776   glVertexAttrib4usv: TglVertexAttrib4usv;
11777   glVertexAttribPointer: TglVertexAttribPointer;
11778
11779   // GL_VERSION_2_1
11780   glUniformMatrix2x3fv: TglUniformMatrix2x3fv;
11781   glUniformMatrix3x2fv: TglUniformMatrix3x2fv;
11782   glUniformMatrix2x4fv: TglUniformMatrix2x4fv;
11783   glUniformMatrix4x2fv: TglUniformMatrix4x2fv;
11784   glUniformMatrix3x4fv: TglUniformMatrix3x4fv;
11785   glUniformMatrix4x3fv: TglUniformMatrix4x3fv;
11786
11787   // GL_VERSION_3_0
11788   glColorMaski: TglColorMaski;
11789   glGetBooleani_v: TglGetBooleani_v;
11790   glGetIntegeri_v: TglGetIntegeri_v;
11791   glEnablei: TglEnablei;
11792   glDisablei: TglDisablei;
11793   glIsEnabledi: TglIsEnabledi;
11794   glBeginTransformFeedback: TglBeginTransformFeedback;
11795   glEndTransformFeedback: TglEndTransformFeedback;
11796   glBindBufferRange: TglBindBufferRange;
11797   glBindBufferBase: TglBindBufferBase;
11798   glTransformFeedbackVaryings: TglTransformFeedbackVaryings;
11799   glGetTransformFeedbackVarying: TglGetTransformFeedbackVarying;
11800   glClampColor: TglClampColor;
11801   glBeginConditionalRender: TglBeginConditionalRender;
11802   glEndConditionalRender: TglEndConditionalRender;
11803   glVertexAttribI1i: TglVertexAttribI1i;
11804   glVertexAttribI2i: TglVertexAttribI2i;
11805   glVertexAttribI3i: TglVertexAttribI3i;
11806   glVertexAttribI4i: TglVertexAttribI4i;
11807   glVertexAttribI1ui: TglVertexAttribI1ui;
11808   glVertexAttribI2ui: TglVertexAttribI2ui;
11809   glVertexAttribI3ui: TglVertexAttribI3ui;
11810   glVertexAttribI4ui: TglVertexAttribI4ui;
11811   glVertexAttribI1iv: TglVertexAttribI1iv;
11812   glVertexAttribI2iv: TglVertexAttribI2iv;
11813   glVertexAttribI3iv: TglVertexAttribI3iv;
11814   glVertexAttribI4iv: TglVertexAttribI4iv;
11815   glVertexAttribI1uiv: TglVertexAttribI1uiv;
11816   glVertexAttribI2uiv: TglVertexAttribI2uiv;
11817   glVertexAttribI3uiv: TglVertexAttribI3uiv;
11818   glVertexAttribI4uiv: TglVertexAttribI4uiv;
11819   glVertexAttribI4bv: TglVertexAttribI4bv;
11820   glVertexAttribI4sv: TglVertexAttribI4sv;
11821   glVertexAttribI4ubv: TglVertexAttribI4ubv;
11822   glVertexAttribI4usv: TglVertexAttribI4usv;
11823   glVertexAttribIPointer: TglVertexAttribIPointer;
11824   glGetVertexAttribIiv: TglGetVertexAttribIiv;
11825   glGetVertexAttribIuiv: TglGetVertexAttribIuiv;
11826   glGetUniformuiv: TglGetUniformuiv;
11827   glBindFragDataLocation: TglBindFragDataLocation;
11828   glGetFragDataLocation: TglGetFragDataLocation;
11829   glUniform1ui: TglUniform1ui;
11830   glUniform2ui: TglUniform2ui;
11831   glUniform3ui: TglUniform3ui;
11832   glUniform4ui: TglUniform4ui;
11833   glUniform1uiv: TglUniform1uiv;
11834   glUniform2uiv: TglUniform2uiv;
11835   glUniform3uiv: TglUniform3uiv;
11836   glUniform4uiv: TglUniform4uiv;
11837   glTexParameterIiv: TglTexParameterIiv;
11838   glTexParameterIuiv: TglTexParameterIuiv;
11839   glGetTexParameterIiv: TglGetTexParameterIiv;
11840   glGetTexParameterIuiv: TglGetTexParameterIuiv;
11841   glClearBufferiv: TglClearBufferiv;
11842   glClearBufferuiv: TglClearBufferuiv;
11843   glClearBufferfv: TglClearBufferfv;
11844   glClearBufferfi: TglClearBufferfi;
11845   glGetStringi: TglGetStringi;
11846
11847   // GL_VERSION_2_1
11848   glEnableVertexArrayEXT : TglEnableVertexArrayEXT;
11849   glEnableVertexArrayAttribEXT : TglEnableVertexArrayAttribEXT;
11850   glVertexArrayVertexAttribOffsetEXT : TglVertexArrayVertexAttribOffsetEXT;
11851
11852   // GL_VERSION_3_1
11853   glDrawArraysInstanced: TglDrawArraysInstanced;
11854   glDrawElementsInstanced: TglDrawElementsInstanced;
11855   glTexBuffer: TglTexBuffer;
11856   glPrimitiveRestartIndex: TglPrimitiveRestartIndex;
11857
11858   // GL_VERSION_3_2
11859   glGetInteger64i_v: TglGetInteger64i_v;
11860   glGetBufferParameteri64v: TglGetBufferParameteri64v;
11861   glFramebufferTexture: TglFramebufferTexture;
11862
11863   // GL_VERSION_3_3
11864   glVertexAttribDivisor: TglVertexAttribDivisor;
11865
11866   // GL_VERSION_4_0
11867   { OpenGL 4.0 also reuses entry points from these extensions: }
11868   { ARB_texture_query_lod (no entry points) }
11869   { ARB_draw_indirect }
11870   { ARB_gpu_shader5 (no entry points) }
11871   { ARB_gpu_shader_fp64 }
11872   { ARB_shader_subroutine }
11873   { ARB_tessellation_shader }
11874   { ARB_texture_buffer_object_rgb32 (no entry points) }
11875   { ARB_texture_cube_map_array (no entry points) }
11876   { ARB_texture_gather (no entry points) }
11877   { ARB_transform_feedback2 }
11878   { ARB_transform_feedback3 }
11879   glMinSampleShading: TglMinSampleShading;
11880   glBlendEquationi: TglBlendEquationi;
11881   glBlendEquationSeparatei: TglBlendEquationSeparatei;
11882   glBlendFunci: TglBlendFunci;
11883   glBlendFuncSeparatei: TglBlendFuncSeparatei;
11884
11885   // GL_3DFX_tbuffer
11886   glTbufferMask3DFX: TglTbufferMask3DFX;
11887
11888   // GL_APPLE_element_array
11889   glElementPointerAPPLE: TglElementPointerAPPLE;
11890   glDrawElementArrayAPPLE: TglDrawElementArrayAPPLE;
11891   glDrawRangeElementArrayAPPLE: TglDrawRangeElementArrayAPPLE;
11892   glMultiDrawElementArrayAPPLE: TglMultiDrawElementArrayAPPLE;
11893   glMultiDrawRangeElementArrayAPPLE: TglMultiDrawRangeElementArrayAPPLE;
11894
11895   // GL_APPLE_fence
11896   glGenFencesAPPLE: TglGenFencesAPPLE;
11897   glDeleteFencesAPPLE: TglDeleteFencesAPPLE;
11898   glSetFenceAPPLE: TglSetFenceAPPLE;
11899   glIsFenceAPPLE: TglIsFenceAPPLE;
11900   glTestFenceAPPLE: TglTestFenceAPPLE;
11901   glFinishFenceAPPLE: TglFinishFenceAPPLE;
11902   glTestObjectAPPLE: TglTestObjectAPPLE;
11903   glFinishObjectAPPLE: TglFinishObjectAPPLE;
11904
11905   // GL_APPLE_vertex_array_object
11906   glBindVertexArrayAPPLE: TglBindVertexArrayAPPLE;
11907   glDeleteVertexArraysAPPLE: TglDeleteVertexArraysAPPLE;
11908   glGenVertexArraysAPPLE: TglGenVertexArraysAPPLE;
11909   glIsVertexArrayAPPLE: TglIsVertexArrayAPPLE;
11910
11911   // GL_APPLE_vertex_array_range
11912   glVertexArrayRangeAPPLE: TglVertexArrayRangeAPPLE;
11913   glFlushVertexArrayRangeAPPLE: TglFlushVertexArrayRangeAPPLE;
11914   glVertexArrayParameteriAPPLE: TglVertexArrayParameteriAPPLE;
11915
11916   // GL_APPLE_texture_range
11917   glTextureRangeAPPLE: TglTextureRangeAPPLE;
11918   glGetTexParameterPointervAPPLE: TglGetTexParameterPointervAPPLE;
11919
11920   // GL_APPLE_vertex_program_evaluators
11921   glEnableVertexAttribAPPLE: TglEnableVertexAttribAPPLE;
11922   glDisableVertexAttribAPPLE: TglDisableVertexAttribAPPLE;
11923   glIsVertexAttribEnabledAPPLE: TglIsVertexAttribEnabledAPPLE;
11924   glMapVertexAttrib1dAPPLE: TglMapVertexAttrib1dAPPLE;
11925   glMapVertexAttrib1fAPPLE: TglMapVertexAttrib1fAPPLE;
11926   glMapVertexAttrib2dAPPLE: TglMapVertexAttrib2dAPPLE;
11927   glMapVertexAttrib2fAPPLE: TglMapVertexAttrib2fAPPLE;
11928
11929   // GL_APPLE_object_purgeable
11930   glObjectPurgeableAPPLE: TglObjectPurgeableAPPLE;
11931   glObjectUnpurgeableAPPLE: TglObjectUnpurgeableAPPLE;
11932   glGetObjectParameterivAPPLE: TglGetObjectParameterivAPPLE;
11933
11934   // GL_ARB_matrix_palette
11935   glCurrentPaletteMatrixARB: TglCurrentPaletteMatrixARB;
11936   glMatrixIndexubvARB: TglMatrixIndexubvARB;
11937   glMatrixIndexusvARB: TglMatrixIndexusvARB;
11938   glMatrixIndexuivARB: TglMatrixIndexuivARB;
11939   glMatrixIndexPointerARB: TglMatrixIndexPointerARB;
11940
11941   // GL_ARB_multisample
11942   glSampleCoverageARB: TglSampleCoverageARB;
11943
11944   // GL_ARB_multitexture
11945   glActiveTextureARB: TglActiveTextureARB;
11946   glClientActiveTextureARB: TglClientActiveTextureARB;
11947   glMultiTexCoord1dARB: TglMultiTexCoord1dARB;
11948   glMultiTexCoord1dvARB: TglMultiTexCoord1dvARB;
11949   glMultiTexCoord1fARB: TglMultiTexCoord1fARB;
11950   glMultiTexCoord1fvARB: TglMultiTexCoord1fvARB;
11951   glMultiTexCoord1iARB: TglMultiTexCoord1iARB;
11952   glMultiTexCoord1ivARB: TglMultiTexCoord1ivARB;
11953   glMultiTexCoord1sARB: TglMultiTexCoord1sARB;
11954   glMultiTexCoord1svARB: TglMultiTexCoord1svARB;
11955   glMultiTexCoord2dARB: TglMultiTexCoord2dARB;
11956   glMultiTexCoord2dvARB: TglMultiTexCoord2dvARB;
11957   glMultiTexCoord2fARB: TglMultiTexCoord2fARB;
11958   glMultiTexCoord2fvARB: TglMultiTexCoord2fvARB;
11959   glMultiTexCoord2iARB: TglMultiTexCoord2iARB;
11960   glMultiTexCoord2ivARB: TglMultiTexCoord2ivARB;
11961   glMultiTexCoord2sARB: TglMultiTexCoord2sARB;
11962   glMultiTexCoord2svARB: TglMultiTexCoord2svARB;
11963   glMultiTexCoord3dARB: TglMultiTexCoord3dARB;
11964   glMultiTexCoord3dvARB: TglMultiTexCoord3dvARB;
11965   glMultiTexCoord3fARB: TglMultiTexCoord3fARB;
11966   glMultiTexCoord3fvARB: TglMultiTexCoord3fvARB;
11967   glMultiTexCoord3iARB: TglMultiTexCoord3iARB;
11968   glMultiTexCoord3ivARB: TglMultiTexCoord3ivARB;
11969   glMultiTexCoord3sARB: TglMultiTexCoord3sARB;
11970   glMultiTexCoord3svARB: TglMultiTexCoord3svARB;
11971   glMultiTexCoord4dARB: TglMultiTexCoord4dARB;
11972   glMultiTexCoord4dvARB: TglMultiTexCoord4dvARB;
11973   glMultiTexCoord4fARB: TglMultiTexCoord4fARB;
11974   glMultiTexCoord4fvARB: TglMultiTexCoord4fvARB;
11975   glMultiTexCoord4iARB: TglMultiTexCoord4iARB;
11976   glMultiTexCoord4ivARB: TglMultiTexCoord4ivARB;
11977   glMultiTexCoord4sARB: TglMultiTexCoord4sARB;
11978   glMultiTexCoord4svARB: TglMultiTexCoord4svARB;
11979
11980   // GL_ARB_point_parameters
11981   glPointParameterfARB: TglPointParameterfARB;
11982   glPointParameterfvARB: TglPointParameterfvARB;
11983
11984   // GL_ARB_texture_compression
11985   glCompressedTexImage3DARB: TglCompressedTexImage3DARB;
11986   glCompressedTexImage2DARB: TglCompressedTexImage2DARB;
11987   glCompressedTexImage1DARB: TglCompressedTexImage1DARB;
11988   glCompressedTexSubImage3DARB: TglCompressedTexSubImage3DARB;
11989   glCompressedTexSubImage2DARB: TglCompressedTexSubImage2DARB;
11990   glCompressedTexSubImage1DARB: TglCompressedTexSubImage1DARB;
11991   glGetCompressedTexImageARB: TglGetCompressedTexImageARB;
11992
11993   // GL_ARB_transpose_matrix
11994   glLoadTransposeMatrixfARB: TglLoadTransposeMatrixfARB;
11995   glLoadTransposeMatrixdARB: TglLoadTransposeMatrixdARB;
11996   glMultTransposeMatrixfARB: TglMultTransposeMatrixfARB;
11997   glMultTransposeMatrixdARB: TglMultTransposeMatrixdARB;
11998
11999   // GL_ARB_vertex_blend
12000   glWeightbvARB: TglWeightbvARB;
12001   glWeightsvARB: TglWeightsvARB;
12002   glWeightivARB: TglWeightivARB;
12003   glWeightfvARB: TglWeightfvARB;
12004   glWeightdvARB: TglWeightdvARB;
12005   glWeightubvARB: TglWeightubvARB;
12006   glWeightusvARB: TglWeightusvARB;
12007   glWeightuivARB: TglWeightuivARB;
12008   glWeightPointerARB: TglWeightPointerARB;
12009   glVertexBlendARB: TglVertexBlendARB;
12010
12011   // GL_ARB_vertex_buffer_object
12012   glBindBufferARB: TglBindBufferARB;
12013   glDeleteBuffersARB: TglDeleteBuffersARB;
12014   glGenBuffersARB: TglGenBuffersARB;
12015   glIsBufferARB: TglIsBufferARB;
12016   glBufferDataARB: TglBufferDataARB;
12017   glBufferSubDataARB: TglBufferSubData;
12018   glGetBufferSubDataARB: TglGetBufferSubDataARB;
12019   glMapBufferARB: TglMapBufferARB;
12020   glUnmapBufferARB: TglUnmapBufferARB;
12021   glGetBufferParameterivARB: TglGetBufferParameterivARB;
12022   glGetBufferPointervARB: TglGetBufferPointervARB;
12023
12024   // GL_ARB_vertex_program
12025   glVertexAttrib1dARB: TglVertexAttrib1dARB;
12026   glVertexAttrib1dvARB: TglVertexAttrib1dvARB;
12027   glVertexAttrib1fARB: TglVertexAttrib1fARB;
12028   glVertexAttrib1fvARB: TglVertexAttrib1fvARB;
12029   glVertexAttrib1sARB: TglVertexAttrib1sARB;
12030   glVertexAttrib1svARB: TglVertexAttrib1svARB;
12031   glVertexAttrib2dARB: TglVertexAttrib2dARB;
12032   glVertexAttrib2dvARB: TglVertexAttrib2dvARB;
12033   glVertexAttrib2fARB: TglVertexAttrib2fARB;
12034   glVertexAttrib2fvARB: TglVertexAttrib2fvARB;
12035   glVertexAttrib2sARB: TglVertexAttrib2sARB;
12036   glVertexAttrib2svARB: TglVertexAttrib2svARB;
12037   glVertexAttrib3dARB: TglVertexAttrib3dARB;
12038   glVertexAttrib3dvARB: TglVertexAttrib3dvARB;
12039   glVertexAttrib3fARB: TglVertexAttrib3fARB;
12040   glVertexAttrib3fvARB: TglVertexAttrib3fvARB;
12041   glVertexAttrib3sARB: TglVertexAttrib3sARB;
12042   glVertexAttrib3svARB: TglVertexAttrib3svARB;
12043   glVertexAttrib4NbvARB: TglVertexAttrib4NbvARB;
12044   glVertexAttrib4NivARB: TglVertexAttrib4NivARB;
12045   glVertexAttrib4NsvARB: TglVertexAttrib4NsvARB;
12046   glVertexAttrib4NubARB: TglVertexAttrib4NubARB;
12047   glVertexAttrib4NubvARB: TglVertexAttrib4NubvARB;
12048   glVertexAttrib4NuivARB: TglVertexAttrib4NuivARB;
12049   glVertexAttrib4NusvARB: TglVertexAttrib4NusvARB;
12050   glVertexAttrib4bvARB: TglVertexAttrib4bvARB;
12051   glVertexAttrib4dARB: TglVertexAttrib4dARB;
12052   glVertexAttrib4dvARB: TglVertexAttrib4dvARB;
12053   glVertexAttrib4fARB: TglVertexAttrib4fARB;
12054   glVertexAttrib4fvARB: TglVertexAttrib4fvARB;
12055   glVertexAttrib4ivARB: TglVertexAttrib4ivARB;
12056   glVertexAttrib4sARB: TglVertexAttrib4sARB;
12057   glVertexAttrib4svARB: TglVertexAttrib4svARB;
12058   glVertexAttrib4ubvARB: TglVertexAttrib4ubvARB;
12059   glVertexAttrib4uivARB: TglVertexAttrib4uivARB;
12060   glVertexAttrib4usvARB: TglVertexAttrib4usvARB;
12061   glVertexAttribPointerARB: TglVertexAttribPointerARB;
12062   glEnableVertexAttribArrayARB: TglEnableVertexAttribArrayARB;
12063   glDisableVertexAttribArrayARB: TglDisableVertexAttribArrayARB;
12064   glProgramStringARB: TglProgramStringARB;
12065   glBindProgramARB: TglBindProgramARB;
12066   glDeleteProgramsARB: TglDeleteProgramsARB;
12067   glGenProgramsARB: TglGenProgramsARB;
12068
12069   glProgramEnvParameter4dARB: TglProgramEnvParameter4dARB;
12070   glProgramEnvParameter4dvARB: TglProgramEnvParameter4dvARB;
12071   glProgramEnvParameter4fARB: TglProgramEnvParameter4fARB;
12072   glProgramEnvParameter4fvARB: TglProgramEnvParameter4fvARB;
12073   glProgramLocalParameter4dARB: TglProgramLocalParameter4dARB;
12074   glProgramLocalParameter4dvARB: TglProgramLocalParameter4dvARB;
12075   glProgramLocalParameter4fARB: TglProgramLocalParameter4fARB;
12076   glProgramLocalParameter4fvARB: TglProgramLocalParameter4fvARB;
12077   glGetProgramEnvParameterdvARB: TglGetProgramEnvParameterdvARB;
12078   glGetProgramEnvParameterfvARB: TglGetProgramEnvParameterfvARB;
12079   glGetProgramLocalParameterdvARB: TglGetProgramLocalParameterdvARB;
12080   glGetProgramLocalParameterfvARB: TglGetProgramLocalParameterfvARB;
12081   glGetProgramivARB: TglGetProgramivARB;
12082   glGetProgramStringARB: TglGetProgramStringARB;
12083   glGetVertexAttribdvARB: TglGetVertexAttribdvARB;
12084   glGetVertexAttribfvARB: TglGetVertexAttribfvARB;
12085   glGetVertexAttribivARB: TglGetVertexAttribivARB;
12086   glGetVertexAttribPointervARB: TglGetVertexAttribPointervARB;
12087   glIsProgramARB: TglIsProgramARB;
12088
12089   // GL_ARB_window_pos
12090   glWindowPos2dARB: TglWindowPos2dARB;
12091   glWindowPos2dvARB: TglWindowPos2dvARB;
12092   glWindowPos2fARB: TglWindowPos2fARB;
12093   glWindowPos2fvARB: TglWindowPos2fvARB;
12094   glWindowPos2iARB: TglWindowPos2iARB;
12095   glWindowPos2ivARB: TglWindowPos2ivARB;
12096   glWindowPos2sARB: TglWindowPos2sARB;
12097   glWindowPos2svARB: TglWindowPos2svARB;
12098   glWindowPos3dARB: TglWindowPos3dARB;
12099   glWindowPos3dvARB: TglWindowPos3dvARB;
12100   glWindowPos3fARB: TglWindowPos3fARB;
12101   glWindowPos3fvARB: TglWindowPos3fvARB;
12102   glWindowPos3iARB: TglWindowPos3iARB;
12103   glWindowPos3ivARB: TglWindowPos3ivARB;
12104   glWindowPos3sARB: TglWindowPos3sARB;
12105   glWindowPos3svARB: TglWindowPos3svARB;
12106
12107   // GL_ARB_draw_buffers
12108   glDrawBuffersARB: TglDrawBuffersARB;
12109
12110   // GL_ARB_color_buffer_float
12111   glClampColorARB: TglClampColorARB;
12112
12113   // GL_ARB_vertex_shader
12114   glGetActiveAttribARB: TglGetActiveAttribARB;
12115   glGetAttribLocationARB: TglGetAttribLocationARB;
12116   glBindAttribLocationARB: TglBindAttribLocationARB;
12117
12118   // GL_ARB_shader_objects
12119   glDeleteObjectARB: TglDeleteObjectARB;
12120   glGetHandleARB: TglGetHandleARB;
12121   glDetachObjectARB: TglDetachObjectARB;
12122   glCreateShaderObjectARB: TglCreateShaderObjectARB;
12123   glShaderSourceARB: TglShaderSourceARB;
12124   glCompileShaderARB: TglCompileShaderARB;
12125   glCreateProgramObjectARB: TglCreateProgramObjectARB;
12126   glAttachObjectARB: TglAttachObjectARB;
12127   glLinkProgramARB: TglLinkProgramARB;
12128   glUseProgramObjectARB: TglUseProgramObjectARB;
12129   glValidateProgramARB: TglValidateProgramARB;
12130   glUniform1fARB: TglUniform1fARB;
12131   glUniform2fARB: TglUniform2fARB;
12132   glUniform3fARB: TglUniform3fARB;
12133   glUniform4fARB: TglUniform4fARB;
12134   glUniform1iARB: TglUniform1iARB;
12135   glUniform2iARB: TglUniform2iARB;
12136   glUniform3iARB: TglUniform3iARB;
12137   glUniform4iARB: TglUniform4iARB;
12138   glUniform1fvARB: TglUniform1fvARB;
12139   glUniform2fvARB: TglUniform2fvARB;
12140   glUniform3fvARB: TglUniform3fvARB;
12141   glUniform4fvARB: TglUniform4fvARB;
12142   glUniform1ivARB: TglUniform1ivARB;
12143   glUniform2ivARB: TglUniform2ivARB;
12144   glUniform3ivARB: TglUniform3ivARB;
12145   glUniform4ivARB: TglUniform4ivARB;
12146   glUniformMatrix2fvARB: TglUniformMatrix2fvARB;
12147   glUniformMatrix3fvARB: TglUniformMatrix3fvARB;
12148   glUniformMatrix4fvARB: TglUniformMatrix4fvARB;
12149   glGetObjectParameterfvARB: TglGetObjectParameterfvARB;
12150   glGetObjectParameterivARB: TglGetObjectParameterivARB;
12151   glGetInfoLogARB: TglGetInfoLogARB;
12152   glGetAttachedObjectsARB: TglGetAttachedObjectsARB;
12153   glGetUniformLocationARB: TglGetUniformLocationARB;
12154   glGetActiveUniformARB: TglGetActiveUniformARB;
12155   glGetUniformfvARB: TglGetUniformfvARB;
12156   glGetUniformivARB: TglGetUniformivARB;
12157   glGetShaderSourceARB: TglGetShaderSourceARB;
12158
12159   // GL_ARB_Occlusion_Query
12160   glGenQueriesARB: TglGenQueriesARB;
12161   glDeleteQueriesARB: TglDeleteQueriesARB;
12162   glIsQueryARB: TglIsQueryARB;
12163   glBeginQueryARB: TglBeginQueryARB;
12164   glEndQueryARB: TglEndQueryARB;
12165   glGetQueryivARB: TglGetQueryivARB;
12166   glGetQueryObjectivARB: TglGetQueryObjectivARB;
12167   glGetQueryObjectuivARB: TglGetQueryObjectuivARB;
12168
12169   // GL_ARB_draw_instanced
12170   glDrawArraysInstancedARB: TglDrawArraysInstancedARB;
12171   glDrawElementsInstancedARB: TglDrawElementsInstancedARB;
12172
12173   // GL_ARB_framebuffer_object
12174   glIsRenderbuffer: TglIsRenderbuffer;
12175   glBindRenderbuffer: TglBindRenderbuffer;
12176   glDeleteRenderbuffers: TglDeleteRenderbuffers;
12177   glGenRenderbuffers: TglGenRenderbuffers;
12178   glRenderbufferStorage: TglRenderbufferStorage;
12179   glGetRenderbufferParameteriv: TglGetRenderbufferParameteriv;
12180   glIsFramebuffer: TglIsFramebuffer;
12181   glBindFramebuffer: TglBindFramebuffer;
12182   glDeleteFramebuffers: TglDeleteFramebuffers;
12183   glGenFramebuffers: TglGenFramebuffers;
12184   glCheckFramebufferStatus: TglCheckFramebufferStatus;
12185   glFramebufferTexture1D: TglFramebufferTexture1D;
12186   glFramebufferTexture2D: TglFramebufferTexture2D;
12187   glFramebufferTexture3D: TglFramebufferTexture3D;
12188   glFramebufferRenderbuffer: TglFramebufferRenderbuffer;
12189   glGetFramebufferAttachmentParameteriv: TglGetFramebufferAttachmentParameteriv;
12190   glGenerateMipmap: TglGenerateMipmap;
12191   glBlitFramebuffer: TglBlitFramebuffer;
12192   glRenderbufferStorageMultisample: TglRenderbufferStorageMultisample;
12193   glFramebufferTextureLayer: TglFramebufferTextureLayer;
12194
12195   // GL_ARB_geometry_shader4
12196   glProgramParameteriARB: TglProgramParameteriARB;
12197   glFramebufferTextureARB: TglFramebufferTextureARB;
12198   glFramebufferTextureLayerARB: TglFramebufferTextureLayerARB;
12199   glFramebufferTextureFaceARB: TglFramebufferTextureFaceARB;
12200
12201   // GL_ARB_instanced_arrays
12202   glVertexAttribDivisorARB: TglVertexAttribDivisorARB;
12203
12204   // GL_ARB_map_buffer_range
12205   glMapBufferRange: TglMapBufferRange;
12206   glFlushMappedBufferRange: TglFlushMappedBufferRange;
12207
12208   // GL_ARB_texture_buffer_object
12209   glTexBufferARB: TglTexBufferARB;
12210
12211   // GL_ARB_vertex_array_object
12212   glBindVertexArray: TglBindVertexArray;
12213   glDeleteVertexArrays: TglDeleteVertexArrays;
12214   glGenVertexArrays: TglGenVertexArrays;
12215   glIsVertexArray: TglIsVertexArray;
12216
12217   // GL_ARB_uniform_buffer_object
12218   glGetUniformIndices: TglGetUniformIndices;
12219   glGetActiveUniformsiv: TglGetActiveUniformsiv;
12220   glGetActiveUniformName: TglGetActiveUniformName;
12221   glGetUniformBlockIndex: TglGetUniformBlockIndex;
12222   glGetActiveUniformBlockiv: TglGetActiveUniformBlockiv;
12223   glGetActiveUniformBlockName: TglGetActiveUniformBlockName;
12224   glUniformBlockBinding: TglUniformBlockBinding;
12225
12226   // GL_ARB_copy_buffer
12227   glCopyBufferSubData: TglCopyBufferSubData;
12228
12229   // GL_ARB_draw_elements_base_vertex
12230   glDrawElementsBaseVertex: TglDrawElementsBaseVertex;
12231   glDrawRangeElementsBaseVertex: TglDrawRangeElementsBaseVertex;
12232   glDrawElementsInstancedBaseVertex: TglDrawElementsInstancedBaseVertex;
12233   glMultiDrawElementsBaseVertex: TglMultiDrawElementsBaseVertex;
12234
12235   // GL_ARB_provoking_vertex
12236   glProvokingVertex: TglProvokingVertex;
12237
12238   // GL_ARB_sync
12239   glFenceSync: TglFenceSync;
12240   glIsSync: TglIsSync;
12241   glDeleteSync: TglDeleteSync;
12242   glClientWaitSync: TglClientWaitSync;
12243   glWaitSync: TglWaitSync;
12244   glGetInteger64v: TglGetInteger64v;
12245   glGetSynciv: TglGetSynciv;
12246
12247   // GL_ARB_texture_multisample
12248   glTexImage2DMultisample: TglTexImage2DMultisample;
12249   glTexImage3DMultisample: TglTexImage3DMultisample;
12250   glGetMultisamplefv: TglGetMultisamplefv;
12251   glSampleMaski: TglSampleMaski;
12252
12253   // GL_ARB_draw_buffers_blend
12254   glBlendEquationiARB: TglBlendEquationiARB;
12255   glBlendEquationSeparateiARB: TglBlendEquationSeparateiARB;
12256   glBlendFunciARB: TglBlendFunciARB;
12257   glBlendFuncSeparateiARB: TglBlendFuncSeparateiARB;
12258
12259   // GL_ARB_sample_shading
12260   glMinSampleShadingARB: TglMinSampleShadingARB;
12261
12262   // GL_ARB_shading_language_include
12263   glNamedStringARB: TglNamedStringARB;
12264   glDeleteNamedStringARB: TglDeleteNamedStringARB;
12265   glCompileShaderIncludeARB: TglCompileShaderIncludeARB;
12266   glIsNamedStringARB: TglIsNamedStringARB;
12267   glGetNamedStringARB: TglGetNamedStringARB;
12268   glGetNamedStringivARB: TglGetNamedStringivARB;
12269
12270   // GL_ARB_blend_func_extended
12271   glBindFragDataLocationIndexed: TglBindFragDataLocationIndexed;
12272   glGetFragDataIndex: TglGetFragDataIndex;
12273
12274   // GL_ARB_sampler_objects
12275   glGenSamplers: TglGenSamplers;
12276   glDeleteSamplers: TglDeleteSamplers;
12277   glIsSampler: TglIsSampler;
12278   glBindSampler: TglBindSampler;
12279   glSamplerParameteri: TglSamplerParameteri;
12280   glSamplerParameteriv: TglSamplerParameteriv;
12281   glSamplerParameterf: TglSamplerParameterf;
12282   glSamplerParameterfv: TglSamplerParameterfv;
12283   glSamplerParameterIiv: TglSamplerParameterIiv;
12284   glSamplerParameterIuiv: TglSamplerParameterIuiv;
12285   glGetSamplerParameteriv: TglGetSamplerParameteriv;
12286   glGetSamplerParameterIiv: TglGetSamplerParameterIiv;
12287   glGetSamplerParameterfv: TglGetSamplerParameterfv;
12288   glGetSamplerParameterIuiv: TglGetSamplerParameterIuiv;
12289
12290   // GL_ARB_timer_query
12291   glQueryCounter: TglQueryCounter;
12292   glGetQueryObjecti64v: TglGetQueryObjecti64v;
12293   glGetQueryObjectui64v: TglGetQueryObjectui64v;
12294
12295   // GL_ARB_vertex_type_2_10_10_10_rev
12296   glVertexP2ui: TglVertexP2ui;
12297   glVertexP2uiv: TglVertexP2uiv;
12298   glVertexP3ui: TglVertexP3ui;
12299   glVertexP3uiv: TglVertexP3uiv;
12300   glVertexP4ui: TglVertexP4ui;
12301   glVertexP4uiv: TglVertexP4uiv;
12302   glTexCoordP1ui: TglTexCoordP1ui;
12303   glTexCoordP1uiv: TglTexCoordP1uiv;
12304   glTexCoordP2ui: TglTexCoordP2ui;
12305   glTexCoordP2uiv: TglTexCoordP2uiv;
12306   glTexCoordP3ui: TglTexCoordP3ui;
12307   glTexCoordP3uiv: TglTexCoordP3uiv;
12308   glTexCoordP4ui: TglTexCoordP4ui;
12309   glTexCoordP4uiv: TglTexCoordP4uiv;
12310   glMultiTexCoordP1ui: TglMultiTexCoordP1ui;
12311   glMultiTexCoordP1uiv: TglMultiTexCoordP1uiv;
12312   glMultiTexCoordP2ui: TglMultiTexCoordP2ui;
12313   glMultiTexCoordP2uiv: TglMultiTexCoordP2uiv;
12314   glMultiTexCoordP3ui: TglMultiTexCoordP3ui;
12315   glMultiTexCoordP3uiv: TglMultiTexCoordP3uiv;
12316   glMultiTexCoordP4ui: TglMultiTexCoordP4ui;
12317   glMultiTexCoordP4uiv: TglMultiTexCoordP4uiv;
12318   glNormalP3ui: TglNormalP3ui;
12319   glNormalP3uiv: TglNormalP3uiv;
12320   glColorP3ui: TglColorP3ui;
12321   glColorP3uiv: TglColorP3uiv;
12322   glColorP4ui: TglColorP4ui;
12323   glColorP4uiv: TglColorP4uiv;
12324   glSecondaryColorP3ui: TglSecondaryColorP3ui;
12325   glSecondaryColorP3uiv: TglSecondaryColorP3uiv;
12326   glVertexAttribP1ui: TglVertexAttribP1ui;
12327   glVertexAttribP1uiv: TglVertexAttribP1uiv;
12328   glVertexAttribP2ui: TglVertexAttribP2ui;
12329   glVertexAttribP2uiv: TglVertexAttribP2uiv;
12330   glVertexAttribP3ui: TglVertexAttribP3ui;
12331   glVertexAttribP3uiv: TglVertexAttribP3uiv;
12332   glVertexAttribP4ui: TglVertexAttribP4ui;
12333   glVertexAttribP4uiv: TglVertexAttribP4uiv;
12334
12335   // GL_ARB_draw_indirect
12336   glDrawArraysIndirect: TglDrawArraysIndirect;
12337   glDrawElementsIndirect: TglDrawElementsIndirect;
12338
12339   // GL_ARB_gpu_shader_fp64
12340   glUniform1d: TglUniform1d;
12341   glUniform2d: TglUniform2d;
12342   glUniform3d: TglUniform3d;
12343   glUniform4d: TglUniform4d;
12344   glUniform1dv: TglUniform1dv;
12345   glUniform2dv: TglUniform2dv;
12346   glUniform3dv: TglUniform3dv;
12347   glUniform4dv: TglUniform4dv;
12348   glUniformMatrix2dv: TglUniformMatrix2dv;
12349   glUniformMatrix3dv: TglUniformMatrix3dv;
12350   glUniformMatrix4dv: TglUniformMatrix4dv;
12351   glUniformMatrix2x3dv: TglUniformMatrix2x3dv;
12352   glUniformMatrix2x4dv: TglUniformMatrix2x4dv;
12353   glUniformMatrix3x2dv: TglUniformMatrix3x2dv;
12354   glUniformMatrix3x4dv: TglUniformMatrix3x4dv;
12355   glUniformMatrix4x2dv: TglUniformMatrix4x2dv;
12356   glUniformMatrix4x3dv: TglUniformMatrix4x3dv;
12357   glGetUniformdv: TglGetUniformdv;
12358
12359   // GL_ARB_shader_subroutine
12360   glGetSubroutineUniformLocation: TglGetSubroutineUniformLocation;
12361   glGetSubroutineIndex: TglGetSubroutineIndex;
12362   glGetActiveSubroutineUniformiv: TglGetActiveSubroutineUniformiv;
12363   glGetActiveSubroutineUniformName: TglGetActiveSubroutineUniformName;
12364   glGetActiveSubroutineName: TglGetActiveSubroutineName;
12365   glUniformSubroutinesuiv: TglUniformSubroutinesuiv;
12366   glGetUniformSubroutineuiv: TglGetUniformSubroutineuiv;
12367   glGetProgramStageiv: TglGetProgramStageiv;
12368
12369   // GL_ARB_tessellation_shader
12370   glPatchParameteri: TglPatchParameteri;
12371   glPatchParameterfv: TglPatchParameterfv;
12372
12373   // GL_ARB_transform_feedback2
12374   glBindTransformFeedback: TglBindTransformFeedback;
12375   glDeleteTransformFeedbacks: TglDeleteTransformFeedbacks;
12376   glGenTransformFeedbacks: TglGenTransformFeedbacks;
12377   glIsTransformFeedback: TglIsTransformFeedback;
12378   glPauseTransformFeedback: TglPauseTransformFeedback;
12379   glResumeTransformFeedback: TglResumeTransformFeedback;
12380   glDrawTransformFeedback: TglDrawTransformFeedback;
12381
12382   // GL_ARB_transform_feedback3
12383   glDrawTransformFeedbackStream: TglDrawTransformFeedbackStream;
12384   glBeginQueryIndexed: TglBeginQueryIndexed;
12385   glEndQueryIndexed: TglEndQueryIndexed;
12386   glGetQueryIndexediv: TglGetQueryIndexediv;
12387
12388   // GL_ARB_ES2_compatibility
12389   glReleaseShaderCompiler: TglReleaseShaderCompiler;
12390   glShaderBinary: TglShaderBinary;
12391   glGetShaderPrecisionFormat: TglGetShaderPrecisionFormat;
12392   glDepthRangef: TglDepthRangef;
12393   glClearDepthf: TglClearDepthf;
12394
12395   // GL_ARB_get_program_binary
12396   glGetProgramBinary: TglGetProgramBinary;
12397   glProgramBinary: TglProgramBinary;
12398   glProgramParameteri: TglProgramParameteri;
12399
12400   // GL_ARB_separate_shader_objects
12401   glUseProgramStages: TglUseProgramStages;
12402   glActiveShaderProgram: TglActiveShaderProgram;
12403   glCreateShaderProgramv: TglCreateShaderProgramv;
12404   glBindProgramPipeline: TglBindProgramPipeline;
12405   glDeleteProgramPipelines: TglDeleteProgramPipelines;
12406   glGenProgramPipelines: TglGenProgramPipelines;
12407   glIsProgramPipeline: TglIsProgramPipeline;
12408   glGetProgramPipelineiv: TglGetProgramPipelineiv;
12409   glProgramUniform1i: TglProgramUniform1i;
12410   glProgramUniform1iv: TglProgramUniform1iv;
12411   glProgramUniform1f: TglProgramUniform1f;
12412   glProgramUniform1fv: TglProgramUniform1fv;
12413   glProgramUniform1d: TglProgramUniform1d;
12414   glProgramUniform1dv: TglProgramUniform1dv;
12415   glProgramUniform1ui: TglProgramUniform1ui;
12416   glProgramUniform1uiv: TglProgramUniform1uiv;
12417   glProgramUniform2i: TglProgramUniform2i;
12418   glProgramUniform2iv: TglProgramUniform2iv;
12419   glProgramUniform2f: TglProgramUniform2f;
12420   glProgramUniform2fv: TglProgramUniform2fv;
12421   glProgramUniform2d: TglProgramUniform2d;
12422   glProgramUniform2dv: TglProgramUniform2dv;
12423   glProgramUniform2ui: TglProgramUniform2ui;
12424   glProgramUniform2uiv: TglProgramUniform2uiv;
12425   glProgramUniform3i: TglProgramUniform3i;
12426   glProgramUniform3iv: TglProgramUniform3iv;
12427   glProgramUniform3f: TglProgramUniform3f;
12428   glProgramUniform3fv: TglProgramUniform3fv;
12429   glProgramUniform3d: TglProgramUniform3d;
12430   glProgramUniform3dv: TglProgramUniform3dv;
12431   glProgramUniform3ui: TglProgramUniform3ui;
12432   glProgramUniform3uiv: TglProgramUniform3uiv;
12433   glProgramUniform4i: TglProgramUniform4i;
12434   glProgramUniform4iv: TglProgramUniform4iv;
12435   glProgramUniform4f: TglProgramUniform4f;
12436   glProgramUniform4fv: TglProgramUniform4fv;
12437   glProgramUniform4d: TglProgramUniform4d;
12438   glProgramUniform4dv: TglProgramUniform4dv;
12439   glProgramUniform4ui: TglProgramUniform4ui;
12440   glProgramUniform4uiv: TglProgramUniform4uiv;
12441   glProgramUniformMatrix2fv: TglProgramUniformMatrix2fv;
12442   glProgramUniformMatrix3fv: TglProgramUniformMatrix3fv;
12443   glProgramUniformMatrix4fv: TglProgramUniformMatrix4fv;
12444   glProgramUniformMatrix2dv: TglProgramUniformMatrix2dv;
12445   glProgramUniformMatrix3dv: TglProgramUniformMatrix3dv;
12446   glProgramUniformMatrix4dv: TglProgramUniformMatrix4dv;
12447   glProgramUniformMatrix2x3fv: TglProgramUniformMatrix2x3fv;
12448   glProgramUniformMatrix3x2fv: TglProgramUniformMatrix3x2fv;
12449   glProgramUniformMatrix2x4fv: TglProgramUniformMatrix2x4fv;
12450   glProgramUniformMatrix4x2fv: TglProgramUniformMatrix4x2fv;
12451   glProgramUniformMatrix3x4fv: TglProgramUniformMatrix3x4fv;
12452   glProgramUniformMatrix4x3fv: TglProgramUniformMatrix4x3fv;
12453   glProgramUniformMatrix2x3dv: TglProgramUniformMatrix2x3dv;
12454   glProgramUniformMatrix3x2dv: TglProgramUniformMatrix3x2dv;
12455   glProgramUniformMatrix2x4dv: TglProgramUniformMatrix2x4dv;
12456   glProgramUniformMatrix4x2dv: TglProgramUniformMatrix4x2dv;
12457   glProgramUniformMatrix3x4dv: TglProgramUniformMatrix3x4dv;
12458   glProgramUniformMatrix4x3dv: TglProgramUniformMatrix4x3dv;
12459   glValidateProgramPipeline: TglValidateProgramPipeline;
12460   glGetProgramPipelineInfoLog: TglGetProgramPipelineInfoLog;
12461
12462   // GL_ARB_vertex_attrib_64bit
12463   glVertexAttribL1d: TglVertexAttribL1d;
12464   glVertexAttribL2d: TglVertexAttribL2d;
12465   glVertexAttribL3d: TglVertexAttribL3d;
12466   glVertexAttribL4d: TglVertexAttribL4d;
12467   glVertexAttribL1dv: TglVertexAttribL1dv;
12468   glVertexAttribL2dv: TglVertexAttribL2dv;
12469   glVertexAttribL3dv: TglVertexAttribL3dv;
12470   glVertexAttribL4dv: TglVertexAttribL4dv;
12471   glVertexAttribLPointer: TglVertexAttribLPointer;
12472   glGetVertexAttribLdv: TglGetVertexAttribLdv;
12473
12474   // GL_ARB_viewport_array
12475   glViewportArrayv: TglViewportArrayv;
12476   glViewportIndexedf: TglViewportIndexedf;
12477   glViewportIndexedfv: TglViewportIndexedfv;
12478   glScissorArrayv: TglScissorArrayv;
12479   glScissorIndexed: TglScissorIndexed;
12480   glScissorIndexedv: TglScissorIndexedv;
12481   glDepthRangeArrayv: TglDepthRangeArrayv;
12482   glDepthRangeIndexed: TglDepthRangeIndexed;
12483   glGetFloati_v: TglGetFloati_v;
12484   glGetDoublei_v: TglGetDoublei_v;
12485
12486   // GL 4.2
12487
12488   // GL_ARB_base_instance
12489   glDrawArraysInstancedBaseInstance : TglDrawArraysInstancedBaseInstance;
12490   glDrawElementsInstancedBaseInstance : TglDrawElementsInstancedBaseInstance;
12491   glDrawElementsInstancedBaseVertexBaseInstance : TglDrawElementsInstancedBaseVertexBaseInstance;
12492
12493   // GL_ARB_transform_feedback_instanced
12494   glDrawTransformFeedbackInstanced : TglDrawTransformFeedbackInstanced;
12495   glDrawTransformFeedbackStreamInstanced : TglDrawTransformFeedbackStreamInstanced;
12496
12497   // GL_ARB_internalformat_query
12498   glGetInternalformativ : TglGetInternalformativ;
12499
12500   // GL_ARB_shader_atomic_counters
12501   glGetActiveAtomicCounterBufferiv : TglGetActiveAtomicCounterBufferiv;
12502
12503   /// GL_ARB_shader_image_load_store
12504   glBindImageTexture : TglBindImageTexture;
12505   glMemoryBarrier : TglMemoryBarrier;
12506
12507   // GL_ARB_texture_storage
12508   glTexStorage1D : TglTexStorage1D;
12509   glTexStorage2D : TglTexStorage2D;
12510   glTexStorage3D : TglTexStorage3D;
12511   glTextureStorage1DEXT : TglTextureStorage1DEXT;
12512   glTextureStorage2DEXT : TglTextureStorage2DEXT;
12513   glTextureStorage3DEXT : TglTextureStorage3DEXT;
12514
12515
12516   // GL 4.3
12517     // GL_KHR_debug
12518     glDebugMessageControl : TglDebugMessageControl;
12519     glDebugMessageInsert : TglDebugMessageInsert;
12520     glDebugMessageCallback : TglDebugMessageCallback;
12521     glGetDebugMessageLog : TglGetDebugMessageLog;
12522     glPushDebugGroup : TglPushDebugGroup;
12523     glPopDebugGroup : TglPopDebugGroup;
12524     glObjectLabel : TglObjectLabel;
12525     glGetObjectLabel : TglGetObjectLabel;
12526     glObjectPtrLabel : TglObjectPtrLabel;
12527     glGetObjectPtrLabel : TglGetObjectPtrLabel;
12528     // GL_ARB_clear_buffer_object
12529     glClearBufferData : TglClearBufferData;
12530     glClearBufferSubData : TglClearBufferSubData;
12531     glClearNamedBufferDataEXT : TglClearNamedBufferDataEXT;
12532     glClearNamedBufferSubDataEXT : TglClearNamedBufferSubDataEXT;
12533     // GL_ARB_compute_shader
12534     glDispatchCompute : TglDispatchCompute;
12535     glDispatchComputeIndirect : TglDispatchComputeIndirect;
12536     // GL_ARB_copy_image
12537     glCopyImageSubData : TglCopyImageSubData;
12538     // GL_ARB_framebuffer_no_attachments
12539     glFramebufferParameteri : TglFramebufferParameteri;
12540     glGetFramebufferParameteriv : TglGetFramebufferParameteriv;
12541     glNamedFramebufferParameteriEXT : TglNamedFramebufferParameteriEXT;
12542     glGetNamedFramebufferParameterivEXT : TglGetNamedFramebufferParameterivEXT;
12543     // GL_ARB_internalformat_query2
12544     glGetInternalformati64v : TglGetInternalformati64v;
12545     // GL_ARB_invalidate_subdata
12546     glInvalidateTexSubImage : TglInvalidateTexSubImage;
12547     glInvalidateTexImage : TglInvalidateTexImage;
12548     glInvalidateBufferSubData : TglInvalidateBufferSubData;
12549     glInvalidateBufferData : TglInvalidateBufferData;
12550     glInvalidateFramebuffer : TglInvalidateFramebuffer;
12551     glInvalidateSubFramebuffer : TglInvalidateSubFramebuffer;
12552     // GL_ARB_multi_draw_indirect
12553     glMultiDrawArraysIndirect : TglMultiDrawArraysIndirect;
12554     glMultiDrawElementsIndirect : TglMultiDrawElementsIndirect;
12555     // GL_ARB_program_interface_query
12556     glGetProgramInterfaceiv : TglGetProgramInterfaceiv;
12557     glGetProgramResourceIndex : TglGetProgramResourceIndex;
12558     glGetProgramResourceName : TglGetProgramResourceName;
12559     glGetProgramResourceiv : TglGetProgramResourceiv;
12560     glGetProgramResourceLocation : TglGetProgramResourceLocation;
12561     glGetProgramResourceLocationIndex : TglGetProgramResourceLocationIndex;
12562     // GL_ARB_shader_storage_buffer_object
12563     glShaderStorageBlockBinding : TglShaderStorageBlockBinding;
12564     // GL_ARB_texture_buffer_range
12565     glTexBufferRange : TglTexBufferRange;
12566     glTextureBufferRangeEXT : TglTextureBufferRangeEXT;
12567     // GL_ARB_texture_storage_multisample
12568     glTexStorage2DMultisample : TglTexStorage2DMultisample;
12569     glTexStorage3DMultisample : TglTexStorage3DMultisample;
12570     glTextureStorage2DMultisampleEXT : TglTextureStorage2DMultisampleEXT;
12571     glTextureStorage3DMultisampleEXT : TglTextureStorage3DMultisampleEXT;
12572     // GL_ARB_texture_view
12573     glTextureView : TglTextureView;
12574     // GL_ARB_vertex_attrib_binding
12575     glBindVertexBuffer : TglBindVertexBuffer;
12576     glVertexAttribFormat : TglVertexAttribFormat;
12577     glVertexAttribIFormat : TglVertexAttribIFormat;
12578     glVertexAttribLFormat : TglVertexAttribLFormat;
12579     glVertexAttribBinding : TglVertexAttribBinding;
12580     glVertexBindingDivisor : TglVertexBindingDivisor;
12581     glVertexArrayBindVertexBufferEXT : TglVertexArrayBindVertexBufferEXT;
12582     glVertexArrayVertexAttribFormatEXT : TglVertexArrayVertexAttribFormatEXT;
12583     glVertexArrayVertexAttribIFormatEXT : TglVertexArrayVertexAttribIFormatEXT;
12584     glVertexArrayVertexAttribLFormatEXT : TglVertexArrayVertexAttribLFormatEXT;
12585     glVertexArrayVertexAttribBindingEXT : TglVertexArrayVertexAttribBindingEXT;
12586     glVertexArrayVertexBindingDivisorEXT : TglVertexArrayVertexBindingDivisorEXT;
12587   // END GL 4.3
12588
12589
12590   // GL 4.4
12591     glBufferStorage : TglBufferStorage;
12592     glClearTexImage : TglClearTexImage;
12593     glClearTexSubImage : TglClearTexSubImage;
12594     glBindBuffersBase : TglBindBuffersBase;
12595     glBindBuffersRange : TglBindBuffersRange;
12596     glBindTextures : TglBindTextures;
12597     glBindSamplers : TglBindSamplers;
12598     glBindImageTextures : TglBindImageTextures;
12599     glBindVertexBuffers : TglBindVertexBuffers;
12600     glTexPageCommitmentARB : TglTexPageCommitmentARB;
12601
12602   // GL 4.5
12603   glClipControl : TglClipControl;
12604   glCreateTransformFeedbacks : TglCreateTransformFeedbacks;
12605   glTransformFeedbackBufferBase : TglTransformFeedbackBufferBase;
12606   glTransformFeedbackBufferRange : TglTransformFeedbackBufferRange;
12607   glGetTransformFeedbackiv : TglGetTransformFeedbackiv;
12608   glGetTransformFeedbacki_v : TglGetTransformFeedbacki_v;
12609   glGetTransformFeedbacki64_v : TglGetTransformFeedbacki64_v;
12610   glCreateBuffers : TglCreateBuffers;
12611   glNamedBufferStorage : TglNamedBufferStorage;
12612   glNamedBufferData : TglNamedBufferData;
12613   glNamedBufferSubData : TglNamedBufferSubData;
12614   glCopyNamedBufferSubData : TglCopyNamedBufferSubData;
12615   glClearNamedBufferData : TglClearNamedBufferData;
12616   glClearNamedBufferSubData : TglClearNamedBufferSubData;
12617   glMapNamedBuffer : TglMapNamedBuffer;
12618   glMapNamedBufferRange : TglMapNamedBufferRange;
12619   glUnmapNamedBuffer : TglUnmapNamedBuffer;
12620   glFlushMappedNamedBufferRange : TglFlushMappedNamedBufferRange;
12621   glGetNamedBufferParameteriv : TglGetNamedBufferParameteriv;
12622   glGetNamedBufferParameteri64v : TglGetNamedBufferParameteri64v;
12623   glGetNamedBufferPointerv : TglGetNamedBufferPointerv;
12624   glGetNamedBufferSubData : TglGetNamedBufferSubData;
12625   glCreateFramebuffers : TglCreateFramebuffers;
12626   glNamedFramebufferRenderbuffer : TglNamedFramebufferRenderbuffer;
12627   glNamedFramebufferParameteri : TglNamedFramebufferParameteri;
12628   glNamedFramebufferTexture : TglNamedFramebufferTexture;
12629   glNamedFramebufferTextureLayer : TglNamedFramebufferTextureLayer;
12630   glNamedFramebufferDrawBuffer : TglNamedFramebufferDrawBuffer;
12631   glNamedFramebufferDrawBuffers : TglNamedFramebufferDrawBuffers;
12632   glNamedFramebufferReadBuffer : TglNamedFramebufferReadBuffer;
12633   glInvalidateNamedFramebufferData : TglInvalidateNamedFramebufferData;
12634   glInvalidateNamedFramebufferSubData : TglInvalidateNamedFramebufferSubData;
12635   glClearNamedFramebufferiv : TglClearNamedFramebufferiv;
12636   glClearNamedFramebufferuiv : TglClearNamedFramebufferuiv;
12637   glClearNamedFramebufferfv : TglClearNamedFramebufferfv;
12638   glClearNamedFramebufferfi : TglClearNamedFramebufferfi;
12639   glBlitNamedFramebuffer : TglBlitNamedFramebuffer;
12640   glCheckNamedFramebufferStatus : TglCheckNamedFramebufferStatus;
12641   glGetNamedFramebufferParameteriv : TglGetNamedFramebufferParameteriv;
12642   glGetNamedFramebufferAttachmentParameteriv : TglGetNamedFramebufferAttachmentParameteriv;
12643   glCreateRenderbuffers : TglCreateRenderbuffers;
12644   glNamedRenderbufferStorage : TglNamedRenderbufferStorage;
12645   glNamedRenderbufferStorageMultisample : TglNamedRenderbufferStorageMultisample;
12646   glGetNamedRenderbufferParameteriv : TglGetNamedRenderbufferParameteriv;
12647   glCreateTextures : TglCreateTextures;
12648   glTextureBuffer : TglTextureBuffer;
12649   glTextureBufferRange : TglTextureBufferRange;
12650   glTextureStorage1D : TglTextureStorage1D;
12651   glTextureStorage2D : TglTextureStorage2D;
12652   glTextureStorage3D : TglTextureStorage3D;
12653   glTextureStorage2DMultisample : TglTextureStorage2DMultisample;
12654   glTextureStorage3DMultisample : TglTextureStorage3DMultisample;
12655   glTextureSubImage1D : TglTextureSubImage1D;
12656   glTextureSubImage2D : TglTextureSubImage2D;
12657   glTextureSubImage3D : TglTextureSubImage3D;
12658   glCompressedTextureSubImage1D : TglCompressedTextureSubImage1D;
12659   glCompressedTextureSubImage2D : TglCompressedTextureSubImage2D;
12660   glCompressedTextureSubImage3D : TglCompressedTextureSubImage3D;
12661   glCopyTextureSubImage1D : TglCopyTextureSubImage1D;
12662   glCopyTextureSubImage2D : TglCopyTextureSubImage2D;
12663   glCopyTextureSubImage3D : TglCopyTextureSubImage3D;
12664   glTextureParameterf : TglTextureParameterf;
12665   glTextureParameterfv : TglTextureParameterfv;
12666   glTextureParameteri : TglTextureParameteri;
12667   glTextureParameterIiv : TglTextureParameterIiv;
12668   glTextureParameterIuiv : TglTextureParameterIuiv;
12669   glTextureParameteriv : TglTextureParameteriv;
12670   glGenerateTextureMipmap : TglGenerateTextureMipmap;
12671   glBindTextureUnit : TglBindTextureUnit;
12672   glGetTextureImage : TglGetTextureImage;
12673   glGetCompressedTextureImage : TglGetCompressedTextureImage;
12674   glGetTextureLevelParameterfv : TglGetTextureLevelParameterfv;
12675   glGetTextureLevelParameteriv : TglGetTextureLevelParameteriv;
12676   glGetTextureParameterfv : TglGetTextureParameterfv;
12677   glGetTextureParameterIiv : TglGetTextureParameterIiv;
12678   glGetTextureParameterIuiv : TglGetTextureParameterIuiv;
12679   glGetTextureParameteriv : TglGetTextureParameteriv;
12680   glCreateVertexArrays : TglCreateVertexArrays;
12681   glDisableVertexArrayAttrib : TglDisableVertexArrayAttrib;
12682   glEnableVertexArrayAttrib : TglEnableVertexArrayAttrib;
12683   glVertexArrayElementBuffer : TglVertexArrayElementBuffer;
12684   glVertexArrayVertexBuffer : TglVertexArrayVertexBuffer;
12685   glVertexArrayVertexBuffers : TglVertexArrayVertexBuffers;
12686   glVertexArrayAttribBinding : TglVertexArrayAttribBinding;
12687   glVertexArrayAttribFormat : TglVertexArrayAttribFormat;
12688   glVertexArrayAttribIFormat : TglVertexArrayAttribIFormat;
12689   glVertexArrayAttribLFormat : TglVertexArrayAttribLFormat;
12690   glVertexArrayBindingDivisor : TglVertexArrayBindingDivisor;
12691   glGetVertexArrayiv : TglGetVertexArrayiv;
12692   glGetVertexArrayIndexediv : TglGetVertexArrayIndexediv;
12693   glGetVertexArrayIndexed64iv : TglGetVertexArrayIndexed64iv;
12694   glCreateSamplers : TglCreateSamplers;
12695   glCreateProgramPipelines : TglCreateProgramPipelines;
12696   glCreateQueries : TglCreateQueries;
12697   glMemoryBarrierByRegion : TglMemoryBarrierByRegion;
12698   glGetTextureSubImage : TglGetTextureSubImage;
12699   glGetCompressedTextureSubImage : TglGetCompressedTextureSubImage;
12700   glGetGraphicsResetStatus : TglGetGraphicsResetStatus;
12701   glGetnCompressedTexImage : TglGetnCompressedTexImage;
12702   glGetnTexImage : TglGetnTexImage;
12703   glGetnUniformdv : TglGetnUniformdv;
12704   glGetnUniformfv : TglGetnUniformfv;
12705   glGetnUniformiv : TglGetnUniformiv;
12706   glGetnUniformuiv : TglGetnUniformuiv;
12707   glReadnPixels : TglReadnPixels;
12708   glGetnMapdv : TglGetnMapdv;
12709   glGetnMapfv : TglGetnMapfv;
12710   glGetnMapiv : TglGetnMapiv;
12711   glGetnPixelMapfv : TglGetnPixelMapfv;
12712   glGetnPixelMapuiv : TglGetnPixelMapuiv;
12713   glGetnPixelMapusv : TglGetnPixelMapusv;
12714   glGetnPolygonStipple : TglGetnPolygonStipple;
12715   glGetnColorTable : TglGetnColorTable;
12716   glGetnConvolutionFilter : TglGetnConvolutionFilter;
12717   glGetnSeparableFilter : TglGetnSeparableFilter;
12718   glGetnHistogram : TglGetnHistogram;
12719   glGetnMinmax : TglGetnMinmax;
12720   glTextureBarrier : TglTextureBarrier;
12721
12722   // GL_ARB_sparse_buffer
12723   glBufferPageCommitmentARB : TglBufferPageCommitmentARB;
12724   glNamedBufferPageCommitmentEXT : TglNamedBufferPageCommitmentEXT;
12725   glNamedBufferPageCommitmentARB : TglNamedBufferPageCommitmentARB;
12726
12727   // GL_KHR_blend_equation_advanced
12728   glBlendBarrierKHR : TglBlendBarrierKHR;
12729
12730   // GL_ARB_cl_event
12731   glCreateSyncFromCLeventARB: TglCreateSyncFromCLeventARB;
12732
12733   // GL_ARB_debug_output
12734   glDebugMessageControlARB: TglDebugMessageControlARB;
12735   glDebugMessageInsertARB: TglDebugMessageInsertARB;
12736   glDebugMessageCallbackARB: TglDebugMessageCallbackARB;
12737   glGetDebugMessageLogARB: TglGetDebugMessageLogARB;
12738
12739   // GL_ARB_robustness
12740   glGetGraphicsResetStatusARB: TglGetGraphicsResetStatusARB;
12741   glGetnMapdvARB: TglGetnMapdvARB;
12742   glGetnMapfvARB: TglGetnMapfvARB;
12743   glGetnMapivARB: TglGetnMapivARB;
12744   glGetnPixelMapfvARB: TglGetnPixelMapfvARB;
12745   glGetnPixelMapuivARB: TglGetnPixelMapuivARB;
12746   glGetnPixelMapusvARB: TglGetnPixelMapusvARB;
12747   glGetnPolygonStippleARB: TglGetnPolygonStippleARB;
12748   glGetnColorTableARB: TglGetnColorTableARB;
12749   glGetnConvolutionFilterARB: TglGetnConvolutionFilterARB;
12750   glGetnSeparableFilterARB: TglGetnSeparableFilterARB;
12751   glGetnHistogramARB: TglGetnHistogramARB;
12752   glGetnMinmaxARB: TglGetnMinmaxARB;
12753   glGetnTexImageARB: TglGetnTexImageARB;
12754   glReadnPixelsARB: TglReadnPixelsARB;
12755   glGetnCompressedTexImageARB: TglGetnCompressedTexImageARB;
12756   glGetnUniformfvARB: TglGetnUniformfvARB;
12757   glGetnUniformivARB: TglGetnUniformivARB;
12758   glGetnUniformuivARB: TglGetnUniformuivARB;
12759   glGetnUniformdvARB: TglGetnUniformdvARB;
12760
12761   // GL_ATI_draw_buffers
12762   glDrawBuffersATI: TglDrawBuffersATI;
12763
12764   // GL_ATI_element_array
12765   glElementPointerATI: TglElementPointerATI;
12766   glDrawElementArrayATI: TglDrawElementArrayATI;
12767   glDrawRangeElementArrayATI: TglDrawRangeElementArrayATI;
12768
12769   // GL_ATI_envmap_bumpmap
12770   glTexBumpParameterivATI: TglTexBumpParameterivATI;
12771   glTexBumpParameterfvATI: TglTexBumpParameterfvATI;
12772   glGetTexBumpParameterivATI: TglGetTexBumpParameterivATI;
12773   glGetTexBumpParameterfvATI: TglGetTexBumpParameterfvATI;
12774
12775   // GL_ATI_fragment_shader
12776   glGenFragmentShadersATI: TglGenFragmentShadersATI;
12777   glBindFragmentShaderATI: TglBindFragmentShaderATI;
12778   glDeleteFragmentShaderATI: TglDeleteFragmentShaderATI;
12779   glBeginFragmentShaderATI: TglBeginFragmentShaderATI;
12780   glEndFragmentShaderATI: TglEndFragmentShaderATI;
12781   glPassTexCoordATI: TglPassTexCoordATI;
12782   glSampleMapATI: TglSampleMapATI;
12783   glColorFragmentOp1ATI: TglColorFragmentOp1ATI;
12784   glColorFragmentOp2ATI: TglColorFragmentOp2ATI;
12785   glColorFragmentOp3ATI: TglColorFragmentOp3ATI;
12786   glAlphaFragmentOp1ATI: TglAlphaFragmentOp1ATI;
12787   glAlphaFragmentOp2ATI: TglAlphaFragmentOp2ATI;
12788   glAlphaFragmentOp3ATI: TglAlphaFragmentOp3ATI;
12789   glSetFragmentShaderConstantATI: TglSetFragmentShaderConstantATI;
12790
12791   // GL_ATI_map_object_buffer
12792   glMapObjectBufferATI: TglMapObjectBufferATI;
12793   glUnmapObjectBufferATI: TglUnmapObjectBufferATI;
12794
12795   // GL_ATI_pn_triangles
12796   glPNTrianglesiATI: TglPNTrianglesiATI;
12797   glPNTrianglesfATI: TglPNTrianglesfATI;
12798
12799   // GL_ATI_separate_stencil
12800   glStencilOpSeparateATI: TglStencilOpSeparateATI;
12801   glStencilFuncSeparateATI: TglStencilFuncSeparateATI;
12802
12803   // GL_ATI_vertex_array_object
12804   glNewObjectBufferATI: TglNewObjectBufferATI;
12805   glIsObjectBufferATI: TglIsObjectBufferATI;
12806   glUpdateObjectBufferATI: TglUpdateObjectBufferATI;
12807   glGetObjectBufferfvATI: TglGetObjectBufferfvATI;
12808   glGetObjectBufferivATI: TglGetObjectBufferivATI;
12809   glFreeObjectBufferATI: TglFreeObjectBufferATI;
12810   glArrayObjectATI: TglArrayObjectATI;
12811   glGetArrayObjectfvATI: TglGetArrayObjectfvATI;
12812   glGetArrayObjectivATI: TglGetArrayObjectivATI;
12813   glVariantArrayObjectATI: TglVariantArrayObjectATI;
12814   glGetVariantArrayObjectfvATI: TglGetVariantArrayObjectfvATI;
12815   glGetVariantArrayObjectivATI: TglGetVariantArrayObjectivATI;
12816   glVertexAttribArrayObjectATI: TglVertexAttribArrayObjectATI;
12817   glGetVertexAttribArrayObjectfvATI: TglGetVertexAttribArrayObjectfvATI;
12818   glGetVertexAttribArrayObjectivATI: TglGetVertexAttribArrayObjectivATI;
12819
12820   // GL_ATI_vertex_streams
12821   glVertexStream1sATI: TglVertexStream1sATI;
12822   glVertexStream1svATI: TglVertexStream1svATI;
12823   glVertexStream1iATI: TglVertexStream1iATI;
12824   glVertexStream1ivATI: TglVertexStream1ivATI;
12825   glVertexStream1fATI: TglVertexStream1fATI;
12826   glVertexStream1fvATI: TglVertexStream1fvATI;
12827   glVertexStream1dATI: TglVertexStream1dATI;
12828   glVertexStream1dvATI: TglVertexStream1dvATI;
12829   glVertexStream2sATI: TglVertexStream2sATI;
12830   glVertexStream2svATI: TglVertexStream2svATI;
12831   glVertexStream2iATI: TglVertexStream2iATI;
12832   glVertexStream2ivATI: TglVertexStream2ivATI;
12833   glVertexStream2fATI: TglVertexStream2fATI;
12834   glVertexStream2fvATI: TglVertexStream2fvATI;
12835   glVertexStream2dATI: TglVertexStream2dATI;
12836   glVertexStream2dvATI: TglVertexStream2dvATI;
12837   glVertexStream3sATI: TglVertexStream3sATI;
12838   glVertexStream3svATI: TglVertexStream3svATI;
12839   glVertexStream3iATI: TglVertexStream3iATI;
12840   glVertexStream3ivATI: TglVertexStream3ivATI;
12841   glVertexStream3fATI: TglVertexStream3fATI;
12842   glVertexStream3fvATI: TglVertexStream3fvATI;
12843   glVertexStream3dATI: TglVertexStream3dATI;
12844   glVertexStream3dvATI: TglVertexStream3dvATI;
12845   glVertexStream4sATI: TglVertexStream4sATI;
12846   glVertexStream4svATI: TglVertexStream4svATI;
12847   glVertexStream4iATI: TglVertexStream4iATI;
12848   glVertexStream4ivATI: TglVertexStream4ivATI;
12849   glVertexStream4fATI: TglVertexStream4fATI;
12850   glVertexStream4fvATI: TglVertexStream4fvATI;
12851   glVertexStream4dATI: TglVertexStream4dATI;
12852   glVertexStream4dvATI: TglVertexStream4dvATI;
12853   glNormalStream3bATI: TglNormalStream3bATI;
12854   glNormalStream3bvATI: TglNormalStream3bvATI;
12855   glNormalStream3sATI: TglNormalStream3sATI;
12856   glNormalStream3svATI: TglNormalStream3svATI;
12857   glNormalStream3iATI: TglNormalStream3iATI;
12858   glNormalStream3ivATI: TglNormalStream3ivATI;
12859   glNormalStream3fATI: TglNormalStream3fATI;
12860   glNormalStream3fvATI: TglNormalStream3fvATI;
12861   glNormalStream3dATI: TglNormalStream3dATI;
12862   glNormalStream3dvATI: TglNormalStream3dvATI;
12863   glClientActiveVertexStreamATI: TglClientActiveVertexStreamATI;
12864   glVertexBlendEnviATI: TglVertexBlendEnviATI;
12865   glVertexBlendEnvfATI: TglVertexBlendEnvfATI;
12866
12867   // GL_AMD_performance_monitor
12868   glGetPerfMonitorGroupsAMD: TglGetPerfMonitorGroupsAMD;
12869   glGetPerfMonitorCountersAMD: TglGetPerfMonitorCountersAMD;
12870   glGetPerfMonitorGroupStringAMD: TglGetPerfMonitorGroupStringAMD;
12871   glGetPerfMonitorCounterStringAMD: TglGetPerfMonitorCounterStringAMD;
12872   glGetPerfMonitorCounterInfoAMD: TglGetPerfMonitorCounterInfoAMD;
12873   glGenPerfMonitorsAMD: TglGenPerfMonitorsAMD;
12874   glDeletePerfMonitorsAMD: TglDeletePerfMonitorsAMD;
12875   glSelectPerfMonitorCountersAMD: TglSelectPerfMonitorCountersAMD;
12876   glBeginPerfMonitorAMD: TglBeginPerfMonitorAMD;
12877   glEndPerfMonitorAMD: TglEndPerfMonitorAMD;
12878   glGetPerfMonitorCounterDataAMD: TglGetPerfMonitorCounterDataAMD;
12879
12880   // GL_AMD_vertex_shader_tesselator
12881   glTessellationFactorAMD: TglTessellationFactorAMD;
12882   glTessellationModeAMD: TglTessellationModeAMD;
12883
12884   // GL_AMD_draw_buffers_blend
12885   glBlendFuncIndexedAMD: TglBlendFuncIndexedAMD;
12886   glBlendFuncSeparateIndexedAMD: TglBlendFuncSeparateIndexedAMD;
12887   glBlendEquationIndexedAMD: TglBlendEquationIndexedAMD;
12888   glBlendEquationSeparateIndexedAMD: TglBlendEquationSeparateIndexedAMD;
12889
12890   // GL_AMD_name_gen_delete
12891   glGenNamesAMD: TglGenNamesAMD;
12892   glDeleteNamesAMD: TglDeleteNamesAMD;
12893   glIsNameAMD: TglIsNameAMD;
12894
12895   // GL_AMD_debug_output
12896   glDebugMessageEnableAMD: TglDebugMessageEnableAMD;
12897   glDebugMessageInsertAMD: TglDebugMessageInsertAMD;
12898   glDebugMessageCallbackAMD: TglDebugMessageCallbackAMD;
12899   glGetDebugMessageLogAMD: TglGetDebugMessageLogAMD;
12900
12901   // GL_EXT_blend_color
12902   glBlendColorEXT: TglBlendColorEXT;
12903
12904   // GL_EXT_blend_func_separate
12905   glBlendFuncSeparateEXT: TglBlendFuncSeparateEXT;
12906
12907   // GL_EXT_blend_minmax
12908   glBlendEquationEXT: TglBlendEquationEXT;
12909
12910   // GL_EXT_color_subtable
12911   glColorSubTableEXT: TglColorSubTableEXT;
12912   glCopyColorSubTableEXT: TglCopyColorSubTableEXT;
12913
12914   // GL_EXT_compiled_vertex_array
12915   glLockArraysEXT: TglLockArraysEXT;
12916   glUnlockArraysEXT: TglUnlockArraysEXT;
12917
12918   // GL_EXT_convolution
12919   glConvolutionFilter1DEXT: TglConvolutionFilter1DEXT;
12920   glConvolutionFilter2DEXT: TglConvolutionFilter2DEXT;
12921   glConvolutionParameterfEXT: TglConvolutionParameterfEXT;
12922   glConvolutionParameterfvEXT: TglConvolutionParameterfvEXT;
12923   glConvolutionParameteriEXT: TglConvolutionParameteriEXT;
12924   glConvolutionParameterivEXT: TglConvolutionParameterivEXT;
12925   glCopyConvolutionFilter1DEXT: TglCopyConvolutionFilter1DEXT;
12926   glCopyConvolutionFilter2DEXT: TglCopyConvolutionFilter2DEXT;
12927   glGetConvolutionFilterEXT: TglGetConvolutionFilterEXT;
12928   glGetConvolutionParameterfvEXT: TglGetConvolutionParameterfvEXT;
12929   glGetConvolutionParameterivEXT: TglGetConvolutionParameterivEXT;
12930   glGetSeparableFilterEXT: TglGetSeparableFilterEXT;
12931   glSeparableFilter2DEXT: TglSeparableFilter2DEXT;
12932
12933   // GL_EXT_coordinate_frame
12934   glTangent3bEXT: TglTangent3bEXT;
12935   glTangent3bvEXT: TglTangent3bvEXT;
12936   glTangent3dEXT: TglTangent3dEXT;
12937   glTangent3dvEXT: TglTangent3dvEXT;
12938   glTangent3fEXT: TglTangent3fEXT;
12939   glTangent3fvEXT: TglTangent3fvEXT;
12940   glTangent3iEXT: TglTangent3iEXT;
12941   glTangent3ivEXT: TglTangent3ivEXT;
12942   glTangent3sEXT: TglTangent3sEXT;
12943   glTangent3svEXT: TglTangent3svEXT;
12944   glBinormal3bEXT: TglBinormal3bEXT;
12945   glBinormal3bvEXT: TglBinormal3bvEXT;
12946   glBinormal3dEXT: TglBinormal3dEXT;
12947   glBinormal3dvEXT: TglBinormal3dvEXT;
12948   glBinormal3fEXT: TglBinormal3fEXT;
12949   glBinormal3fvEXT: TglBinormal3fvEXT;
12950   glBinormal3iEXT: TglBinormal3iEXT;
12951   glBinormal3ivEXT: TglBinormal3ivEXT;
12952   glBinormal3sEXT: TglBinormal3sEXT;
12953   glBinormal3svEXT: TglBinormal3svEXT;
12954   glTangentPointerEXT: TglTangentPointerEXT;
12955   glBinormalPointerEXT: TglBinormalPointerEXT;
12956
12957   // GL_EXT_copy_texture
12958   glCopyTexImage1DEXT: TglCopyTexImage1DEXT;
12959   glCopyTexImage2DEXT: TglCopyTexImage2DEXT;
12960   glCopyTexSubImage1DEXT: TglCopyTexSubImage1DEXT;
12961   glCopyTexSubImage2DEXT: TglCopyTexSubImage2DEXT;
12962   glCopyTexSubImage3DEXT: TglCopyTexSubImage3DEXT;
12963
12964   // GL_EXT_cull_vertex
12965   glCullParameterdvEXT: TglCullParameterdvEXT;
12966   glCullParameterfvEXT: TglCullParameterfvEXT;
12967
12968   // GL_EXT_draw_range_elements
12969   glDrawRangeElementsEXT: TglDrawRangeElementsEXT;
12970
12971   // GL_EXT_fog_coord
12972   glFogCoordfEXT: TglFogCoordfEXT;
12973   glFogCoordfvEXT: TglFogCoordfvEXT;
12974   glFogCoorddEXT: TglFogCoorddEXT;
12975   glFogCoorddvEXT: TglFogCoorddvEXT;
12976   glFogCoordPointerEXT: TglFogCoordPointerEXT;
12977
12978   // GL_EXT_framebuffer_object
12979   glIsRenderbufferEXT: TglIsRenderbufferEXT;
12980   glBindRenderbufferEXT: TglBindRenderbufferEXT;
12981   glDeleteRenderbuffersEXT: TglDeleteRenderbuffersEXT;
12982   glGenRenderbuffersEXT: TglGenRenderbuffersEXT;
12983   glRenderbufferStorageEXT: TglRenderbufferStorageEXT;
12984   glGetRenderbufferParameterivEXT: TglGetRenderbufferParameterivEXT;
12985   glIsFramebufferEXT: TglIsFramebufferEXT;
12986   glBindFramebufferEXT: TglBindFramebufferEXT;
12987   glDeleteFramebuffersEXT: TglDeleteFramebuffersEXT;
12988   glGenFramebuffersEXT: TglGenFramebuffersEXT;
12989   glCheckFramebufferStatusEXT: TglCheckFramebufferStatusEXT;
12990   glFramebufferTexture1DEXT: TglFramebufferTexture1DEXT;
12991   glFramebufferTexture2DEXT: TglFramebufferTexture2DEXT;
12992   glFramebufferTexture3DEXT: TglFramebufferTexture3DEXT;
12993   glFramebufferRenderbufferEXT: TglFramebufferRenderbufferEXT;
12994   glGetFramebufferAttachmentParameterivEXT: TglGetFramebufferAttachmentParameterivEXT;
12995   glGenerateMipmapEXT: TglGenerateMipmapEXT;
12996
12997   // GL_EXT_histogram
12998   glGetHistogramEXT: TglGetHistogramEXT;
12999   glGetHistogramParameterfvEXT: TglGetHistogramParameterfvEXT;
13000   glGetHistogramParameterivEXT: TglGetHistogramParameterivEXT;
13001   glGetMinmaxEXT: TglGetMinmaxEXT;
13002   glGetMinmaxParameterfvEXT: TglGetMinmaxParameterfvEXT;
13003   glGetMinmaxParameterivEXT: TglGetMinmaxParameterivEXT;
13004   glHistogramEXT: TglHistogramEXT;
13005   glMinmaxEXT: TglMinmaxEXT;
13006   glResetHistogramEXT: TglResetHistogramEXT;
13007   glResetMinmaxEXT: TglResetMinmaxEXT;
13008
13009   // GL_EXT_index_func
13010   glIndexFuncEXT: TglIndexFuncEXT;
13011
13012   // GL_EXT_index_material
13013   glIndexMaterialEXT: TglIndexMaterialEXT;
13014
13015   // GL_EXT_light_texture
13016   glApplyTextureEXT: TglApplyTextureEXT;
13017   glTextureLightEXT: TglTextureLightEXT;
13018   glTextureMaterialEXT: TglTextureMaterialEXT;
13019
13020   // GL_EXT_multi_draw_arrays
13021   glMultiDrawArraysEXT: TglMultiDrawArraysEXT;
13022   glMultiDrawElementsEXT: TglMultiDrawElementsEXT;
13023
13024   // GL_EXT_multisample
13025   glSampleMaskEXT: TglSampleMaskEXT;
13026   glSamplePatternEXT: TglSamplePatternEXT;
13027
13028   // GL_EXT_paletted_texture
13029   glColorTableEXT: TglColorTableEXT;
13030   glGetColorTableEXT: TglGetColorTableEXT;
13031   glGetColorTableParameterivEXT: TglGetColorTableParameterivEXT;
13032   glGetColorTableParameterfvEXT: TglGetColorTableParameterfvEXT;
13033
13034   // GL_EXT_pixel_transform
13035   glPixelTransformParameteriEXT: TglPixelTransformParameteriEXT;
13036   glPixelTransformParameterfEXT: TglPixelTransformParameterfEXT;
13037   glPixelTransformParameterivEXT: TglPixelTransformParameterivEXT;
13038   glPixelTransformParameterfvEXT: TglPixelTransformParameterfvEXT;
13039
13040   // GL_EXT_point_parameters
13041   glPointParameterfEXT: TglPointParameterfEXT;
13042   glPointParameterfvEXT: TglPointParameterfvEXT;
13043
13044   // GL_EXT_polygon_offset
13045   glPolygonOffsetEXT: TglPolygonOffsetEXT;
13046
13047   // GL_EXT_secondary_color
13048   glSecondaryColor3bEXT: TglSecondaryColor3bEXT;
13049   glSecondaryColor3bvEXT: TglSecondaryColor3bvEXT;
13050   glSecondaryColor3dEXT: TglSecondaryColor3dEXT;
13051   glSecondaryColor3dvEXT: TglSecondaryColor3dvEXT;
13052   glSecondaryColor3fEXT: TglSecondaryColor3fEXT;
13053   glSecondaryColor3fvEXT: TglSecondaryColor3fvEXT;
13054   glSecondaryColor3iEXT: TglSecondaryColor3iEXT;
13055   glSecondaryColor3ivEXT: TglSecondaryColor3ivEXT;
13056   glSecondaryColor3sEXT: TglSecondaryColor3sEXT;
13057   glSecondaryColor3svEXT: TglSecondaryColor3svEXT;
13058   glSecondaryColor3ubEXT: TglSecondaryColor3ubEXT;
13059   glSecondaryColor3ubvEXT: TglSecondaryColor3ubvEXT;
13060   glSecondaryColor3uiEXT: TglSecondaryColor3uiEXT;
13061   glSecondaryColor3uivEXT: TglSecondaryColor3uivEXT;
13062   glSecondaryColor3usEXT: TglSecondaryColor3usEXT;
13063   glSecondaryColor3usvEXT: TglSecondaryColor3usvEXT;
13064   glSecondaryColorPointerEXT: TglSecondaryColorPointerEXT;
13065
13066   // GL_EXT_stencil_two_side
13067   glActiveStencilFaceEXT: TglActiveStencilFaceEXT;
13068
13069   // GL_EXT_subtexture
13070   glTexSubImage1DEXT: TglTexSubImage1DEXT;
13071   glTexSubImage2DEXT: TglTexSubImage2DEXT;
13072
13073   // GL_EXT_texture3D
13074   glTexImage3DEXT: TglTexImage3DEXT;
13075   glTexSubImage3DEXT: TglTexSubImage3DEXT;
13076
13077   // GL_EXT_texture_object
13078   glAreTexturesResidentEXT: TglAreTexturesResidentEXT;
13079   glBindTextureEXT: TglBindTextureEXT;
13080   glDeleteTexturesEXT: TglDeleteTexturesEXT;
13081   glGenTexturesEXT: TglGenTexturesEXT;
13082   glIsTextureEXT: TglIsTextureEXT;
13083   glPrioritizeTexturesEXT: TglPrioritizeTexturesEXT;
13084
13085   // GL_EXT_texture_perturb_normal
13086   glTextureNormalEXT: TglTextureNormalEXT;
13087
13088   // GL_EXT_vertex_array
13089   glArrayElementEXT: TglArrayElementEXT;
13090   glColorPointerEXT: TglColorPointerEXT;
13091   glDrawArraysEXT: TglDrawArraysEXT;
13092   glEdgeFlagPointerEXT: TglEdgeFlagPointerEXT;
13093   glGetPointervEXT: TglGetPointervEXT;
13094   glIndexPointerEXT: TglIndexPointerEXT;
13095   glNormalPointerEXT: TglNormalPointerEXT;
13096   glTexCoordPointerEXT: TglTexCoordPointerEXT;
13097   glVertexPointerEXT: TglVertexPointerEXT;
13098
13099   // GL_EXT_vertex_shader
13100   glBeginVertexShaderEXT: TglBeginVertexShaderEXT;
13101   glEndVertexShaderEXT: TglEndVertexShaderEXT;
13102   glBindVertexShaderEXT: TglBindVertexShaderEXT;
13103   glGenVertexShadersEXT: TglGenVertexShadersEXT;
13104   glDeleteVertexShaderEXT: TglDeleteVertexShaderEXT;
13105   glShaderOp1EXT: TglShaderOp1EXT;
13106   glShaderOp2EXT: TglShaderOp2EXT;
13107   glShaderOp3EXT: TglShaderOp3EXT;
13108   glSwizzleEXT: TglSwizzleEXT;
13109   glWriteMaskEXT: TglWriteMaskEXT;
13110   glInsertComponentEXT: TglInsertComponentEXT;
13111   glExtractComponentEXT: TglExtractComponentEXT;
13112   glGenSymbolsEXT: TglGenSymbolsEXT;
13113   glSetInvariantEXT: TglSetInvariantEXT;
13114   glSetLocalConstantEXT: TglSetLocalConstantEXT;
13115   glVariantbvEXT: TglVariantbvEXT;
13116   glVariantsvEXT: TglVariantsvEXT;
13117   glVariantivEXT: TglVariantivEXT;
13118   glVariantfvEXT: TglVariantfvEXT;
13119   glVariantdvEXT: TglVariantdvEXT;
13120   glVariantubvEXT: TglVariantubvEXT;
13121   glVariantusvEXT: TglVariantusvEXT;
13122   glVariantuivEXT: TglVariantuivEXT;
13123   glVariantPointerEXT: TglVariantPointerEXT;
13124   glEnableVariantClientStateEXT: TglEnableVariantClientStateEXT;
13125   glDisableVariantClientStateEXT: TglDisableVariantClientStateEXT;
13126   glBindLightParameterEXT: TglBindLightParameterEXT;
13127   glBindMaterialParameterEXT: TglBindMaterialParameterEXT;
13128   glBindTexGenParameterEXT: TglBindTexGenParameterEXT;
13129   glBindTextureUnitParameterEXT: TglBindTextureUnitParameterEXT;
13130   glBindParameterEXT: TglBindParameterEXT;
13131   glIsVariantEnabledEXT: TglIsVariantEnabledEXT;
13132   glGetVariantBooleanvEXT: TglGetVariantBooleanvEXT;
13133   glGetVariantIntegervEXT: TglGetVariantIntegervEXT;
13134   glGetVariantFloatvEXT: TglGetVariantFloatvEXT;
13135   glGetVariantPointervEXT: TglGetVariantPointervEXT;
13136   glGetInvariantBooleanvEXT: TglGetInvariantBooleanvEXT;
13137   glGetInvariantIntegervEXT: TglGetInvariantIntegervEXT;
13138   glGetInvariantFloatvEXT: TglGetInvariantFloatvEXT;
13139   glGetLocalConstantBooleanvEXT: TglGetLocalConstantBooleanvEXT;
13140   glGetLocalConstantIntegervEXT: TglGetLocalConstantIntegervEXT;
13141   glGetLocalConstantFloatvEXT: TglGetLocalConstantFloatvEXT;
13142
13143   // GL_EXT_vertex_weighting
13144   glVertexWeightfEXT: TglVertexWeightfEXT;
13145   glVertexWeightfvEXT: TglVertexWeightfvEXT;
13146   glVertexWeightPointerEXT: TglVertexWeightPointerEXT;
13147
13148   // GL_EXT_stencil_clear_tag
13149   glStencilClearTagEXT: TglStencilClearTagEXT;
13150
13151   // GL_EXT_framebuffer_blit
13152   glBlitFramebufferEXT: TglBlitFramebufferEXT;
13153
13154   // GL_EXT_framebuffer_multisample
13155   glRenderbufferStorageMultisampleEXT: TglRenderbufferStorageMultisampleEXT;
13156
13157   // GL_EXT_timer_query
13158   glGetQueryObjecti64vEXT: TglGetQueryObjecti64vEXT;
13159   glGetQueryObjectui64vEXT: TglGetQueryObjectui64vEXT;
13160
13161   // GL_EXT_gpu_program_parameters
13162   glProgramEnvParameters4fvEXT: TglProgramEnvParameters4fvEXT;
13163   glProgramLocalParameters4fvEXT: TglProgramLocalParameters4fvEXT;
13164
13165   // GL_EXT_bindable_uniform
13166   glUniformBufferEXT: TglUniformBufferEXT;
13167   glGetUniformBufferSizeEXT: TglGetUniformBufferSizeEXT;
13168   glGetUniformOffsetEXT: TglGetUniformOffsetEXT;
13169
13170   // GL_EXT_draw_buffers2
13171   glColorMaskIndexedEXT: TglColorMaskIndexedEXT;
13172   glGetBooleanIndexedvEXT: TglGetBooleanIndexedvEXT;
13173   glGetIntegerIndexedvEXT: TglGetIntegerIndexedvEXT;
13174   glEnableIndexedEXT: TglEnableIndexedEXT;
13175   glDisableIndexedEXT: TglDisableIndexedEXT;
13176   glIsEnabledIndexedEXT: TglIsEnabledIndexedEXT;
13177
13178   // GL_EXT_draw_instanced
13179   glDrawArraysInstancedEXT: TglDrawArraysInstancedEXT;
13180   glDrawElementsInstancedEXT: TglDrawElementsInstancedEXT;
13181
13182   // GL_EXT_geometry_shader4
13183   glProgramParameteriEXT: TglProgramParameteriEXT;
13184   glFramebufferTextureEXT: TglFramebufferTextureEXT;
13185 //  glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13186   glFramebufferTextureFaceEXT: TglFramebufferTextureFaceEXT;
13187
13188   // GL_EXT_gpu_shader4
13189   glVertexAttribI1iEXT: TglVertexAttribI1iEXT;
13190   glVertexAttribI2iEXT: TglVertexAttribI2iEXT;
13191   glVertexAttribI3iEXT: TglVertexAttribI3iEXT;
13192   glVertexAttribI4iEXT: TglVertexAttribI4iEXT;
13193   glVertexAttribI1uiEXT: TglVertexAttribI1uiEXT;
13194   glVertexAttribI2uiEXT: TglVertexAttribI2uiEXT;
13195   glVertexAttribI3uiEXT: TglVertexAttribI3uiEXT;
13196   glVertexAttribI4uiEXT: TglVertexAttribI4uiEXT;
13197   glVertexAttribI1ivEXT: TglVertexAttribI1ivEXT;
13198   glVertexAttribI2ivEXT: TglVertexAttribI2ivEXT;
13199   glVertexAttribI3ivEXT: TglVertexAttribI3ivEXT;
13200   glVertexAttribI4ivEXT: TglVertexAttribI4ivEXT;
13201   glVertexAttribI1uivEXT: TglVertexAttribI1uivEXT;
13202   glVertexAttribI2uivEXT: TglVertexAttribI2uivEXT;
13203   glVertexAttribI3uivEXT: TglVertexAttribI3uivEXT;
13204   glVertexAttribI4uivEXT: TglVertexAttribI4uivEXT;
13205   glVertexAttribI4bvEXT: TglVertexAttribI4bvEXT;
13206   glVertexAttribI4svEXT: TglVertexAttribI4svEXT;
13207   glVertexAttribI4ubvEXT: TglVertexAttribI4ubvEXT;
13208   glVertexAttribI4usvEXT: TglVertexAttribI4usvEXT;
13209   glVertexAttribIPointerEXT: TglVertexAttribIPointerEXT;
13210   glGetVertexAttribIivEXT: TglGetVertexAttribIivEXT;
13211   glGetVertexAttribIuivEXT: TglGetVertexAttribIuivEXT;
13212   glUniform1uiEXT: TglUniform1uiEXT;
13213   glUniform2uiEXT: TglUniform2uiEXT;
13214   glUniform3uiEXT: TglUniform3uiEXT;
13215   glUniform4uiEXT: TglUniform4uiEXT;
13216   glUniform1uivEXT: TglUniform1uivEXT;
13217   glUniform2uivEXT: TglUniform2uivEXT;
13218   glUniform3uivEXT: TglUniform3uivEXT;
13219   glUniform4uivEXT: TglUniform4uivEXT;
13220   glGetUniformuivEXT: TglGetUniformuivEXT;
13221   glBindFragDataLocationEXT: TglBindFragDataLocationEXT;
13222   glGetFragDataLocationEXT: TglGetFragDataLocationEXT;
13223
13224   // GL_EXT_texture_array
13225   glFramebufferTextureLayerEXT: TglFramebufferTextureLayerEXT;
13226
13227   // GL_EXT_texture_buffer_object
13228   glTexBufferEXT: TglTexBufferEXT;
13229
13230   // GL_EXT_texture_integer
13231   glClearColorIiEXT: TglClearColorIiEXT;
13232   glClearColorIuiEXT: TglClearColorIuiEXT;
13233   glTexParameterIivEXT: TglTexParameterIivEXT;
13234   glTexParameterIuivEXT: TglTexParameterIuivEXT;
13235   glGetTexParameterIivEXT: TglGetTexParameterIivEXT;
13236   glGetTexParameterIiuvEXT: TglGetTexParameterIiuvEXT;
13237
13238   // GL_EXT_transform_feedback
13239   glBeginTransformFeedbackEXT: TglBeginTransformFeedbackEXT;
13240   glEndTransformFeedbackEXT: TglEndTransformFeedbackEXT;
13241   glBindBufferRangeEXT: TglBindBufferRangeEXT;
13242   glBindBufferOffsetEXT: TglBindBufferOffsetEXT;
13243   glBindBufferBaseEXT: TglBindBufferBaseEXT;
13244   glTransformFeedbackVaryingsEXT: TglTransformFeedbackVaryingsEXT;
13245   glGetTransformFeedbackVaryingEXT: TglGetTransformFeedbackVaryingEXT;
13246
13247   // GL_EXT_direct_state_access
13248   glClientAttribDefaultEXT: TglClientAttribDefaultEXT;
13249   glPushClientAttribDefaultEXT: TglPushClientAttribDefaultEXT;
13250   glMatrixLoadfEXT: TglMatrixLoadfEXT;
13251   glMatrixLoaddEXT: TglMatrixLoaddEXT;
13252   glMatrixMultfEXT: TglMatrixMultfEXT;
13253   glMatrixMultdEXT: TglMatrixMultdEXT;
13254   glMatrixLoadIdentityEXT: TglMatrixLoadIdentityEXT;
13255   glMatrixRotatefEXT: TglMatrixRotatefEXT;
13256   glMatrixRotatedEXT: TglMatrixRotatedEXT;
13257   glMatrixScalefEXT: TglMatrixScalefEXT;
13258   glMatrixScaledEXT: TglMatrixScaledEXT;
13259   glMatrixTranslatefEXT: TglMatrixTranslatefEXT;
13260   glMatrixTranslatedEXT: TglMatrixTranslatedEXT;
13261   glMatrixFrustumEXT: TglMatrixFrustumEXT;
13262   glMatrixOrthoEXT: TglMatrixOrthoEXT;
13263   glMatrixPopEXT: TglMatrixPopEXT;
13264   glMatrixPushEXT: TglMatrixPushEXT;
13265   glMatrixLoadTransposefEXT: TglMatrixLoadTransposefEXT;
13266   glMatrixLoadTransposedEXT: TglMatrixLoadTransposedEXT;
13267   glMatrixMultTransposefEXT: TglMatrixMultTransposefEXT;
13268   glMatrixMultTransposedEXT: TglMatrixMultTransposedEXT;
13269   glTextureParameterfEXT: TglTextureParameterfEXT;
13270   glTextureParameterfvEXT: TglTextureParameterfvEXT;
13271   glTextureParameteriEXT: TglTextureParameteriEXT;
13272   glTextureParameterivEXT: TglTextureParameterivEXT;
13273   glTextureImage1DEXT: TglTextureImage1DEXT;
13274   glTextureImage2DEXT: TglTextureImage2DEXT;
13275   glTextureSubImage1DEXT: TglTextureSubImage1DEXT;
13276   glTextureSubImage2DEXT: TglTextureSubImage2DEXT;
13277   glCopyTextureImage1DEXT: TglCopyTextureImage1DEXT;
13278   glCopyTextureImage2DEXT: TglCopyTextureImage2DEXT;
13279   glCopyTextureSubImage1DEXT: TglCopyTextureSubImage1DEXT;
13280   glCopyTextureSubImage2DEXT: TglCopyTextureSubImage2DEXT;
13281   glGetTextureImageEXT: TglGetTextureImageEXT;
13282   glGetTextureParameterfvEXT: TglGetTextureParameterfvEXT;
13283   glGetTextureParameterivEXT: TglGetTextureParameterivEXT;
13284   glGetTextureLevelParameterfvEXT: TglGetTextureLevelParameterfvEXT;
13285   glGetTextureLevelParameterivEXT: TglGetTextureLevelParameterivEXT;
13286   glTextureImage3DEXT: TglTextureImage3DEXT;
13287   glTextureSubImage3DEXT: TglTextureSubImage3DEXT;
13288   glCopyTextureSubImage3DEXT: TglCopyTextureSubImage3DEXT;
13289   glMultiTexParameterfEXT: TglMultiTexParameterfEXT;
13290   glMultiTexParameterfvEXT: TglMultiTexParameterfvEXT;
13291   glMultiTexParameteriEXT: TglMultiTexParameteriEXT;
13292   glMultiTexParameterivEXT: TglMultiTexParameterivEXT;
13293   glMultiTexImage1DEXT: TglMultiTexImage1DEXT;
13294   glMultiTexImage2DEXT: TglMultiTexImage2DEXT;
13295   glMultiTexSubImage1DEXT: TglMultiTexSubImage1DEXT;
13296   glMultiTexSubImage2DEXT: TglMultiTexSubImage2DEXT;
13297   glCopyMultiTexImage1DEXT: TglCopyMultiTexImage1DEXT;
13298   glCopyMultiTexImage2DEXT: TglCopyMultiTexImage2DEXT;
13299   glCopyMultiTexSubImage1DEXT: TglCopyMultiTexSubImage1DEXT;
13300   glCopyMultiTexSubImage2DEXT: TglCopyMultiTexSubImage2DEXT;
13301   glGetMultiTexImageEXT: TglGetMultiTexImageEXT;
13302   glGetMultiTexParameterfvEXT: TglGetMultiTexParameterfvEXT;
13303   glGetMultiTexParameterivEXT: TglGetMultiTexParameterivEXT;
13304   glGetMultiTexLevelParameterfvEXT: TglGetMultiTexLevelParameterfvEXT;
13305   glGetMultiTexLevelParameterivEXT: TglGetMultiTexLevelParameterivEXT;
13306   glMultiTexImage3DEXT: TglMultiTexImage3DEXT;
13307   glMultiTexSubImage3DEXT: TglMultiTexSubImage3DEXT;
13308   glCopyMultiTexSubImage3DEXT: TglCopyMultiTexSubImage3DEXT;
13309   glBindMultiTextureEXT: TglBindMultiTextureEXT;
13310   glEnableClientStateIndexedEXT: TglEnableClientStateIndexedEXT;
13311   glDisableClientStateIndexedEXT: TglDisableClientStateIndexedEXT;
13312   glMultiTexCoordPointerEXT: TglMultiTexCoordPointerEXT;
13313   glMultiTexEnvfEXT: TglMultiTexEnvfEXT;
13314   glMultiTexEnvfvEXT: TglMultiTexEnvfvEXT;
13315   glMultiTexEnviEXT: TglMultiTexEnviEXT;
13316   glMultiTexEnvivEXT: TglMultiTexEnvivEXT;
13317   glMultiTexGendEXT: TglMultiTexGendEXT;
13318   glMultiTexGendvEXT: TglMultiTexGendvEXT;
13319   glMultiTexGenfEXT: TglMultiTexGenfEXT;
13320   glMultiTexGenfvEXT: TglMultiTexGenfvEXT;
13321   glMultiTexGeniEXT: TglMultiTexGeniEXT;
13322   glMultiTexGenivEXT: TglMultiTexGenivEXT;
13323   glGetMultiTexEnvfvEXT: TglGetMultiTexEnvfvEXT;
13324   glGetMultiTexEnvivEXT: TglGetMultiTexEnvivEXT;
13325   glGetMultiTexGendvEXT: TglGetMultiTexGendvEXT;
13326   glGetMultiTexGenfvEXT: TglGetMultiTexGenfvEXT;
13327   glGetMultiTexGenivEXT: TglGetMultiTexGenivEXT;
13328   glGetFloatIndexedvEXT: TglGetFloatIndexedvEXT;
13329   glGetDoubleIndexedvEXT: TglGetDoubleIndexedvEXT;
13330   glGetPointerIndexedvEXT: TglGetPointerIndexedvEXT;
13331   glCompressedTextureImage3DEXT: TglCompressedTextureImage3DEXT;
13332   glCompressedTextureImage2DEXT: TglCompressedTextureImage2DEXT;
13333   glCompressedTextureImage1DEXT: TglCompressedTextureImage1DEXT;
13334   glCompressedTextureSubImage3DEXT: TglCompressedTextureSubImage3DEXT;
13335   glCompressedTextureSubImage2DEXT: TglCompressedTextureSubImage2DEXT;
13336   glCompressedTextureSubImage1DEXT: TglCompressedTextureSubImage1DEXT;
13337   glGetCompressedTextureImageEXT: TglGetCompressedTextureImageEXT;
13338   glCompressedMultiTexImage3DEXT: TglCompressedMultiTexImage3DEXT;
13339   glCompressedMultiTexImage2DEXT: TglCompressedMultiTexImage2DEXT;
13340   glCompressedMultiTexImage1DEXT: TglCompressedMultiTexImage1DEXT;
13341   glCompressedMultiTexSubImage3DEXT: TglCompressedMultiTexSubImage3DEXT;
13342   glCompressedMultiTexSubImage2DEXT: TglCompressedMultiTexSubImage2DEXT;
13343   glCompressedMultiTexSubImage1DEXT: TglCompressedMultiTexSubImage1DEXT;
13344   glGetCompressedMultiTexImageEXT: TglGetCompressedMultiTexImageEXT;
13345   glNamedProgramStringEXT: TglNamedProgramStringEXT;
13346   glNamedProgramLocalParameter4dEXT: TglNamedProgramLocalParameter4dEXT;
13347   glNamedProgramLocalParameter4dvEXT: TglNamedProgramLocalParameter4dvEXT;
13348   glNamedProgramLocalParameter4fEXT: TglNamedProgramLocalParameter4fEXT;
13349   glNamedProgramLocalParameter4fvEXT: TglNamedProgramLocalParameter4fvEXT;
13350   glGetNamedProgramLocalParameterdvEXT: TglGetNamedProgramLocalParameterdvEXT;
13351   glGetNamedProgramLocalParameterfvEXT: TglGetNamedProgramLocalParameterfvEXT;
13352   glGetNamedProgramivEXT: TglGetNamedProgramivEXT;
13353   glGetNamedProgramStringEXT: TglGetNamedProgramStringEXT;
13354   glNamedProgramLocalParameters4fvEXT: TglNamedProgramLocalParameters4fvEXT;
13355   glNamedProgramLocalParameterI4iEXT: TglNamedProgramLocalParameterI4iEXT;
13356   glNamedProgramLocalParameterI4ivEXT: TglNamedProgramLocalParameterI4ivEXT;
13357   glNamedProgramLocalParametersI4ivEXT: TglNamedProgramLocalParametersI4ivEXT;
13358   glNamedProgramLocalParameterI4uiEXT: TglNamedProgramLocalParameterI4uiEXT;
13359   glNamedProgramLocalParameterI4uivEXT: TglNamedProgramLocalParameterI4uivEXT;
13360   glNamedProgramLocalParametersI4uivEXT: TglNamedProgramLocalParametersI4uivEXT;
13361   glGetNamedProgramLocalParameterIivEXT: TglGetNamedProgramLocalParameterIivEXT;
13362   glGetNamedProgramLocalParameterIuivEXT: TglGetNamedProgramLocalParameterIuivEXT;
13363   glTextureParameterIivEXT: TglTextureParameterIivEXT;
13364   glTextureParameterIuivEXT: TglTextureParameterIuivEXT;
13365   glGetTextureParameterIivEXT: TglGetTextureParameterIivEXT;
13366   glGetTextureParameterIuivEXT: TglGetTextureParameterIuivEXT;
13367   glMultiTexParameterIivEXT: TglMultiTexParameterIivEXT;
13368   glMultiTexParameterIuivEXT: TglMultiTexParameterIuivEXT;
13369   glGetMultiTexParameterIivEXT: TglGetMultiTexParameterIivEXT;
13370   glGetMultiTexParameterIuivEXT: TglGetMultiTexParameterIuivEXT;
13371   glProgramUniform1fEXT: TglProgramUniform1fEXT;
13372   glProgramUniform2fEXT: TglProgramUniform2fEXT;
13373   glProgramUniform3fEXT: TglProgramUniform3fEXT;
13374   glProgramUniform4fEXT: TglProgramUniform4fEXT;
13375   glProgramUniform1iEXT: TglProgramUniform1iEXT;
13376   glProgramUniform2iEXT: TglProgramUniform2iEXT;
13377   glProgramUniform3iEXT: TglProgramUniform3iEXT;
13378   glProgramUniform4iEXT: TglProgramUniform4iEXT;
13379   glProgramUniform1fvEXT: TglProgramUniform1fvEXT;
13380   glProgramUniform2fvEXT: TglProgramUniform2fvEXT;
13381   glProgramUniform3fvEXT: TglProgramUniform3fvEXT;
13382   glProgramUniform4fvEXT: TglProgramUniform4fvEXT;
13383   glProgramUniform1ivEXT: TglProgramUniform1ivEXT;
13384   glProgramUniform2ivEXT: TglProgramUniform2ivEXT;
13385   glProgramUniform3ivEXT: TglProgramUniform3ivEXT;
13386   glProgramUniform4ivEXT: TglProgramUniform4ivEXT;
13387   glProgramUniformMatrix2fvEXT: TglProgramUniformMatrix2fvEXT;
13388   glProgramUniformMatrix3fvEXT: TglProgramUniformMatrix3fvEXT;
13389   glProgramUniformMatrix4fvEXT: TglProgramUniformMatrix4fvEXT;
13390   glProgramUniformMatrix2x3fvEXT: TglProgramUniformMatrix2x3fvEXT;
13391   glProgramUniformMatrix3x2fvEXT: TglProgramUniformMatrix3x2fvEXT;
13392   glProgramUniformMatrix2x4fvEXT: TglProgramUniformMatrix2x4fvEXT;
13393   glProgramUniformMatrix4x2fvEXT: TglProgramUniformMatrix4x2fvEXT;
13394   glProgramUniformMatrix3x4fvEXT: TglProgramUniformMatrix3x4fvEXT;
13395   glProgramUniformMatrix4x3fvEXT: TglProgramUniformMatrix4x3fvEXT;
13396   glProgramUniform1uiEXT: TglProgramUniform1uiEXT;
13397   glProgramUniform2uiEXT: TglProgramUniform2uiEXT;
13398   glProgramUniform3uiEXT: TglProgramUniform3uiEXT;
13399   glProgramUniform4uiEXT: TglProgramUniform4uiEXT;
13400   glProgramUniform1uivEXT: TglProgramUniform1uivEXT;
13401   glProgramUniform2uivEXT: TglProgramUniform2uivEXT;
13402   glProgramUniform3uivEXT: TglProgramUniform3uivEXT;
13403   glProgramUniform4uivEXT: TglProgramUniform4uivEXT;
13404   glNamedBufferDataEXT: TglNamedBufferDataEXT;
13405   glNamedBufferSubDataEXT: TglNamedBufferSubDataEXT;
13406   glMapNamedBufferEXT: TglMapNamedBufferEXT;
13407   glUnmapNamedBufferEXT: TglUnmapNamedBufferEXT;
13408   glMapNamedBufferRangeEXT: TglMapNamedBufferRangeEXT;
13409   glFlushMappedNamedBufferRangeEXT: TglFlushMappedNamedBufferRangeEXT;
13410   glNamedCopyBufferSubDataEXT: TglNamedCopyBufferSubDataEXT;
13411   glGetNamedBufferParameterivEXT: TglGetNamedBufferParameterivEXT;
13412   glGetNamedBufferPointervEXT: TglGetNamedBufferPointervEXT;
13413   glGetNamedBufferSubDataEXT: TglGetNamedBufferSubDataEXT;
13414   glTextureBufferEXT: TglTextureBufferEXT;
13415   glMultiTexBufferEXT: TglMultiTexBufferEXT;
13416   glNamedRenderbufferStorageEXT: TglNamedRenderbufferStorageEXT;
13417   glGetNamedRenderbufferParameterivEXT: TglGetNamedRenderbufferParameterivEXT;
13418   glCheckNamedFramebufferStatusEXT: TglCheckNamedFramebufferStatusEXT;
13419   glNamedFramebufferTexture1DEXT: TglNamedFramebufferTexture1DEXT;
13420   glNamedFramebufferTexture2DEXT: TglNamedFramebufferTexture2DEXT;
13421   glNamedFramebufferTexture3DEXT: TglNamedFramebufferTexture3DEXT;
13422   glNamedFramebufferRenderbufferEXT: TglNamedFramebufferRenderbufferEXT;
13423   glGetNamedFramebufferAttachmentParameterivEXT: TglGetNamedFramebufferAttachmentParameterivEXT;
13424   glGenerateTextureMipmapEXT: TglGenerateTextureMipmapEXT;
13425   glGenerateMultiTexMipmapEXT: TglGenerateMultiTexMipmapEXT;
13426   glFramebufferDrawBufferEXT: TglFramebufferDrawBufferEXT;
13427   glFramebufferDrawBuffersEXT: TglFramebufferDrawBuffersEXT;
13428   glFramebufferReadBufferEXT: TglFramebufferReadBufferEXT;
13429   glGetFramebufferParameterivEXT: TglGetFramebufferParameterivEXT;
13430   glNamedRenderbufferStorageMultisampleEXT: TglNamedRenderbufferStorageMultisampleEXT;
13431   glNamedRenderbufferStorageMultisampleCoverageEXT: TglNamedRenderbufferStorageMultisampleCoverageEXT;
13432   glNamedFramebufferTextureEXT: TglNamedFramebufferTextureEXT;
13433   glNamedFramebufferTextureLayerEXT: TglNamedFramebufferTextureLayerEXT;
13434   glNamedFramebufferTextureFaceEXT: TglNamedFramebufferTextureFaceEXT;
13435   glTextureRenderbufferEXT: TglTextureRenderbufferEXT;
13436   glMultiTexRenderbufferEXT: TglMultiTexRenderbufferEXT;
13437   glProgramUniform1dEXT: TglProgramUniform1dEXT;
13438   glProgramUniform2dEXT: TglProgramUniform2dEXT;
13439   glProgramUniform3dEXT: TglProgramUniform3dEXT;
13440   glProgramUniform4dEXT: TglProgramUniform4dEXT;
13441   glProgramUniform1dvEXT: TglProgramUniform1dvEXT;
13442   glProgramUniform2dvEXT: TglProgramUniform2dvEXT;
13443   glProgramUniform3dvEXT: TglProgramUniform3dvEXT;
13444   glProgramUniform4dvEXT: TglProgramUniform4dvEXT;
13445   glProgramUniformMatrix2dvEXT: TglProgramUniformMatrix2dvEXT;
13446   glProgramUniformMatrix3dvEXT: TglProgramUniformMatrix3dvEXT;
13447   glProgramUniformMatrix4dvEXT: TglProgramUniformMatrix4dvEXT;
13448   glProgramUniformMatrix2x3dvEXT: TglProgramUniformMatrix2x3dvEXT;
13449   glProgramUniformMatrix2x4dvEXT: TglProgramUniformMatrix2x4dvEXT;
13450   glProgramUniformMatrix3x2dvEXT: TglProgramUniformMatrix3x2dvEXT;
13451   glProgramUniformMatrix3x4dvEXT: TglProgramUniformMatrix3x4dvEXT;
13452   glProgramUniformMatrix4x2dvEXT: TglProgramUniformMatrix4x2dvEXT;
13453   glProgramUniformMatrix4x3dvEXT: TglProgramUniformMatrix4x3dvEXT;
13454
13455   // GL_EXT_separate_shader_objects
13456   glUseShaderProgramEXT: TglUseShaderProgramEXT;
13457   glActiveProgramEXT: TglActiveProgramEXT;
13458   glCreateShaderProgramEXT: TglCreateShaderProgramEXT;
13459
13460   // GL_EXT_shader_image_load_store
13461   glBindImageTextureEXT: TglBindImageTextureEXT;
13462   glMemoryBarrierEXT: TglMemoryBarrierEXT;
13463
13464   // GL_EXT_vertex_attrib_64bit
13465   glVertexAttribL1dEXT: TglVertexAttribL1dEXT;
13466   glVertexAttribL2dEXT: TglVertexAttribL2dEXT;
13467   glVertexAttribL3dEXT: TglVertexAttribL3dEXT;
13468   glVertexAttribL4dEXT: TglVertexAttribL4dEXT;
13469   glVertexAttribL1dvEXT: TglVertexAttribL1dvEXT;
13470   glVertexAttribL2dvEXT: TglVertexAttribL2dvEXT;
13471   glVertexAttribL3dvEXT: TglVertexAttribL3dvEXT;
13472   glVertexAttribL4dvEXT: TglVertexAttribL4dvEXT;
13473   glVertexAttribLPointerEXT: TglVertexAttribLPointerEXT;
13474   glGetVertexAttribLdvEXT: TglGetVertexAttribLdvEXT;
13475   glVertexArrayVertexAttribLOffsetEXT: TglVertexArrayVertexAttribLOffsetEXT;
13476
13477   // GL_HP_image_transform
13478   glImageTransformParameteriHP: TglImageTransformParameteriHP;
13479   glImageTransformParameterfHP: TglImageTransformParameterfHP;
13480   glImageTransformParameterivHP: TglImageTransformParameterivHP;
13481   glImageTransformParameterfvHP: TglImageTransformParameterfvHP;
13482   glGetImageTransformParameterivHP: TglGetImageTransformParameterivHP;
13483   glGetImageTransformParameterfvHP: TglGetImageTransformParameterfvHP;
13484
13485   // GL_EXT_depth_bounds_test
13486   glDepthBoundsEXT: TglDepthBoundsEXT;
13487
13488   // GL_EXT_blend_equation_separate
13489   glBlendEquationSeparateEXT: TglBlendEquationSeparateEXT;
13490
13491   // GL_IBM_multimode_draw_arrays
13492   glMultiModeDrawArraysIBM: TglMultiModeDrawArraysIBM;
13493   glMultiModeDrawElementsIBM: TglMultiModeDrawElementsIBM;
13494
13495   // GL_IBM_vertex_array_lists
13496   glColorPointerListIBM: TglColorPointerListIBM;
13497   glSecondaryColorPointerListIBM: TglSecondaryColorPointerListIBM;
13498   glEdgeFlagPointerListIBM: TglEdgeFlagPointerListIBM;
13499   glFogCoordPointerListIBM: TglFogCoordPointerListIBM;
13500   glIndexPointerListIBM: TglIndexPointerListIBM;
13501   glNormalPointerListIBM: TglNormalPointerListIBM;
13502   glTexCoordPointerListIBM: TglTexCoordPointerListIBM;
13503   glVertexPointerListIBM: TglVertexPointerListIBM;
13504
13505   // GL_INGR_blend_func_separate
13506   glBlendFuncSeparateINGR: TglBlendFuncSeparateINGR;
13507
13508   // GL_INTEL_parallel_arrays
13509   glVertexPointervINTEL: TglVertexPointervINTEL;
13510   glNormalPointervINTEL: TglNormalPointervINTEL;
13511   glColorPointervINTEL: TglColorPointervINTEL;
13512   glTexCoordPointervINTEL: TglTexCoordPointervINTEL;
13513
13514   // GL_MESA_resize_buffers
13515   glResizeBuffersMESA: TglResizeBuffersMESA;
13516
13517   // GL_MESA_window_pos
13518   glWindowPos2dMESA: TglWindowPos2dMESA;
13519   glWindowPos2dvMESA: TglWindowPos2dvMESA;
13520   glWindowPos2fMESA: TglWindowPos2fMESA;
13521   glWindowPos2fvMESA: TglWindowPos2fvMESA;
13522   glWindowPos2iMESA: TglWindowPos2iMESA;
13523   glWindowPos2ivMESA: TglWindowPos2ivMESA;
13524   glWindowPos2sMESA: TglWindowPos2sMESA;
13525   glWindowPos2svMESA: TglWindowPos2svMESA;
13526   glWindowPos3dMESA: TglWindowPos3dMESA;
13527   glWindowPos3dvMESA: TglWindowPos3dvMESA;
13528   glWindowPos3fMESA: TglWindowPos3fMESA;
13529   glWindowPos3fvMESA: TglWindowPos3fvMESA;
13530   glWindowPos3iMESA: TglWindowPos3iMESA;
13531   glWindowPos3ivMESA: TglWindowPos3ivMESA;
13532   glWindowPos3sMESA: TglWindowPos3sMESA;
13533   glWindowPos3svMESA: TglWindowPos3svMESA;
13534   glWindowPos4dMESA: TglWindowPos4dMESA;
13535   glWindowPos4dvMESA: TglWindowPos4dvMESA;
13536   glWindowPos4fMESA: TglWindowPos4fMESA;
13537   glWindowPos4fvMESA: TglWindowPos4fvMESA;
13538   glWindowPos4iMESA: TglWindowPos4iMESA;
13539   glWindowPos4ivMESA: TglWindowPos4ivMESA;
13540   glWindowPos4sMESA: TglWindowPos4sMESA;
13541   glWindowPos4svMESA: TglWindowPos4svMESA;
13542
13543   // GL_NV_evaluators
13544   glMapControlPointsNV: TglMapControlPointsNV;
13545   glMapParameterivNV: TglMapParameterivNV;
13546   glMapParameterfvNV: TglMapParameterfvNV;
13547   glGetMapControlPointsNV: TglGetMapControlPointsNV;
13548   glGetMapParameterivNV: TglGetMapParameterivNV;
13549   glGetMapParameterfvNV: TglGetMapParameterfvNV;
13550   glGetMapAttribParameterivNV: TglGetMapAttribParameterivNV;
13551   glGetMapAttribParameterfvNV: TglGetMapAttribParameterfvNV;
13552   glEvalMapsNV: TglEvalMapsNV;
13553
13554   // GL_NV_fence
13555   glDeleteFencesNV: TglDeleteFencesNV;
13556   glGenFencesNV: TglGenFencesNV;
13557   glIsFenceNV: TglIsFenceNV;
13558   glTestFenceNV: TglTestFenceNV;
13559   glGetFenceivNV: TglGetFenceivNV;
13560   glFinishFenceNV: TglFinishFenceNV;
13561   glSetFenceNV: TglSetFenceNV;
13562
13563   // GL_NV_fragment_program
13564   glProgramNamedParameter4fNV: TglProgramNamedParameter4fNV;
13565   glProgramNamedParameter4dNV: TglProgramNamedParameter4dNV;
13566   glProgramNamedParameter4fvNV: TglProgramNamedParameter4fvNV;
13567   glProgramNamedParameter4dvNV: TglProgramNamedParameter4dvNV;
13568   glGetProgramNamedParameterfvNV: TglGetProgramNamedParameterfvNV;
13569   glGetProgramNamedParameterdvNV: TglGetProgramNamedParameterdvNV;
13570
13571   // GL_NV_half_float
13572   glVertex2hNV: TglVertex2hNV;
13573   glVertex2hvNV: TglVertex2hvNV;
13574   glVertex3hNV: TglVertex3hNV;
13575   glVertex3hvNV: TglVertex3hvNV;
13576   glVertex4hNV: TglVertex4hNV;
13577   glVertex4hvNV: TglVertex4hvNV;
13578   glNormal3hNV: TglNormal3hNV;
13579   glNormal3hvNV: TglNormal3hvNV;
13580   glColor3hNV: TglColor3hNV;
13581   glColor3hvNV: TglColor3hvNV;
13582   glColor4hNV: TglColor4hNV;
13583   glColor4hvNV: TglColor4hvNV;
13584   glTexCoord1hNV: TglTexCoord1hNV;
13585   glTexCoord1hvNV: TglTexCoord1hvNV;
13586   glTexCoord2hNV: TglTexCoord2hNV;
13587   glTexCoord2hvNV: TglTexCoord2hvNV;
13588   glTexCoord3hNV: TglTexCoord3hNV;
13589   glTexCoord3hvNV: TglTexCoord3hvNV;
13590   glTexCoord4hNV: TglTexCoord4hNV;
13591   glTexCoord4hvNV: TglTexCoord4hvNV;
13592   glMultiTexCoord1hNV: TglMultiTexCoord1hNV;
13593   glMultiTexCoord1hvNV: TglMultiTexCoord1hvNV;
13594   glMultiTexCoord2hNV: TglMultiTexCoord2hNV;
13595   glMultiTexCoord2hvNV: TglMultiTexCoord2hvNV;
13596   glMultiTexCoord3hNV: TglMultiTexCoord3hNV;
13597   glMultiTexCoord3hvNV: TglMultiTexCoord3hvNV;
13598   glMultiTexCoord4hNV: TglMultiTexCoord4hNV;
13599   glMultiTexCoord4hvNV: TglMultiTexCoord4hvNV;
13600   glFogCoordhNV: TglFogCoordhNV;
13601   glFogCoordhvNV: TglFogCoordhvNV;
13602   glSecondaryColor3hNV: TglSecondaryColor3hNV;
13603   glSecondaryColor3hvNV: TglSecondaryColor3hvNV;
13604   glVertexWeighthNV: TglVertexWeighthNV;
13605   glVertexWeighthvNV: TglVertexWeighthvNV;
13606   glVertexAttrib1hNV: TglVertexAttrib1hNV;
13607   glVertexAttrib1hvNV: TglVertexAttrib1hvNV;
13608   glVertexAttrib2hNV: TglVertexAttrib2hNV;
13609   glVertexAttrib2hvNV: TglVertexAttrib2hvNV;
13610   glVertexAttrib3hNV: TglVertexAttrib3hNV;
13611   glVertexAttrib3hvNV: TglVertexAttrib3hvNV;
13612   glVertexAttrib4hNV: TglVertexAttrib4hNV;
13613   glVertexAttrib4hvNV: TglVertexAttrib4hvNV;
13614   glVertexAttribs1hvNV: TglVertexAttribs1hvNV;
13615   glVertexAttribs2hvNV: TglVertexAttribs2hvNV;
13616   glVertexAttribs3hvNV: TglVertexAttribs3hvNV;
13617   glVertexAttribs4hvNV: TglVertexAttribs4hvNV;
13618
13619   // GL_NV_occlusion_query
13620   glGenOcclusionQueriesNV: TglGenOcclusionQueriesNV;
13621   glDeleteOcclusionQueriesNV: TglDeleteOcclusionQueriesNV;
13622   glIsOcclusionQueryNV: TglIsOcclusionQueryNV;
13623   glBeginOcclusionQueryNV: TglBeginOcclusionQueryNV;
13624   glEndOcclusionQueryNV: TglEndOcclusionQueryNV;
13625   glGetOcclusionQueryivNV: TglGetOcclusionQueryivNV;
13626   glGetOcclusionQueryuivNV: TglGetOcclusionQueryuivNV;
13627
13628   // GL_NV_pixel_data_range
13629   glPixelDataRangeNV: TglPixelDataRangeNV;
13630   glFlushPixelDataRangeNV: TglFlushPixelDataRangeNV;
13631
13632   // GL_NV_point_sprite
13633   glPointParameteriNV: TglPointParameteriNV;
13634   glPointParameterivNV: TglPointParameterivNV;
13635
13636   // GL_NV_primitive_restart
13637   glPrimitiveRestartNV: TglPrimitiveRestartNV;
13638   glPrimitiveRestartIndexNV: TglPrimitiveRestartIndexNV;
13639
13640   // GL_NV_register_combiners
13641   glCombinerParameterfvNV: TglCombinerParameterfvNV;
13642   glCombinerParameterfNV: TglCombinerParameterfNV;
13643   glCombinerParameterivNV: TglCombinerParameterivNV;
13644   glCombinerParameteriNV: TglCombinerParameteriNV;
13645   glCombinerInputNV: TglCombinerInputNV;
13646   glCombinerOutputNV: TglCombinerOutputNV;
13647   glFinalCombinerInputNV: TglFinalCombinerInputNV;
13648   glGetCombinerInputParameterfvNV: TglGetCombinerInputParameterfvNV;
13649   glGetCombinerInputParameterivNV: TglGetCombinerInputParameterivNV;
13650   glGetCombinerOutputParameterfvNV: TglGetCombinerOutputParameterfvNV;
13651   glGetCombinerOutputParameterivNV: TglGetCombinerOutputParameterivNV;
13652   glGetFinalCombinerInputParameterfvNV: TglGetFinalCombinerInputParameterfvNV;
13653   glGetFinalCombinerInputParameterivNV: TglGetFinalCombinerInputParameterivNV;
13654
13655   // GL_NV_register_combiners2
13656   glCombinerStageParameterfvNV: TglCombinerStageParameterfvNV;
13657   glGetCombinerStageParameterfvNV: TglGetCombinerStageParameterfvNV;
13658
13659   // GL_NV_vertex_array_range
13660   glFlushVertexArrayRangeNV: TglFlushVertexArrayRangeNV;
13661   glVertexArrayRangeNV: TglVertexArrayRangeNV;
13662
13663   // GL_NV_vertex_program
13664   glAreProgramsResidentNV: TglAreProgramsResidentNV;
13665   glBindProgramNV: TglBindProgramNV;
13666   glDeleteProgramsNV: TglDeleteProgramsNV;
13667   glExecuteProgramNV: TglExecuteProgramNV;
13668   glGenProgramsNV: TglGenProgramsNV;
13669   glGetProgramParameterdvNV: TglGetProgramParameterdvNV;
13670   glGetProgramParameterfvNV: TglGetProgramParameterfvNV;
13671   glGetProgramivNV: TglGetProgramivNV;
13672   glGetProgramStringNV: TglGetProgramStringNV;
13673   glGetTrackMatrixivNV: TglGetTrackMatrixivNV;
13674   glGetVertexAttribdvNV: TglGetVertexAttribdvNV;
13675   glGetVertexAttribfvNV: TglGetVertexAttribfvNV;
13676   glGetVertexAttribivNV: TglGetVertexAttribivNV;
13677   glGetVertexAttribPointervNV: TglGetVertexAttribPointervNV;
13678   glIsProgramNV: TglIsProgramNV;
13679   glLoadProgramNV: TglLoadProgramNV;
13680   glProgramParameter4dNV: TglProgramParameter4dNV;
13681   glProgramParameter4dvNV: TglProgramParameter4dvNV;
13682   glProgramParameter4fNV: TglProgramParameter4fNV;
13683   glProgramParameter4fvNV: TglProgramParameter4fvNV;
13684   glProgramParameters4dvNV: TglProgramParameters4dvNV;
13685   glProgramParameters4fvNV: TglProgramParameters4fvNV;
13686   glRequestResidentProgramsNV: TglRequestResidentProgramsNV;
13687   glTrackMatrixNV: TglTrackMatrixNV;
13688   glVertexAttribPointerNV: TglVertexAttribPointerNV;
13689   glVertexAttrib1dNV: TglVertexAttrib1dNV;
13690   glVertexAttrib1dvNV: TglVertexAttrib1dvNV;
13691   glVertexAttrib1fNV: TglVertexAttrib1fNV;
13692   glVertexAttrib1fvNV: TglVertexAttrib1fvNV;
13693   glVertexAttrib1sNV: TglVertexAttrib1sNV;
13694   glVertexAttrib1svNV: TglVertexAttrib1svNV;
13695   glVertexAttrib2dNV: TglVertexAttrib2dNV;
13696   glVertexAttrib2dvNV: TglVertexAttrib2dvNV;
13697   glVertexAttrib2fNV: TglVertexAttrib2fNV;
13698   glVertexAttrib2fvNV: TglVertexAttrib2fvNV;
13699   glVertexAttrib2sNV: TglVertexAttrib2sNV;
13700   glVertexAttrib2svNV: TglVertexAttrib2svNV;
13701   glVertexAttrib3dNV: TglVertexAttrib3dNV;
13702   glVertexAttrib3dvNV: TglVertexAttrib3dvNV;
13703   glVertexAttrib3fNV: TglVertexAttrib3fNV;
13704   glVertexAttrib3fvNV: TglVertexAttrib3fvNV;
13705   glVertexAttrib3sNV: TglVertexAttrib3sNV;
13706   glVertexAttrib3svNV: TglVertexAttrib3svNV;
13707   glVertexAttrib4dNV: TglVertexAttrib4dNV;
13708   glVertexAttrib4dvNV: TglVertexAttrib4dvNV;
13709   glVertexAttrib4fNV: TglVertexAttrib4fNV;
13710   glVertexAttrib4fvNV: TglVertexAttrib4fvNV;
13711   glVertexAttrib4sNV: TglVertexAttrib4sNV;
13712   glVertexAttrib4svNV: TglVertexAttrib4svNV;
13713   glVertexAttrib4ubNV: TglVertexAttrib4ubNV;
13714   glVertexAttrib4ubvNV: TglVertexAttrib4ubvNV;
13715   glVertexAttribs1dvNV: TglVertexAttribs1dvNV;
13716   glVertexAttribs1fvNV: TglVertexAttribs1fvNV;
13717   glVertexAttribs1svNV: TglVertexAttribs1svNV;
13718   glVertexAttribs2dvNV: TglVertexAttribs2dvNV;
13719   glVertexAttribs2fvNV: TglVertexAttribs2fvNV;
13720   glVertexAttribs2svNV: TglVertexAttribs2svNV;
13721   glVertexAttribs3dvNV: TglVertexAttribs3dvNV;
13722   glVertexAttribs3fvNV: TglVertexAttribs3fvNV;
13723   glVertexAttribs3svNV: TglVertexAttribs3svNV;
13724   glVertexAttribs4dvNV: TglVertexAttribs4dvNV;
13725   glVertexAttribs4fvNV: TglVertexAttribs4fvNV;
13726   glVertexAttribs4svNV: TglVertexAttribs4svNV;
13727   glVertexAttribs4ubvNV: TglVertexAttribs4ubvNV;
13728
13729   // GL_NV_depth_buffer_float
13730   glDepthRangedNV: TglDepthRangedNV;
13731   glClearDepthdNV: TglClearDepthdNV;
13732   glDepthBoundsdNV: TglDepthBoundsdNV;
13733
13734   // GL_NV_framebuffer_multisample_coverage
13735   glRenderbufferStorageMultsampleCoverageNV: TglRenderbufferStorageMultsampleCoverageNV;
13736
13737   // GL_NV_geometry_program4
13738   glProgramVertexLimitNV: TglProgramVertexLimitNV;
13739
13740   // GL_NV_gpu_program4
13741   glProgramLocalParameterI4iNV: TglProgramLocalParameterI4iNV;
13742   glProgramLocalParameterI4ivNV: TglProgramLocalParameterI4ivNV;
13743   glProgramLocalParametersI4ivNV: TglProgramLocalParametersI4ivNV;
13744   glProgramLocalParameterI4uiNV: TglProgramLocalParameterI4uiNV;
13745   glProgramLocalParameterI4uivNV: TglProgramLocalParameterI4uivNV;
13746   glProgramLocalParametersI4uivNV: TglProgramLocalParametersI4uivNV;
13747   glProgramEnvParameterI4iNV: TglProgramEnvParameterI4iNV;
13748   glProgramEnvParameterI4ivNV: TglProgramEnvParameterI4ivNV;
13749   glProgramEnvParametersI4ivNV: TglProgramEnvParametersI4ivNV;
13750   glProgramEnvParameterI4uiNV: TglProgramEnvParameterI4uiNV;
13751   glProgramEnvParameterI4uivNV: TglProgramEnvParameterI4uivNV;
13752   glProgramEnvParametersI4uivNV: TglProgramEnvParametersI4uivNV;
13753   glGetProgramLocalParameterIivNV: TglGetProgramLocalParameterIivNV;
13754   glGetProgramLocalParameterIuivNV: TglGetProgramLocalParameterIuivNV;
13755   glGetProgramEnvParameterIivNV: TglGetProgramEnvParameterIivNV;
13756   glGetProgramEnvParameterIuivNV: TglGetProgramEnvParameterIuivNV;
13757
13758   // GL_NV_parameter_buffer_object
13759   glProgramBufferParametersfvNV: TglProgramBufferParametersfvNV;
13760   glProgramBufferParametersIivNV: TglProgramBufferParametersIivNV;
13761   glProgramBufferParametersIuivNV: TglProgramBufferParametersIuivNV;
13762
13763   // GL_NV_transform_feedback
13764   glBeginTransformFeedbackNV: TglBeginTransformFeedbackNV;
13765   glEndTransformFeedbackNV: TglEndTransformFeedbackNV;
13766   glTransformFeedbackAttribsNV: TglTransformFeedbackAttribsNV;
13767   glBindBufferRangeNV: TglBindBufferRangeNV;
13768   glBindBufferOffsetNV: TglBindBufferOffsetNV;
13769   glBindBufferBaseNV: TglBindBufferBaseNV;
13770   glTransformFeedbackVaryingsNV: TglTransformFeedbackVaryingsNV;
13771   glActiveVaryingNV: TglActiveVaryingNV;
13772   glGetVaryingLocationNV: TglGetVaryingLocationNV;
13773   glGetActiveVaryingNV: TglGetActiveVaryingNV;
13774   glGetTransformFeedbackVaryingNV: TglGetTransformFeedbackVaryingNV;
13775   glTransformFeedbackStreamAttribsNV: TglTransformFeedbackStreamAttribsNV;
13776
13777   // GL_NV_conditional_render
13778   glBeginConditionalRenderNV: TglBeginConditionalRenderNV;
13779   glEndConditionalRenderNV: TglEndConditionalRenderNV;
13780
13781   // GL_NV_present_video
13782   glPresentFrameKeyedNV: TglPresentFrameKeyedNV;
13783   glPresentFrameDualFillNV: TglPresentFrameDualFillNV;
13784   glGetVideoivNV: TglGetVideoivNV;
13785   glGetVideouivNV: TglGetVideouivNV;
13786   glGetVideoi64vNV: TglGetVideoi64vNV;
13787   glGetVideoui64vNV: TglGetVideoui64vNV;
13788 //  glVideoParameterivNV: TglVideoParameterivNV;
13789
13790   // GL_NV_explicit_multisample
13791   glGetMultisamplefvNV: TglGetMultisamplefvNV;
13792   glSampleMaskIndexedNV: TglSampleMaskIndexedNV;
13793   glTexRenderbufferNV: TglTexRenderbufferNV;
13794
13795   // GL_NV_transform_feedback2
13796   glBindTransformFeedbackNV: TglBindTransformFeedbackNV;
13797   glDeleteTransformFeedbacksNV: TglDeleteTransformFeedbacksNV;
13798   glGenTransformFeedbacksNV: TglGenTransformFeedbacksNV;
13799   glIsTransformFeedbackNV: TglIsTransformFeedbackNV;
13800   glPauseTransformFeedbackNV: TglPauseTransformFeedbackNV;
13801   glResumeTransformFeedbackNV: TglResumeTransformFeedbackNV;
13802   glDrawTransformFeedbackNV: TglDrawTransformFeedbackNV;
13803
13804   // GL_NV_video_capture
13805   glBeginVideoCaptureNV: TglBeginVideoCaptureNV;
13806   glBindVideoCaptureStreamBufferNV: TglBindVideoCaptureStreamBufferNV;
13807   glBindVideoCaptureStreamTextureNV: TglBindVideoCaptureStreamTextureNV;
13808   glEndVideoCaptureNV: TglEndVideoCaptureNV;
13809   glGetVideoCaptureivNV: TglGetVideoCaptureivNV;
13810   glGetVideoCaptureStreamivNV: TglGetVideoCaptureStreamivNV;
13811   glGetVideoCaptureStreamfvNV: TglGetVideoCaptureStreamfvNV;
13812   glGetVideoCaptureStreamdvNV: TglGetVideoCaptureStreamdvNV;
13813   glVideoCaptureNV: TglVideoCaptureNV;
13814   glVideoCaptureStreamParameterivNV: TglVideoCaptureStreamParameterivNV;
13815   glVideoCaptureStreamParameterfvNV: TglVideoCaptureStreamParameterfvNV;
13816   glVideoCaptureStreamParameterdvNV: TglVideoCaptureStreamParameterdvNV;
13817
13818   // GL_NV_copy_image
13819   glCopyImageSubDataNV: TglCopyImageSubDataNV;
13820
13821   // GL_NV_shader_buffer_load
13822   glMakeBufferResidentNV: TglMakeBufferResidentNV;
13823   glMakeBufferNonResidentNV: TglMakeBufferNonResidentNV;
13824   glIsBufferResidentNV: TglIsBufferResidentNV;
13825   glMakeNamedBufferResidentNV: TglMakeNamedBufferResidentNV;
13826   glMakeNamedBufferNonResidentNV: TglMakeNamedBufferNonResidentNV;
13827   glIsNamedBufferResidentNV: TglIsNamedBufferResidentNV;
13828   glGetBufferParameterui64vNV: TglGetBufferParameterui64vNV;
13829   glGetNamedBufferParameterui64vNV: TglGetNamedBufferParameterui64vNV;
13830   glGetIntegerui64vNV: TglGetIntegerui64vNV;
13831   glUniformui64NV: TglUniformui64NV;
13832   glUniformui64vNV: TglUniformui64vNV;
13833   glGetUniformui64vNV: TglGetUniformui64vNV;
13834   glProgramUniformui64NV: TglProgramUniformui64NV;
13835   glProgramUniformui64vNV: TglProgramUniformui64vNV;
13836
13837   // GL_NV_vertex_buffer_unified_memory
13838   glBufferAddressRangeNV: TglBufferAddressRangeNV;
13839   glVertexFormatNV: TglVertexFormatNV;
13840   glNormalFormatNV: TglNormalFormatNV;
13841   glColorFormatNV: TglColorFormatNV;
13842   glIndexFormatNV: TglIndexFormatNV;
13843   glTexCoordFormatNV: TglTexCoordFormatNV;
13844   glEdgeFlagFormatNV: TglEdgeFlagFormatNV;
13845   glSecondaryColorFormatNV: TglSecondaryColorFormatNV;
13846   glFogCoordFormatNV: TglFogCoordFormatNV;
13847   glVertexAttribFormatNV: TglVertexAttribFormatNV;
13848   glVertexAttribIFormatNV: TglVertexAttribIFormatNV;
13849   glGetIntegerui64i_vNV: TglGetIntegerui64i_vNV;
13850
13851   // GL_NV_gpu_program5
13852   glProgramSubroutineParametersuivNV: TglProgramSubroutineParametersuivNV;
13853   glGetProgramSubroutineParameteruivNV: TglGetProgramSubroutineParameteruivNV;
13854
13855   // GL_NV_gpu_shader5
13856   glUniform1i64NV: TglUniform1i64NV;
13857   glUniform2i64NV: TglUniform2i64NV;
13858   glUniform3i64NV: TglUniform3i64NV;
13859   glUniform4i64NV: TglUniform4i64NV;
13860   glUniform1i64vNV: TglUniform1i64vNV;
13861   glUniform2i64vNV: TglUniform2i64vNV;
13862   glUniform3i64vNV: TglUniform3i64vNV;
13863   glUniform4i64vNV: TglUniform4i64vNV;
13864   glUniform1ui64NV: TglUniform1ui64NV;
13865   glUniform2ui64NV: TglUniform2ui64NV;
13866   glUniform3ui64NV: TglUniform3ui64NV;
13867   glUniform4ui64NV: TglUniform4ui64NV;
13868   glUniform1ui64vNV: TglUniform1ui64vNV;
13869   glUniform2ui64vNV: TglUniform2ui64vNV;
13870   glUniform3ui64vNV: TglUniform3ui64vNV;
13871   glUniform4ui64vNV: TglUniform4ui64vNV;
13872   glGetUniformi64vNV: TglGetUniformi64vNV;
13873   glProgramUniform1i64NV: TglProgramUniform1i64NV;
13874   glProgramUniform2i64NV: TglProgramUniform2i64NV;
13875   glProgramUniform3i64NV: TglProgramUniform3i64NV;
13876   glProgramUniform4i64NV: TglProgramUniform4i64NV;
13877   glProgramUniform1i64vNV: TglProgramUniform1i64vNV;
13878   glProgramUniform2i64vNV: TglProgramUniform2i64vNV;
13879   glProgramUniform3i64vNV: TglProgramUniform3i64vNV;
13880   glProgramUniform4i64vNV: TglProgramUniform4i64vNV;
13881   glProgramUniform1ui64NV: TglProgramUniform1ui64NV;
13882   glProgramUniform2ui64NV: TglProgramUniform2ui64NV;
13883   glProgramUniform3ui64NV: TglProgramUniform3ui64NV;
13884   glProgramUniform4ui64NV: TglProgramUniform4ui64NV;
13885   glProgramUniform1ui64vNV: TglProgramUniform1ui64vNV;
13886   glProgramUniform2ui64vNV: TglProgramUniform2ui64vNV;
13887   glProgramUniform3ui64vNV: TglProgramUniform3ui64vNV;
13888   glProgramUniform4ui64vNV: TglProgramUniform4ui64vNV;
13889
13890   // GL_NV_vertex_attrib_integer_64bit
13891   glVertexAttribL1i64NV: TglVertexAttribL1i64NV;
13892   glVertexAttribL2i64NV: TglVertexAttribL2i64NV;
13893   glVertexAttribL3i64NV: TglVertexAttribL3i64NV;
13894   glVertexAttribL4i64NV: TglVertexAttribL4i64NV;
13895   glVertexAttribL1i64vNV: TglVertexAttribL1i64vNV;
13896   glVertexAttribL2i64vNV: TglVertexAttribL2i64vNV;
13897   glVertexAttribL3i64vNV: TglVertexAttribL3i64vNV;
13898   glVertexAttribL4i64vNV: TglVertexAttribL4i64vNV;
13899   glVertexAttribL1ui64NV: TglVertexAttribL1ui64NV;
13900   glVertexAttribL2ui64NV: TglVertexAttribL2ui64NV;
13901   glVertexAttribL3ui64NV: TglVertexAttribL3ui64NV;
13902   glVertexAttribL4ui64NV: TglVertexAttribL4ui64NV;
13903   glVertexAttribL1ui64vNV: TglVertexAttribL1ui64vNV;
13904   glVertexAttribL2ui64vNV: TglVertexAttribL2ui64vNV;
13905   glVertexAttribL3ui64vNV: TglVertexAttribL3ui64vNV;
13906   glVertexAttribL4ui64vNV: TglVertexAttribL4ui64vNV;
13907   glGetVertexAttribLi64vNV: TglGetVertexAttribLi64vNV;
13908   glGetVertexAttribLui64vNV: TglGetVertexAttribLui64vNV;
13909   glVertexAttribLFormatNV: TglVertexAttribLFormatNV;
13910
13911   // GL_NV_vdpau_interop
13912   glVDPAUInitNV: TglVDPAUInitNV;
13913   glVDPAUFiniNV: TglVDPAUFiniNV;
13914   glVDPAURegisterVideoSurfaceNV: TglVDPAURegisterVideoSurfaceNV;
13915   glVDPAURegisterOutputSurfaceNV: TglVDPAURegisterOutputSurfaceNV;
13916   glVDPAUIsSurfaceNV: TglVDPAUIsSurfaceNV;
13917   glVDPAUUnregisterSurfaceNV: TglVDPAUUnregisterSurfaceNV;
13918   glVDPAUGetSurfaceivNV: TglVDPAUGetSurfaceivNV;
13919   glVDPAUSurfaceAccessNV: TglVDPAUSurfaceAccessNV;
13920   glVDPAUMapSurfacesNV: TglVDPAUMapSurfacesNV;
13921   glVDPAUUnmapSurfacesNV: TglVDPAUUnmapSurfacesNV;
13922
13923   // GL_NV_texture_barrier
13924   glTextureBarrierNV: TglTextureBarrierNV;
13925
13926   // (4.3) GL_NV_path_rendering
13927   glGenPathsNV : TglGenPathsNV;
13928   glDeletePathsNV : TglDeletePathsNV;
13929   glIsPathNV : TglIsPathNV;
13930   glPathCommandsNV : TglPathCommandsNV;
13931   glPathCoordsNV : TglPathCoordsNV;
13932   glPathSubCommandsNV : TglPathSubCommandsNV;
13933   glPathSubCoordsNV : TglPathSubCoordsNV;
13934   glPathStringNV : TglPathStringNV;
13935   glPathGlyphsNV : TglPathGlyphsNV;
13936   glPathGlyphRangeNV : TglPathGlyphRangeNV;
13937   glWeightPathsNV : TglWeightPathsNV;
13938   glCopyPathNV : TglCopyPathNV;
13939   glInterpolatePathsNV : TglInterpolatePathsNV;
13940   glTransformPathNV : TglTransformPathNV;
13941   glPathParameterivNV : TglPathParameterivNV;
13942   glPathParameteriNV : TglPathParameteriNV;
13943   glPathParameterfvNV : TglPathParameterfvNV;
13944   glPathParameterfNV : TglPathParameterfNV;
13945   glPathDashArrayNV : TglPathDashArrayNV;
13946   glPathStencilFuncNV : TglPathStencilFuncNV;
13947   glPathStencilDepthOffsetNV : TglPathStencilDepthOffsetNV;
13948   glStencilFillPathNV : TglStencilFillPathNV;
13949   glStencilStrokePathNV : TglStencilStrokePathNV;
13950   glStencilFillPathInstancedNV : TglStencilFillPathInstancedNV;
13951   glStencilStrokePathInstancedNV : TglStencilStrokePathInstancedNV;
13952   glPathCoverDepthFuncNV : TglPathCoverDepthFuncNV;
13953   glPathColorGenNV : TglPathColorGenNV;
13954   glPathTexGenNV : TglPathTexGenNV;
13955   glPathFogGenNV : TglPathFogGenNV;
13956   glCoverFillPathNV : TglCoverFillPathNV;
13957   glCoverStrokePathNV : TglCoverStrokePathNV;
13958   glCoverFillPathInstancedNV : TglCoverFillPathInstancedNV;
13959   glCoverStrokePathInstancedNV : TglCoverStrokePathInstancedNV;
13960   glGetPathParameterivNV : TglGetPathParameterivNV;
13961   glGetPathParameterfvNV : TglGetPathParameterfvNV;
13962   glGetPathCommandsNV : TglGetPathCommandsNV;
13963   glGetPathCoordsNV : TglGetPathCoordsNV;
13964   glGetPathDashArrayNV : TglGetPathDashArrayNV;
13965   glGetPathMetricsNV : TglGetPathMetricsNV;
13966   glGetPathMetricRangeNV : TglGetPathMetricRangeNV;
13967   glGetPathSpacingNV : TglGetPathSpacingNV;
13968   glGetPathColorGenivNV : TglGetPathColorGenivNV;
13969   glGetPathColorGenfvNV : TglGetPathColorGenfvNV;
13970   glGetPathTexGenivNV : TglGetPathTexGenivNV;
13971   glGetPathTexGenfvNV : TglGetPathTexGenfvNV;
13972   glIsPointInFillPathNV : TglIsPointInFillPathNV;
13973   glIsPointInStrokePathNV : TglIsPointInStrokePathNV;
13974   glGetPathLengthNV : TglGetPathLengthNV;
13975   glPointAlongPathNV : TglPointAlongPathNV;
13976
13977   // GL_AMD_pinned_memory
13978
13979   // GL_AMD_stencil_operation_extended
13980   glStencilOpValueAMD : TglStencilOpValueAMD;
13981
13982   // GL_AMD_vertex_shader_viewport_index
13983
13984   // GL_AMD_vertex_shader_layer
13985
13986   // GL_NV_bindless_texture
13987   glGetTextureHandleNV : TglGetTextureHandleNV;
13988   glGetTextureSamplerHandleNV : TglGetTextureSamplerHandleNV;
13989   glMakeTextureHandleResidentNV : TglMakeTextureHandleResidentNV;
13990   glMakeTextureHandleNonResidentNV : TglMakeTextureHandleNonResidentNV;
13991   glGetImageHandleNV : TglGetImageHandleNV;
13992   glMakeImageHandleResidentNV : TglMakeImageHandleResidentNV;
13993   glMakeImageHandleNonResidentNV : TglMakeImageHandleNonResidentNV;
13994   glUniformHandleui64NV : TglUniformHandleui64NV;
13995   glUniformHandleui64vNV : TglUniformHandleui64vNV;
13996   glProgramUniformHandleui64NV : TglProgramUniformHandleui64NV;
13997   glProgramUniformHandleui64vNV : TglProgramUniformHandleui64vNV;
13998   glIsTextureHandleResidentNV : TglIsTextureHandleResidentNV;
13999   glIsImageHandleResidentNV : TglIsImageHandleResidentNV;
14000
14001   // GL_ARB_bindless_texture
14002   glGetTextureHandleARB : TglGetTextureHandleARB;
14003   glGetTextureSamplerHandleARB : TglGetTextureSamplerHandleARB;
14004   glMakeTextureHandleResidentARB : TglMakeTextureHandleResidentARB;
14005   glMakeTextureHandleNonResidentARB : TglMakeTextureHandleNonResidentARB;
14006   glGetImageHandleARB : TglGetImageHandleARB;
14007   glMakeImageHandleResidentARB : TglMakeImageHandleResidentARB;
14008   glMakeImageHandleNonResidentARB : TglMakeImageHandleNonResidentARB;
14009   glUniformHandleui64ARB : TglUniformHandleui64ARB;
14010   glUniformHandleui64vARB : TglUniformHandleui64vARB;
14011   glProgramUniformHandleui64ARB : TglProgramUniformHandleui64ARB;
14012   glProgramUniformHandleui64vARB : TglProgramUniformHandleui64vARB;
14013   glIsTextureHandleResidentARB : TglIsTextureHandleResidentARB;
14014   glIsImageHandleResidentARB : TglIsImageHandleResidentARB;
14015   glVertexAttribL1ui64ARB : TglVertexAttribL1ui64ARB;
14016   glVertexAttribL1ui64vARB : TglVertexAttribL1ui64vARB;
14017   glGetVertexAttribLui64vARB : TglGetVertexAttribLui64vARB;
14018
14019   // GL_PGI_misc_hints
14020   glHintPGI: TglHintPGI;
14021
14022   // GL_SGIS_detail_texture
14023   glDetailTexFuncSGIS: TglDetailTexFuncSGIS;
14024   glGetDetailTexFuncSGIS: TglGetDetailTexFuncSGIS;
14025
14026   // GL_SGIS_fog_function
14027   glFogFuncSGIS: TglFogFuncSGIS;
14028   glGetFogFuncSGIS: TglGetFogFuncSGIS;
14029
14030   // GL_SGIS_multisample
14031   glSampleMaskSGIS: TglSampleMaskSGIS;
14032   glSamplePatternSGIS: TglSamplePatternSGIS;
14033
14034   // GL_SGIS_pixel_texture
14035   glPixelTexGenParameteriSGIS: TglPixelTexGenParameteriSGIS;
14036   glPixelTexGenParameterivSGIS: TglPixelTexGenParameterivSGIS;
14037   glPixelTexGenParameterfSGIS: TglPixelTexGenParameterfSGIS;
14038   glPixelTexGenParameterfvSGIS: TglPixelTexGenParameterfvSGIS;
14039   glGetPixelTexGenParameterivSGIS: TglGetPixelTexGenParameterivSGIS;
14040   glGetPixelTexGenParameterfvSGIS: TglGetPixelTexGenParameterfvSGIS;
14041
14042   // GL_SGIS_point_parameters
14043   glPointParameterfSGIS: TglPointParameterfSGIS;
14044   glPointParameterfvSGIS: TglPointParameterfvSGIS;
14045
14046   // GL_SGIS_sharpen_texture
14047   glSharpenTexFuncSGIS: TglSharpenTexFuncSGIS;
14048   glGetSharpenTexFuncSGIS: TglGetSharpenTexFuncSGIS;
14049
14050   // GL_SGIS_texture4D
14051   glTexImage4DSGIS: TglTexImage4DSGIS;
14052   glTexSubImage4DSGIS: TglTexSubImage4DSGIS;
14053
14054   // GL_SGIS_texture_color_mask
14055   glTextureColorMaskSGIS: TglTextureColorMaskSGIS;
14056
14057   // GL_SGIS_texture_filter4
14058   glGetTexFilterFuncSGIS: TglGetTexFilterFuncSGIS;
14059   glTexFilterFuncSGIS: TglTexFilterFuncSGIS;
14060
14061   // GL_SGIX_async
14062   glAsyncMarkerSGIX: TglAsyncMarkerSGIX;
14063   glFinishAsyncSGIX: TglFinishAsyncSGIX;
14064   glPollAsyncSGIX: TglPollAsyncSGIX;
14065   glGenAsyncMarkersSGIX: TglGenAsyncMarkersSGIX;
14066   glDeleteAsyncMarkersSGIX: TglDeleteAsyncMarkersSGIX;
14067   glIsAsyncMarkerSGIX: TglIsAsyncMarkerSGIX;
14068
14069   // GL_SGIX_flush_raster
14070   glFlushRasterSGIX: TglFlushRasterSGIX;
14071
14072   // GL_SGIX_fragment_lighting
14073   glFragmentColorMaterialSGIX: TglFragmentColorMaterialSGIX;
14074   glFragmentLightfSGIX: TglFragmentLightfSGIX;
14075   glFragmentLightfvSGIX: TglFragmentLightfvSGIX;
14076   glFragmentLightiSGIX: TglFragmentLightiSGIX;
14077   glFragmentLightivSGIX: TglFragmentLightivSGIX;
14078   glFragmentLightModelfSGIX: TglFragmentLightModelfSGIX;
14079   glFragmentLightModelfvSGIX: TglFragmentLightModelfvSGIX;
14080   glFragmentLightModeliSGIX: TglFragmentLightModeliSGIX;
14081   glFragmentLightModelivSGIX: TglFragmentLightModelivSGIX;
14082   glFragmentMaterialfSGIX: TglFragmentMaterialfSGIX;
14083   glFragmentMaterialfvSGIX: TglFragmentMaterialfvSGIX;
14084   glFragmentMaterialiSGIX: TglFragmentMaterialiSGIX;
14085   glFragmentMaterialivSGIX: TglFragmentMaterialivSGIX;
14086   glGetFragmentLightfvSGIX: TglGetFragmentLightfvSGIX;
14087   glGetFragmentLightivSGIX: TglGetFragmentLightivSGIX;
14088   glGetFragmentMaterialfvSGIX: TglGetFragmentMaterialfvSGIX;
14089   glGetFragmentMaterialivSGIX: TglGetFragmentMaterialivSGIX;
14090   glLightEnviSGIX: TglLightEnviSGIX;
14091
14092   // GL_SGIX_framezoom
14093   glFrameZoomSGIX: TglFrameZoomSGIX;
14094
14095   // GL_SGIX_igloo_interface
14096   glIglooInterfaceSGIX: TglIglooInterfaceSGIX;
14097
14098   // GL_SGIX_instruments
14099   glGetInstrumentsSGIX: TglGetInstrumentsSGIX;
14100   glInstrumentsBufferSGIX: TglInstrumentsBufferSGIX;
14101   glPollInstrumentsSGIX: TglPollInstrumentsSGIX;
14102   glReadInstrumentsSGIX: TglReadInstrumentsSGIX;
14103   glStartInstrumentsSGIX: TglStartInstrumentsSGIX;
14104   glStopInstrumentsSGIX: TglStopInstrumentsSGIX;
14105
14106   // GL_SGIX_list_priority
14107   glGetListParameterfvSGIX: TglGetListParameterfvSGIX;
14108   glGetListParameterivSGIX: TglGetListParameterivSGIX;
14109   glListParameterfSGIX: TglListParameterfSGIX;
14110   glListParameterfvSGIX: TglListParameterfvSGIX;
14111   glListParameteriSGIX: TglListParameteriSGIX;
14112   glListParameterivSGIX: TglListParameterivSGIX;
14113
14114   // GL_SGIX_pixel_texture
14115   glPixelTexGenSGIX: TglPixelTexGenSGIX;
14116
14117   // GL_SGIX_polynomial_ffd
14118   glDeformationMap3dSGIX: TglDeformationMap3dSGIX;
14119   glDeformationMap3fSGIX: TglDeformationMap3fSGIX;
14120   glDeformSGIX: TglDeformSGIX;
14121   glLoadIdentityDeformationMapSGIX: TglLoadIdentityDeformationMapSGIX;
14122
14123   // GL_SGIX_reference_plane
14124   glReferencePlaneSGIX: TglReferencePlaneSGIX;
14125
14126   // GL_SGIX_sprite
14127   glSpriteParameterfSGIX: TglSpriteParameterfSGIX;
14128   glSpriteParameterfvSGIX: TglSpriteParameterfvSGIX;
14129   glSpriteParameteriSGIX: TglSpriteParameteriSGIX;
14130   glSpriteParameterivSGIX: TglSpriteParameterivSGIX;
14131
14132   // GL_SGIX_tag_sample_buffer
14133   glTagSampleBufferSGIX: TglTagSampleBufferSGIX;
14134
14135   // GL_SGI_color_table
14136   glColorTableSGI: TglColorTableSGI;
14137   glColorTableParameterfvSGI: TglColorTableParameterfvSGI;
14138   glColorTableParameterivSGI: TglColorTableParameterivSGI;
14139   glCopyColorTableSGI: TglCopyColorTableSGI;
14140   glGetColorTableSGI: TglGetColorTableSGI;
14141   glGetColorTableParameterfvSGI: TglGetColorTableParameterfvSGI;
14142   glGetColorTableParameterivSGI: TglGetColorTableParameterivSGI;
14143
14144   // GL_SUNX_constant_data
14145   glFinishTextureSUNX: TglFinishTextureSUNX;
14146
14147   // GL_SUN_global_alpha
14148   glGlobalAlphaFactorbSUN: TglGlobalAlphaFactorbSUN;
14149   glGlobalAlphaFactorsSUN: TglGlobalAlphaFactorsSUN;
14150   glGlobalAlphaFactoriSUN: TglGlobalAlphaFactoriSUN;
14151   glGlobalAlphaFactorfSUN: TglGlobalAlphaFactorfSUN;
14152   glGlobalAlphaFactordSUN: TglGlobalAlphaFactordSUN;
14153   glGlobalAlphaFactorubSUN: TglGlobalAlphaFactorubSUN;
14154   glGlobalAlphaFactorusSUN: TglGlobalAlphaFactorusSUN;
14155   glGlobalAlphaFactoruiSUN: TglGlobalAlphaFactoruiSUN;
14156
14157   // GL_SUN_mesh_array
14158   glDrawMeshArraysSUN: TglDrawMeshArraysSUN;
14159
14160   // GL_SUN_triangle_list
14161   glReplacementCodeuiSUN: TglReplacementCodeuiSUN;
14162   glReplacementCodeusSUN: TglReplacementCodeusSUN;
14163   glReplacementCodeubSUN: TglReplacementCodeubSUN;
14164   glReplacementCodeuivSUN: TglReplacementCodeuivSUN;
14165   glReplacementCodeusvSUN: TglReplacementCodeusvSUN;
14166   glReplacementCodeubvSUN: TglReplacementCodeubvSUN;
14167   glReplacementCodePointerSUN: TglReplacementCodePointerSUN;
14168
14169   // GL_SUN_vertex
14170   glColor4ubVertex2fSUN: TglColor4ubVertex2fSUN;
14171   glColor4ubVertex2fvSUN: TglColor4ubVertex2fvSUN;
14172   glColor4ubVertex3fSUN: TglColor4ubVertex3fSUN;
14173   glColor4ubVertex3fvSUN: TglColor4ubVertex3fvSUN;
14174   glColor3fVertex3fSUN: TglColor3fVertex3fSUN;
14175   glColor3fVertex3fvSUN: TglColor3fVertex3fvSUN;
14176   glNormal3fVertex3fSUN: TglNormal3fVertex3fSUN;
14177   glNormal3fVertex3fvSUN: TglNormal3fVertex3fvSUN;
14178   glColor4fNormal3fVertex3fSUN: TglColor4fNormal3fVertex3fSUN;
14179   glColor4fNormal3fVertex3fvSUN: TglColor4fNormal3fVertex3fvSUN;
14180   glTexCoord2fVertex3fSUN: TglTexCoord2fVertex3fSUN;
14181   glTexCoord2fVertex3fvSUN: TglTexCoord2fVertex3fvSUN;
14182   glTexCoord4fVertex4fSUN: TglTexCoord4fVertex4fSUN;
14183   glTexCoord4fVertex4fvSUN: TglTexCoord4fVertex4fvSUN;
14184   glTexCoord2fColor4ubVertex3fSUN: TglTexCoord2fColor4ubVertex3fSUN;
14185   glTexCoord2fColor4ubVertex3fvSUN: TglTexCoord2fColor4ubVertex3fvSUN;
14186   glTexCoord2fColor3fVertex3fSUN: TglTexCoord2fColor3fVertex3fSUN;
14187   glTexCoord2fColor3fVertex3fvSUN: TglTexCoord2fColor3fVertex3fvSUN;
14188   glTexCoord2fNormal3fVertex3fSUN: TglTexCoord2fNormal3fVertex3fSUN;
14189   glTexCoord2fNormal3fVertex3fvSUN: TglTexCoord2fNormal3fVertex3fvSUN;
14190   glTexCoord2fColor4fNormal3fVertex3fSUN: TglTexCoord2fColor4fNormal3fVertex3fSUN;
14191   glTexCoord2fColor4fNormal3fVertex3fvSUN: TglTexCoord2fColor4fNormal3fVertex3fvSUN;
14192   glTexCoord4fColor4fNormal3fVertex4fSUN: TglTexCoord4fColor4fNormal3fVertex4fSUN;
14193   glTexCoord4fColor4fNormal3fVertex4fvSUN: TglTexCoord4fColor4fNormal3fVertex4fvSUN;
14194   glReplacementCodeuiVertex3fSUN: TglReplacementCodeuiVertex3fSUN;
14195   glReplacementCodeuiVertex3fvSUN: TglReplacementCodeuiVertex3fvSUN;
14196   glReplacementCodeuiColor4ubVertex3fSUN: TglReplacementCodeuiColor4ubVertex3fSUN;
14197   glReplacementCodeuiColor4ubVertex3fvSUN: TglReplacementCodeuiColor4ubVertex3fvSUN;
14198   glReplacementCodeuiColor3fVertex3fSUN: TglReplacementCodeuiColor3fVertex3fSUN;
14199   glReplacementCodeuiColor3fVertex3fvSUN: TglReplacementCodeuiColor3fVertex3fvSUN;
14200   glReplacementCodeuiNormal3fVertex3fSUN: TglReplacementCodeuiNormal3fVertex3fSUN;
14201   glReplacementCodeuiNormal3fVertex3fvSUN: TglReplacementCodeuiNormal3fVertex3fvSUN;
14202   glReplacementCodeuiColor4fNormal3fVertex3fSUN: TglReplacementCodeuiColor4fNormal3fVertex3fSUN;
14203   glReplacementCodeuiColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiColor4fNormal3fVertex3fvSUN;
14204   glReplacementCodeuiTexCoord2fVertex3fSUN: TglReplacementCodeuiTexCoord2fVertex3fSUN;
14205   glReplacementCodeuiTexCoord2fVertex3fvSUN: TglReplacementCodeuiTexCoord2fVertex3fvSUN;
14206   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
14207   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
14208   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
14209   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: TglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
14210
14211 {$IFDEF DGL_WIN}
14212   wglGetProcAddress: TwglGetProcAddress;
14213   wglCopyContext: TwglCopyContext;
14214   wglCreateContext: TwglCreateContext;
14215   wglCreateLayerContext: TwglCreateLayerContext;
14216   wglDeleteContext: TwglDeleteContext;
14217   wglDescribeLayerPlane: TwglDescribeLayerPlane;
14218   wglGetCurrentContext: TwglGetCurrentContext;
14219   wglGetCurrentDC: TwglGetCurrentDC;
14220   wglGetLayerPaletteEntries: TwglGetLayerPaletteEntries;
14221   wglMakeCurrent: TwglMakeCurrent;
14222   wglRealizeLayerPalette: TwglRealizeLayerPalette;
14223   wglSetLayerPaletteEntries: TwglSetLayerPaletteEntries;
14224   wglShareLists: TwglShareLists;
14225   wglSwapLayerBuffers: TwglSwapLayerBuffers;
14226   wglSwapMultipleBuffers: TwglSwapMultipleBuffers;
14227   wglUseFontBitmapsA: TwglUseFontBitmapsA;
14228   wglUseFontOutlinesA: TwglUseFontOutlinesA;
14229   wglUseFontBitmapsW: TwglUseFontBitmapsW;
14230   wglUseFontOutlinesW: TwglUseFontOutlinesW;
14231   wglUseFontBitmaps: TwglUseFontBitmaps;
14232   wglUseFontOutlines: TwglUseFontOutlines;
14233
14234    // WGL_ARB_buffer_region
14235   wglCreateBufferRegionARB: TwglCreateBufferRegionARB;
14236   wglDeleteBufferRegionARB: TwglDeleteBufferRegionARB;
14237   wglSaveBufferRegionARB: TwglSaveBufferRegionARB;
14238   wglRestoreBufferRegionARB: TwglRestoreBufferRegionARB;
14239
14240   // WGL_ARB_extensions_string
14241   wglGetExtensionsStringARB: TwglGetExtensionsStringARB;
14242
14243   // WGL_ARB_make_current_read
14244   wglMakeContextCurrentARB: TwglMakeContextCurrentARB;
14245   wglGetCurrentReadDCARB: TwglGetCurrentReadDCARB;
14246
14247   // WGL_ARB_pbuffer
14248   wglCreatePbufferARB: TwglCreatePbufferARB;
14249   wglGetPbufferDCARB: TwglGetPbufferDCARB;
14250   wglReleasePbufferDCARB: TwglReleasePbufferDCARB;
14251   wglDestroyPbufferARB: TwglDestroyPbufferARB;
14252   wglQueryPbufferARB: TwglQueryPbufferARB;
14253
14254   // WGL_ARB_pixel_format
14255   wglGetPixelFormatAttribivARB: TwglGetPixelFormatAttribivARB;
14256   wglGetPixelFormatAttribfvARB: TwglGetPixelFormatAttribfvARB;
14257   wglChoosePixelFormatARB: TwglChoosePixelFormatARB;
14258   // WGL_ARB_color_buffer_float
14259   wglClampColorARB: TwglClampColorARB;
14260
14261   // WGL_ARB_render_texture
14262   wglBindTexImageARB: TwglBindTexImageARB;
14263   wglReleaseTexImageARB: TwglReleaseTexImageARB;
14264   wglSetPbufferAttribARB: TwglSetPbufferAttribARB;
14265
14266   // WGL_ARB_create_context
14267   wglCreateContextAttribsARB: TwglCreateContextAttribsARB;
14268
14269   // WGL_AMD_gpu_association
14270   wglGetGPUIDsAMD: TwglGetGPUIDsAMD;
14271   wglGetGPUInfoAMD: TwglGetGPUInfoAMD;
14272   wglGetContextGPUIDAMD: TwglGetContextGPUIDAMD;
14273   wglCreateAssociatedContextAMD: TwglCreateAssociatedContextAMD;
14274   wglCreateAssociatedContextAttribsAMD: TwglCreateAssociatedContextAttribsAMD;
14275   wglDeleteAssociatedContextAMD: TwglDeleteAssociatedContextAMD;
14276   wglMakeAssociatedContextCurrentAMD: TwglMakeAssociatedContextCurrentAMD;
14277   wglGetCurrentAssociatedContextAMD: TwglGetCurrentAssociatedContextAMD;
14278   wglBlitContextFramebufferAMD: TwglBlitContextFramebufferAMD;
14279
14280   // WGL_EXT_display_color_table
14281   wglCreateDisplayColorTableEXT: TwglCreateDisplayColorTableEXT;
14282   wglLoadDisplayColorTableEXT: TwglLoadDisplayColorTableEXT;
14283   wglBindDisplayColorTableEXT: TwglBindDisplayColorTableEXT;
14284   wglDestroyDisplayColorTableEXT: TwglDestroyDisplayColorTableEXT;
14285
14286   // WGL_EXT_extensions_string
14287   wglGetExtensionsStringEXT: TwglGetExtensionsStringEXT;
14288
14289   // WGL_EXT_make_current_read
14290   wglMakeContextCurrentEXT: TwglMakeContextCurrentEXT;
14291   wglGetCurrentReadDCEXT: TwglGetCurrentReadDCEXT;
14292
14293   // WGL_EXT_pbuffer
14294   wglCreatePbufferEXT: TwglCreatePbufferEXT;
14295   wglGetPbufferDCEXT: TwglGetPbufferDCEXT;
14296   wglReleasePbufferDCEXT: TwglReleasePbufferDCEXT;
14297   wglDestroyPbufferEXT: TwglDestroyPbufferEXT;
14298   wglQueryPbufferEXT: TwglQueryPbufferEXT;
14299
14300   // WGL_EXT_pixel_format
14301   wglGetPixelFormatAttribivEXT: TwglGetPixelFormatAttribivEXT;
14302   wglGetPixelFormatAttribfvEXT: TwglGetPixelFormatAttribfvEXT;
14303   wglChoosePixelFormatEXT: TwglChoosePixelFormatEXT;
14304
14305   // WGL_EXT_swap_control
14306   wglSwapIntervalEXT: TwglSwapIntervalEXT;
14307   wglGetSwapIntervalEXT: TwglGetSwapIntervalEXT;
14308
14309   // WGL_I3D_digital_video_control
14310   wglGetDigitalVideoParametersI3D: TwglGetDigitalVideoParametersI3D;
14311   wglSetDigitalVideoParametersI3D: TwglSetDigitalVideoParametersI3D;
14312
14313   // WGL_I3D_gamma
14314   wglGetGammaTableParametersI3D: TwglGetGammaTableParametersI3D;
14315   wglSetGammaTableParametersI3D: TwglSetGammaTableParametersI3D;
14316   wglGetGammaTableI3D: TwglGetGammaTableI3D;
14317   wglSetGammaTableI3D: TwglSetGammaTableI3D;
14318
14319   // WGL_I3D_genlock
14320   wglEnableGenlockI3D: TwglEnableGenlockI3D;
14321   wglDisableGenlockI3D: TwglDisableGenlockI3D;
14322   wglIsEnabledGenlockI3D: TwglIsEnabledGenlockI3D;
14323   wglGenlockSourceI3D: TwglGenlockSourceI3D;
14324   wglGetGenlockSourceI3D: TwglGetGenlockSourceI3D;
14325   wglGenlockSourceEdgeI3D: TwglGenlockSourceEdgeI3D;
14326   wglGetGenlockSourceEdgeI3D: TwglGetGenlockSourceEdgeI3D;
14327   wglGenlockSampleRateI3D: TwglGenlockSampleRateI3D;
14328   wglGetGenlockSampleRateI3D: TwglGetGenlockSampleRateI3D;
14329   wglGenlockSourceDelayI3D: TwglGenlockSourceDelayI3D;
14330   wglGetGenlockSourceDelayI3D: TwglGetGenlockSourceDelayI3D;
14331   wglQueryGenlockMaxSourceDelayI3D: TwglQueryGenlockMaxSourceDelayI3D;
14332
14333   // WGL_I3D_image_buffer
14334   wglCreateImageBufferI3D: TwglCreateImageBufferI3D;
14335   wglDestroyImageBufferI3D: TwglDestroyImageBufferI3D;
14336   wglAssociateImageBufferEventsI3D: TwglAssociateImageBufferEventsI3D;
14337   wglReleaseImageBufferEventsI3D: TwglReleaseImageBufferEventsI3D;
14338
14339   // WGL_I3D_swap_frame_lock
14340   wglEnableFrameLockI3D: TwglEnableFrameLockI3D;
14341   wglDisableFrameLockI3D: TwglDisableFrameLockI3D;
14342   wglIsEnabledFrameLockI3D: TwglIsEnabledFrameLockI3D;
14343   wglQueryFrameLockMasterI3D: TwglQueryFrameLockMasterI3D;
14344
14345   // WGL_I3D_swap_frame_usage
14346   wglGetFrameUsageI3D: TwglGetFrameUsageI3D;
14347   wglBeginFrameTrackingI3D: TwglBeginFrameTrackingI3D;
14348   wglEndFrameTrackingI3D: TwglEndFrameTrackingI3D;
14349   wglQueryFrameTrackingI3D: TwglQueryFrameTrackingI3D;
14350
14351   // WGL_NV_vertex_array_range
14352   wglAllocateMemoryNV: TwglAllocateMemoryNV;
14353   wglFreeMemoryNV: TwglFreeMemoryNV;
14354
14355   // WGL_NV_present_video
14356   wglEnumerateVideoDevicesNV: TwglEnumerateVideoDevicesNV;
14357   wglBindVideoDeviceNV: TwglBindVideoDeviceNV;
14358   wglQueryCurrentContextNV: TwglQueryCurrentContextNV;
14359
14360   // WGL_NV_video_output
14361   wglGetVideoDeviceNV: TwglGetVideoDeviceNV;
14362   wglReleaseVideoDeviceNV: TwglReleaseVideoDeviceNV;
14363   wglBindVideoImageNV: TwglBindVideoImageNV;
14364   wglReleaseVideoImageNV: TwglReleaseVideoImageNV;
14365   wglSendPbufferToVideoNV: TwglSendPbufferToVideoNV;
14366   wglGetVideoInfoNV: TwglGetVideoInfoNV;
14367
14368   // WGL_NV_swap_group
14369   wglJoinSwapGroupNV: TwglJoinSwapGroupNV;
14370   wglBindSwapBarrierNV: TwglBindSwapBarrierNV;
14371   wglQuerySwapGroupNV: TwglQuerySwapGroupNV;
14372   wglQueryMaxSwapGroupsNV: TwglQueryMaxSwapGroupsNV;
14373   wglQueryFrameCountNV: TwglQueryFrameCountNV;
14374   wglResetFrameCountNV: TwglResetFrameCountNV;
14375
14376   // WGL_NV_gpu_affinity
14377   wglEnumGpusNV: TwglEnumGpusNV;
14378   wglEnumGpuDevicesNV: TwglEnumGpuDevicesNV;
14379   wglCreateAffinityDCNV: TwglCreateAffinityDCNV;
14380   wglEnumGpusFromAffinityDCNV: TwglEnumGpusFromAffinityDCNV;
14381   wglDeleteDCNV: TwglDeleteDCNV;
14382
14383   // WGL_NV_video_capture
14384   wglBindVideoCaptureDeviceNV: TwglBindVideoCaptureDeviceNV;
14385   wglEnumerateVideoCaptureDevicesNV: TwglEnumerateVideoCaptureDevicesNV;
14386   wglLockVideoCaptureDeviceNV: TwglLockVideoCaptureDeviceNV;
14387   wglQueryVideoCaptureDeviceNV: TwglQueryVideoCaptureDeviceNV;
14388   wglReleaseVideoCaptureDeviceNV: TwglReleaseVideoCaptureDeviceNV;
14389
14390   // WGL_NV_copy_image
14391   wglCopyImageSubDataNV: TwglCopyImageSubDataNV;
14392
14393   // WGL_NV_DX_interop
14394   wglDXSetResourceShareHandleNV : TwglDXSetResourceShareHandleNV;
14395   wglDXOpenDeviceNV : TwglDXOpenDeviceNV;
14396   wglDXCloseDeviceNV : TwglDXCloseDeviceNV;
14397   wglDXRegisterObjectNV : TwglDXRegisterObjectNV;
14398   wglDXUnregisterObjectNV : TwglDXUnregisterObjectNV;
14399   wglDXObjectAccessNV : TwglDXObjectAccessNV;
14400   wglDXLockObjectsNV : TwglDXLockObjectsNV;
14401   wglDXUnlockObjectsNV : TwglDXUnlockObjectsNV;
14402
14403   // WGL_OML_sync_control
14404   wglGetSyncValuesOML: TwglGetSyncValuesOML;
14405   wglGetMscRateOML: TwglGetMscRateOML;
14406   wglSwapBuffersMscOML: TwglSwapBuffersMscOML;
14407   wglSwapLayerBuffersMscOML: TwglSwapLayerBuffersMscOML;
14408   wglWaitForMscOML: TwglWaitForMscOML;
14409   wglWaitForSbcOML: TwglWaitForSbcOML;
14410
14411   // WGL_3DL_stereo_control
14412   wglSetStereoEmitterState3DL: TwglSetStereoEmitterState3DL;
14413
14414   // WIN_draw_range_elements
14415   glDrawRangeElementsWIN: TglDrawRangeElementsWIN;
14416
14417   // WIN_swap_hint
14418   glAddSwapHintRectWIN: TglAddSwapHintRectWIN;
14419 {$ENDIF}
14420
14421 {$IFDEF DGL_LINUX}
14422   glXChooseVisual: TglXChooseVisual;
14423   glXCopyContext: TglXCopyContext;
14424   glXCreateContext: TglXCreateContext;
14425   glXCreateGLXPixmap: TglXCreateGLXPixmap;
14426   glXDestroyContext: TglXDestroyContext;
14427   glXDestroyGLXPixmap: TglXDestroyGLXPixmap;
14428   glXGetConfig: TglXGetConfig;
14429   glXGetCurrentContext: TglXGetCurrentContext;
14430   glXGetCurrentDrawable: TglXGetCurrentDrawable;
14431   glXIsDirect: TglXIsDirect;
14432   glXMakeCurrent: TglXMakeCurrent;
14433   glXQueryExtension: TglXQueryExtension;
14434   glXQueryVersion: TglXQueryVersion;
14435   glXSwapBuffers: TglXSwapBuffers;
14436   glXUseXFont: TglXUseXFont;
14437   glXWaitGL: TglXWaitGL;
14438   glXWaitX: TglXWaitX;
14439
14440   glXGetClientString: TglXGetClientString;
14441   glXQueryServerString: TglXQueryServerString;
14442   glXQueryExtensionsString: TglXQueryExtensionsString;
14443
14444   // GLX_VERSION_1_3
14445   glXGetFBConfigs: TglXGetFBConfigs;
14446   glXChooseFBConfig: TglXChooseFBConfig;
14447   glXGetFBConfigAttrib: TglXGetFBConfigAttrib;
14448   glXGetVisualFromFBConfig: TglXGetVisualFromFBConfig;
14449   glXCreateWindow: TglXCreateWindow;
14450   glXDestroyWindow: TglXDestroyWindow;
14451   glXCreatePixmap: TglXCreatePixmap;
14452
14453   glXDestroyPixmap: TglXDestroyPixmap;
14454   glXCreatePbuffer: TglXCreatePbuffer;
14455   glXDestroyPbuffer: TglXDestroyPbuffer;
14456   glXQueryDrawable: TglXQueryDrawable;
14457   glXCreateNewContext: TglXCreateNewContext;
14458   glXMakeContextCurrent: TglXMakeContextCurrent;
14459   glXGetCurrentReadDrawable: TglXGetCurrentReadDrawable;
14460   glXGetCurreentDisplay: TglXGetCurreentDisplay;
14461
14462   glXQueryContext: TglXQueryContext;
14463   glXSelectEvent: TglXSelectEvent;
14464   glXGetSelectedEvent: TglXGetSelectedEvent;
14465
14466   // GLX_VERSION_1_4
14467   glXGetProcAddress: TglXGetProcAddress;
14468
14469   // GLX_ARB_get_proc_address
14470   glXGetProcAddressARB: TglXGetProcAddressARB;
14471
14472   // GLX_ARB_create_context
14473   glXCreateContextAttribsARB: TglXCreateContextAttribsARB;
14474
14475   // GLX_EXT_import_context
14476   glXGetCurrentDisplayEXT: TglXGetCurrentDisplayEXT;
14477   glXQueryContextInfoEXT: TglXQueryContextInfoEXT;
14478   glXGetContextIDEXT: TglXGetContextIDEXT;
14479   glXImportContextEXT: TglXImportContextEXT;
14480   glXFreeContextEXT: TglXFreeContextEXT;
14481
14482   // GLX_EXT_texture_from_pixmap
14483   glXBindTexImageEXT: TglXBindTexImageEXT;
14484   glXReleaseTexImageEXT: TglXReleaseTexImageEXT;
14485 {$ENDIF}
14486
14487   // GL utility functions and procedures
14488   gluErrorString: TgluErrorString;
14489   gluGetString: TgluGetString;
14490   gluOrtho2D: TgluOrtho2D;
14491   gluPerspective: TgluPerspective;
14492   gluPickMatrix: TgluPickMatrix;
14493   gluLookAt: TgluLookAt;
14494   gluProject: TgluProject;
14495   gluUnProject: TgluUnProject;
14496   gluScaleImage: TgluScaleImage;
14497   gluBuild1DMipmaps: TgluBuild1DMipmaps;
14498   gluBuild2DMipmaps: TgluBuild2DMipmaps;
14499   gluNewQuadric: TgluNewQuadric;
14500   gluDeleteQuadric: TgluDeleteQuadric;
14501   gluQuadricNormals: TgluQuadricNormals;
14502   gluQuadricTexture: TgluQuadricTexture;
14503   gluQuadricOrientation: TgluQuadricOrientation;
14504   gluQuadricDrawStyle: TgluQuadricDrawStyle;
14505   gluCylinder: TgluCylinder;
14506   gluDisk: TgluDisk;
14507   gluPartialDisk: TgluPartialDisk;
14508   gluSphere: TgluSphere;
14509   gluQuadricCallback: TgluQuadricCallback;
14510   gluNewTess: TgluNewTess;
14511   gluDeleteTess: TgluDeleteTess;
14512   gluTessBeginPolygon: TgluTessBeginPolygon;
14513   gluTessBeginContour: TgluTessBeginContour;
14514   gluTessVertex: TgluTessVertex;
14515   gluTessEndContour: TgluTessEndContour;
14516   gluTessEndPolygon: TgluTessEndPolygon;
14517   gluTessProperty: TgluTessProperty;
14518   gluTessNormal: TgluTessNormal;
14519   gluTessCallback: TgluTessCallback;
14520   gluGetTessProperty: TgluGetTessProperty;
14521   gluNewNurbsRenderer: TgluNewNurbsRenderer;
14522   gluDeleteNurbsRenderer: TgluDeleteNurbsRenderer;
14523   gluBeginSurface: TgluBeginSurface;
14524   gluBeginCurve: TgluBeginCurve;
14525   gluEndCurve: TgluEndCurve;
14526   gluEndSurface: TgluEndSurface;
14527   gluBeginTrim: TgluBeginTrim;
14528   gluEndTrim: TgluEndTrim;
14529   gluPwlCurve: TgluPwlCurve;
14530   gluNurbsCurve: TgluNurbsCurve;
14531   gluNurbsSurface: TgluNurbsSurface;
14532   gluLoadSamplingMatrices: TgluLoadSamplingMatrices;
14533   gluNurbsProperty: TgluNurbsProperty;
14534   gluGetNurbsProperty: TgluGetNurbsProperty;
14535   gluNurbsCallback: TgluNurbsCallback;
14536   gluBeginPolygon: TgluBeginPolygon;
14537   gluNextContour: TgluNextContour;
14538   gluEndPolygon: TgluEndPolygon;
14539
14540
14541 type
14542   TRCOptions = set of (opDoubleBuffered, opGDI, opStereo);
14543
14544 var
14545   GL_LibHandle: Pointer = nil;
14546   GLU_LibHandle: Pointer = nil;
14547
14548   LastPixelFormat: Integer;
14549   ExtensionsRead: Boolean;
14550   ImplementationRead: Boolean;
14551
14552
14553 const
14554 {$IFDEF DGL_WIN}
14555   OPENGL_LIBNAME = 'OpenGL32.dll';
14556   GLU_LIBNAME = 'GLU32.dll';
14557 {$ELSE}
14558   {$IFDEF darwin}
14559     OPENGL_LIBNAME = 'libGL.dylib';
14560     GLU_LIBNAME = 'libGLU.dylib';
14561   {$ELSE}
14562     OPENGL_LIBNAME = 'libGL.so.1';
14563     GLU_LIBNAME = 'libGLU.so.1';
14564   {$ENDIF}
14565 {$ENDIF}
14566
14567 function InitOpenGL(LibName: String = OPENGL_LIBNAME; GLULibName: String = GLU_LIBNAME): Boolean;
14568
14569 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14570 function dglCheckExtension(Extension: AnsiString): Boolean;
14571
14572 procedure ReadExtensions;
14573 procedure ReadImplementationProperties;
14574
14575 // =============================================================================
14576 // Helper-Functions
14577 // =============================================================================
14578 {$IFDEF DGL_WIN}
14579   function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14580   function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
14581   procedure DestroyRenderingContext(RC: HGLRC);
14582
14583   procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
14584   procedure DeactivateRenderingContext;
14585 {$ENDIF}
14586
14587
14588 procedure ReadOpenGLCore;
14589 procedure Read_GL_3DFX_tbuffer;
14590 procedure Read_GL_APPLE_element_array;
14591 procedure Read_GL_APPLE_fence;
14592 procedure Read_GL_APPLE_vertex_array_object;
14593 procedure Read_GL_APPLE_vertex_array_range;
14594 procedure Read_GL_APPLE_texture_range;
14595 procedure Read_GL_APPLE_vertex_program_evaluators;
14596 procedure Read_GL_APPLE_object_purgeable;
14597 procedure Read_GL_ARB_matrix_palette;
14598 procedure Read_GL_ARB_multitexture;
14599 procedure Read_GL_ARB_point_parameters;
14600 procedure Read_GL_ARB_texture_compression;
14601 procedure Read_GL_ARB_transpose_matrix;
14602 procedure Read_GL_ARB_vertex_blend;
14603 procedure Read_GL_ARB_vertex_buffer_object;
14604 procedure Read_GL_ARB_vertex_program;
14605 procedure Read_GL_ARB_window_pos;
14606 procedure Read_GL_ARB_color_buffer_float;
14607 procedure Read_GL_ARB_Shader_Objects;
14608 procedure Read_GL_ARB_occlusion_query;
14609 procedure Read_GL_ARB_draw_instanced;
14610 procedure Read_GL_ARB_framebuffer_object;
14611 procedure Read_GL_ARB_geometry_shader4;
14612 procedure Read_GL_ARB_instanced_arrays;
14613 procedure Read_GL_ARB_map_buffer_range;
14614 procedure Read_GL_ARB_texture_buffer_object;
14615 procedure Read_GL_ARB_vertex_array_object;
14616 procedure Read_GL_ARB_uniform_buffer_object;
14617 procedure Read_GL_ARB_copy_buffer;
14618 procedure Read_GL_ARB_draw_elements_base_vertex;
14619 procedure Read_GL_ARB_provoking_vertex;
14620 procedure Read_GL_ARB_sync;
14621 procedure Read_GL_ARB_texture_multisample;
14622 procedure Read_GL_ARB_draw_buffers_blend;
14623 procedure Read_GL_ARB_sample_shading;
14624 procedure Read_GL_ARB_shading_language_include;
14625 procedure Read_GL_ARB_blend_func_extended;
14626 procedure Read_GL_ARB_sampler_objects;
14627 procedure Read_GL_ARB_timer_query;
14628 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
14629 procedure Read_GL_ARB_draw_indirect;
14630 procedure Read_GL_ARB_gpu_shader_fp64;
14631 procedure Read_GL_ARB_shader_subroutine;
14632 procedure Read_GL_ARB_tessellation_shader;
14633 procedure Read_GL_ARB_transform_feedback2;
14634 procedure Read_GL_ARB_transform_feedback3;
14635 procedure Read_GL_ARB_ES2_compatibility;
14636 procedure Read_GL_ARB_get_program_binary;
14637 procedure Read_GL_ARB_separate_shader_objects;
14638 procedure Read_GL_ARB_vertex_attrib_64bit;
14639 procedure Read_GL_ARB_viewport_array;
14640 // GL 4.2
14641 procedure Read_GL_ARB_base_instance;
14642 procedure Read_GL_ARB_transform_feedback_instanced;
14643 procedure Read_GL_ARB_internalformat_query;
14644 procedure Read_GL_ARB_shader_atomic_counters;
14645 procedure Read_GL_ARB_shader_image_load_store;
14646 procedure Read_GL_ARB_texture_storage;
14647 // GL 4.3
14648 procedure Read_GL_KHR_debug;
14649 procedure Read_GL_ARB_clear_buffer_object;
14650 procedure Read_GL_ARB_compute_shader;
14651 procedure Read_GL_ARB_copy_image;
14652 procedure Read_GL_ARB_framebuffer_no_attachments;
14653 procedure Read_GL_ARB_internalformat_query2;
14654 procedure Read_GL_ARB_invalidate_subdata;
14655 procedure Read_GL_ARB_multi_draw_indirect;
14656 procedure Read_GL_ARB_program_interface_query;
14657 procedure Read_GL_ARB_shader_storage_buffer_object;
14658 procedure Read_GL_ARB_texture_buffer_range;
14659 procedure Read_GL_ARB_texture_storage_multisample;
14660 procedure Read_GL_ARB_texture_view;
14661 procedure Read_GL_ARB_vertex_attrib_binding;
14662
14663
14664 procedure Read_GL_4_4;
14665 procedure Read_GL_4_5;
14666
14667 //
14668 procedure Read_GL_ARB_cl_event;
14669 procedure Read_GL_ARB_debug_output;
14670 procedure Read_GL_ARB_robustness;
14671 procedure Read_GL_ATI_draw_buffers;
14672 procedure Read_GL_ATI_element_array;
14673 procedure Read_GL_ATI_envmap_bumpmap;
14674 procedure Read_GL_ATI_fragment_shader;
14675 procedure Read_GL_ATI_map_object_buffer;
14676 procedure Read_GL_ATI_pn_triangles;
14677 procedure Read_GL_ATI_separate_stencil;
14678 procedure Read_GL_ATI_vertex_array_object;
14679 procedure Read_GL_ATI_vertex_attrib_array_object;
14680 procedure Read_GL_ATI_vertex_streams;
14681 procedure Read_GL_AMD_performance_monitor;
14682 procedure Read_GL_AMD_vertex_shader_tesselator;
14683 procedure Read_GL_AMD_draw_buffers_blend;
14684 procedure Read_GL_AMD_name_gen_delete;
14685 procedure Read_GL_AMD_debug_output;
14686 procedure Read_GL_EXT_blend_color;
14687 procedure Read_GL_EXT_blend_func_separate;
14688 procedure Read_GL_EXT_blend_minmax;
14689 procedure Read_GL_EXT_color_subtable;
14690 procedure Read_GL_EXT_compiled_vertex_array;
14691 procedure Read_GL_EXT_convolution;
14692 procedure Read_GL_EXT_coordinate_frame;
14693 procedure Read_GL_EXT_copy_texture;
14694 procedure Read_GL_EXT_cull_vertex;
14695 procedure Read_GL_EXT_draw_range_elements;
14696 procedure Read_GL_EXT_fog_coord;
14697 procedure Read_GL_EXT_framebuffer_object;
14698 procedure Read_GL_EXT_histogram;
14699 procedure Read_GL_EXT_index_func;
14700 procedure Read_GL_EXT_index_material;
14701 procedure Read_GL_EXT_multi_draw_arrays;
14702 procedure Read_GL_EXT_multisample;
14703 procedure Read_GL_EXT_paletted_texture;
14704 procedure Read_GL_EXT_pixel_transform;
14705 procedure Read_GL_EXT_point_parameters;
14706 procedure Read_GL_EXT_polygon_offset;
14707 procedure Read_GL_EXT_secondary_color;
14708 procedure Read_GL_EXT_stencil_two_side;
14709 procedure Read_GL_EXT_subtexture;
14710 procedure Read_GL_EXT_texture3D;
14711 procedure Read_GL_EXT_texture_object;
14712 procedure Read_GL_EXT_texture_perturb_normal;
14713 procedure Read_GL_EXT_vertex_array;
14714 procedure Read_GL_EXT_vertex_shader;
14715 procedure Read_GL_EXT_vertex_weighting;
14716 procedure Read_GL_EXT_depth_bounds_test;
14717 procedure Read_GL_EXT_blend_equation_separate;
14718 procedure Read_GL_EXT_stencil_clear_tag;
14719 procedure Read_GL_EXT_framebuffer_blit;
14720 procedure Read_GL_EXT_framebuffer_multisample;
14721 procedure Read_GL_EXT_timer_query;
14722 procedure Read_GL_EXT_gpu_program_parameters;
14723 procedure Read_GL_EXT_bindable_uniform;
14724 procedure Read_GL_EXT_draw_buffers2;
14725 procedure Read_GL_EXT_draw_instanced;
14726 procedure Read_GL_EXT_geometry_shader4;
14727 procedure Read_GL_EXT_gpu_shader4;
14728 procedure Read_GL_EXT_texture_array;
14729 procedure Read_GL_EXT_texture_buffer_object;
14730 procedure Read_GL_EXT_texture_integer;
14731 procedure Read_GL_EXT_transform_feedback;
14732 procedure Read_GL_EXT_direct_state_access;
14733 procedure Read_GL_EXT_separate_shader_objects;
14734 procedure Read_GL_EXT_shader_image_load_store;
14735 procedure Read_GL_EXT_vertex_attrib_64bit;
14736 procedure Read_GL_HP_image_transform;
14737 procedure Read_GL_IBM_multimode_draw_arrays;
14738 procedure Read_GL_IBM_vertex_array_lists;
14739 procedure Read_GL_INGR_blend_func_separate;
14740 procedure Read_GL_INTEL_parallel_arrays;
14741 procedure Read_GL_MESA_resize_buffers;
14742 procedure Read_GL_MESA_window_pos;
14743 procedure Read_GL_NV_evaluators;
14744 procedure Read_GL_NV_fence;
14745 procedure Read_GL_NV_fragment_program;
14746 procedure Read_GL_NV_half_float;
14747 procedure Read_GL_NV_occlusion_query;
14748 procedure Read_GL_NV_pixel_data_range;
14749 procedure Read_GL_NV_point_sprite;
14750 procedure Read_GL_NV_primitive_restart;
14751 procedure Read_GL_NV_register_combiners;
14752 procedure Read_GL_NV_register_combiners2;
14753 procedure Read_GL_NV_vertex_array_range;
14754 procedure Read_GL_NV_vertex_program;
14755 procedure Read_GL_NV_depth_buffer_float;
14756 procedure Read_GL_NV_framebuffer_multisample_coverage;
14757 procedure Read_GL_NV_geometry_program4;
14758 procedure Read_GL_NV_gpu_program4;
14759 procedure Read_GL_NV_parameter_buffer_object;
14760 procedure Read_GL_NV_transform_feedback;
14761 procedure Read_GL_NV_conditional_render;
14762 procedure Read_GL_NV_present_video;
14763 procedure Read_GL_NV_explicit_multisample;
14764 procedure Read_GL_NV_transform_feedback2;
14765 procedure Read_GL_NV_video_capture;
14766 procedure Read_GL_NV_copy_image;
14767 procedure Read_GL_NV_shader_buffer_load;
14768 procedure Read_GL_NV_vertex_buffer_unified_memory;
14769 procedure Read_GL_NV_gpu_program5;
14770 procedure Read_GL_NV_gpu_shader5;
14771 procedure Read_GL_NV_vertex_attrib_integer_64bit;
14772 procedure Read_GL_NV_vdpau_interop;
14773 procedure Read_GL_NV_texture_barrier;
14774 procedure Read_GL_PGI_misc_hints;
14775 procedure Read_GL_SGIS_detail_texture;
14776 procedure Read_GL_SGIS_fog_function;
14777 procedure Read_GL_SGIS_multisample;
14778 procedure Read_GL_SGIS_pixel_texture;
14779 procedure Read_GL_SGIS_point_parameters;
14780 procedure Read_GL_SGIS_sharpen_texture;
14781 procedure Read_GL_SGIS_texture4D;
14782 procedure Read_GL_SGIS_texture_color_mask;
14783 procedure Read_GL_SGIS_texture_filter4;
14784 procedure Read_GL_SGIX_async;
14785 procedure Read_GL_SGIX_flush_raster;
14786 procedure Read_GL_SGIX_fragment_lighting;
14787 procedure Read_GL_SGIX_framezoom;
14788 procedure Read_GL_SGIX_igloo_interface;
14789 procedure Read_GL_SGIX_instruments;
14790 procedure Read_GL_SGIX_list_priority;
14791 procedure Read_GL_SGIX_pixel_texture;
14792 procedure Read_GL_SGIX_polynomial_ffd;
14793 procedure Read_GL_SGIX_reference_plane;
14794 procedure Read_GL_SGIX_sprite;
14795 procedure Read_GL_SGIX_tag_sample_buffer;
14796 procedure Read_GL_SGI_color_table;
14797 procedure Read_GL_SUNX_constant_data;
14798 procedure Read_GL_SUN_global_alpha;
14799 procedure Read_GL_SUN_mesh_array;
14800 procedure Read_GL_SUN_triangle_list;
14801 procedure Read_GL_SUN_vertex;
14802
14803 {$IFDEF DGL_WIN}
14804 procedure Read_WGL_ARB_buffer_region;
14805 procedure Read_WGL_ARB_extensions_string;
14806 procedure Read_WGL_ARB_make_current_read;
14807 procedure Read_WGL_ARB_pbuffer;
14808 procedure Read_WGL_ARB_pixel_format;
14809 procedure Read_WGL_ARB_pixel_format_float;
14810 procedure Read_WGL_ARB_render_texture;
14811 procedure Read_WGL_ARB_create_context;
14812 procedure Read_WGL_AMD_gpu_association;
14813 procedure Read_WGL_EXT_display_color_table;
14814 procedure Read_WGL_EXT_extensions_string;
14815 procedure Read_WGL_EXT_make_current_read;
14816 procedure Read_WGL_EXT_pbuffer;
14817 procedure Read_WGL_EXT_pixel_format;
14818 procedure Read_WGL_EXT_swap_control;
14819 procedure Read_WGL_I3D_digital_video_control;
14820 procedure Read_WGL_I3D_gamma;
14821 procedure Read_WGL_I3D_genlock;
14822 procedure Read_WGL_I3D_image_buffer;
14823 procedure Read_WGL_I3D_swap_frame_lock;
14824 procedure Read_WGL_I3D_swap_frame_usage;
14825 procedure Read_WGL_NV_vertex_array_range;
14826 procedure Read_WGL_NV_present_video;
14827 procedure Read_WGL_NV_video_output;
14828 procedure Read_WGL_NV_swap_group;
14829 procedure Read_WGL_NV_gpu_affinity;
14830 procedure Read_WGL_NV_video_capture;
14831 procedure Read_WGL_NV_copy_image;
14832 procedure Read_WGL_OML_sync_control;
14833 procedure Read_WGL_3DL_stereo_control;
14834
14835 procedure Read_WIN_draw_range_elements;
14836 procedure Read_WIN_swap_hint;
14837 {$ENDIF}
14838
14839
14840 implementation
14841
14842
14843 {$IFDEF DGL_LINUX}
14844 const
14845   RTLD_LAZY = $001;
14846   RTLD_NOW = $002;
14847   RTLD_BINDING_MASK = $003;
14848
14849   // Seems to work on Debian / Fedora
14850   LibraryLib = {$IFDEF Linux} 'libdl.so.2'{$ELSE} 'c'{$ENDIF};
14851
14852 function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external LibraryLib name 'dlopen';
14853 function dlclose(Lib: Pointer): LongInt; cdecl; external LibraryLib name 'dlclose';
14854
14855 function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external LibraryLib name 'dlsym';
14856 {$ENDIF}
14857
14858 {$IFDEF DGL_MAC}{$IFDEF OPENGL_FRAMEWORK}  // OpenGL framework used
14859 const
14860   RTLD_DEFAULT = Pointer(-2);
14861 {$ENDIF}{$ENDIF}
14862
14863 function dglLoadLibrary(Name: PChar): Pointer;
14864 begin
14865   {$IFDEF DGL_WIN}
14866   Result := Pointer(LoadLibrary(Name));
14867   {$ENDIF}
14868
14869   {$IFDEF DGL_LINUX}
14870   Result := dlopen(Name, RTLD_LAZY);
14871   {$ENDIF}
14872
14873   {$IFDEF DGL_MAC}
14874   {$IFDEF OPENGL_FRAMEWORK}
14875   Result := RTLD_DEFAULT;
14876   {$ELSE}
14877   Result := Pointer(LoadLibrary(Name));
14878   {$ENDIF}
14879   {$ENDIF}
14880 end;
14881
14882
14883 function dglFreeLibrary(LibHandle: Pointer): Boolean;
14884 begin
14885   if LibHandle = nil then
14886     Result := False
14887   else
14888     {$IFDEF DGL_WIN}
14889     Result := FreeLibrary(HMODULE(LibHandle));
14890     {$ENDIF}
14891
14892     {$IFDEF DGL_LINUX}
14893     Result := dlclose(LibHandle) = 0;
14894     {$ENDIF}
14895
14896     {$IFDEF DGL_MAC}
14897     {$IFDEF OPENGL_FRAMEWORK}
14898         Result := true;
14899         {$ELSE}
14900     Result := FreeLibrary(HMODULE(LibHandle));
14901     {$ENDIF}
14902         {$ENDIF}
14903 end;
14904
14905
14906 function dglGetProcAddress(ProcName: PAnsiChar; LibHandle: Pointer = nil {$IFDEF DGL_LINUX}; ForceDLSym: Boolean = False{$ENDIF}): Pointer;
14907 begin
14908   if LibHandle = nil then
14909     LibHandle := GL_LibHandle;
14910
14911
14912   {$IFDEF DGL_WIN}
14913     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14914
14915     if result <> nil then
14916       exit;
14917
14918     if Addr(wglGetProcAddress) <> nil then
14919       Result := wglGetProcAddress(ProcName);
14920   {$ENDIF}
14921
14922   {$IFDEF DGL_LINUX}
14923     if not ForceDLSym then begin
14924       if Addr(glXGetProcAddress) <> nil then
14925         Result := glXGetProcAddress(ProcName);
14926
14927       if result <> nil then
14928         exit;
14929
14930       if Addr(glXGetProcAddressARB) <> nil then
14931         Result := glXGetProcAddressARB(ProcName);
14932
14933       if result <> nil then
14934         exit;
14935     end;
14936
14937     Result := dlsym(LibHandle, ProcName);
14938   {$ENDIF}
14939
14940   {$IFDEF DGL_MAC}
14941     Result := GetProcAddress(HMODULE(LibHandle), ProcName);
14942   {$ENDIF}
14943 end;
14944
14945
14946 function Int_GetExtensionString: AnsiString;
14947 var
14948         ExtensionCount : GLuint;
14949   i : Integer;
14950 begin
14951   if GL_VERSION_3_0
14952     then
14953       begin
14954         if not Assigned(@glGetIntegerv) then glGetIntegerv := dglGetProcAddress('glGetIntegerv');
14955         if not Assigned(@glGetStringi)  then glGetStringi  := dglGetProcAddress('glGetStringi');
14956
14957         result := '';
14958
14959         if Assigned(@glGetIntegerv) and Assigned(@glGetStringi)
14960           then
14961             begin
14962               glGetIntegerv(GL_NUM_EXTENSIONS, @extensionCount);
14963
14964               For I := 0 to extensionCount - 1 do
14965                 result := result + #32 + PAnsiChar(glGetStringi(GL_EXTENSIONS, I));
14966             end;
14967       end
14968     else
14969       begin
14970         if not Assigned(@glGetString) then glGetString := dglGetProcAddress('glGetString');
14971
14972         if Assigned(@glGetString)
14973           then result := glGetString(GL_EXTENSIONS)
14974           else result := '';
14975       end;
14976
14977   if (GL_LibHandle <> nil) then begin
14978     {$IFDEF DGL_WIN}
14979       // wglGetExtensionsStringEXT
14980       if not Assigned(@wglGetExtensionsStringEXT) then
14981         wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
14982
14983       if Assigned(@wglGetExtensionsStringEXT) then
14984         Result := Result + #32 + wglGetExtensionsStringEXT;
14985
14986       // wglGetExtensionsStringARB
14987       if not Assigned(@wglGetExtensionsStringARB) then
14988         wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
14989
14990       if Assigned(@wglGetExtensionsStringARB) then
14991         Result := Result + #32 + wglGetExtensionsStringARB(wglGetCurrentDC);
14992     {$ENDIF}
14993   end;
14994
14995   Result := #32 + Result + #32;
14996 end;
14997
14998
14999 function Int_CheckExtension(AllExtensions, CheckExtension: AnsiString): Boolean;
15000 begin
15001   Result := Pos(#32 + CheckExtension + #32, AllExtensions) > 0;
15002 end;
15003
15004
15005 function dglCheckExtension(Extension: AnsiString): Boolean;
15006 var
15007   Extensions: AnsiString;
15008 begin
15009   Extensions := Int_GetExtensionString;
15010   Result := Int_CheckExtension(Extensions, Extension);
15011 end;
15012
15013
15014
15015 function InitOpenGL(LibName: String; GLULibName: String): Boolean;
15016 begin
15017   Result := False;
15018
15019   // free opened libraries
15020   if GL_LibHandle <> nil then
15021     dglFreeLibrary(GL_LibHandle);
15022
15023   if GLU_LibHandle <> nil then
15024     dglFreeLibrary(GLU_LibHandle);
15025
15026   // load library
15027   GL_LibHandle := dglLoadLibrary(PChar(LibName));
15028   GLU_LibHandle := dglLoadLibrary(PChar(GLULibName));
15029
15030   // load GL functions
15031   if (GL_LibHandle <> nil) then begin
15032     {$IFDEF DGL_WIN}
15033       wglCopyContext := dglGetProcAddress('wglCopyContext');
15034       wglCreateLayerContext := dglGetProcAddress('wglCreateLayerContext');
15035       wglCreateContext := dglGetProcAddress('wglCreateContext');
15036       wglDeleteContext := dglGetProcAddress('wglDeleteContext');
15037       wglDescribeLayerPlane := dglGetProcAddress('wglDescribeLayerPlane');
15038       wglGetCurrentContext := dglGetProcAddress('wglGetCurrentContext');
15039       wglGetCurrentDC := dglGetProcAddress('wglGetCurrentDC');
15040       wglGetLayerPaletteEntries := dglGetProcAddress('wglGetLayerPaletteEntries');
15041       wglGetProcAddress := dglGetProcAddress('wglGetProcAddress');
15042       wglMakeCurrent := dglGetProcAddress('wglMakeCurrent');
15043       wglRealizeLayerPalette := dglGetProcAddress('wglRealizeLayerPalette');
15044       wglSetLayerPaletteEntries := dglGetProcAddress('wglSetLayerPaletteEntries');
15045       wglShareLists := dglGetProcAddress('wglShareLists');
15046       wglSwapLayerBuffers := dglGetProcAddress('wglSwapLayerBuffers');
15047       wglSwapMultipleBuffers := dglGetProcAddress('wglSwapMultipleBuffers');
15048       wglUseFontBitmapsA := dglGetProcAddress('wglUseFontBitmapsA');
15049       wglUseFontOutlinesA := dglGetProcAddress('wglUseFontOutlinesA');
15050       wglUseFontBitmapsW := dglGetProcAddress('wglUseFontBitmapsW');
15051       wglUseFontOutlinesW := dglGetProcAddress('wglUseFontOutlinesW');
15052       wglUseFontBitmaps := dglGetProcAddress('wglUseFontBitmapsA');
15053       wglUseFontOutlines := dglGetProcAddress('wglUseFontOutlinesA');
15054     {$ENDIF}
15055
15056     {$IFDEF DGL_LINUX}
15057       // GLX_VERSION_1_4 (needs to be first)
15058       glXGetProcAddress := dglGetProcAddress('glXGetProcAddress', nil, True);
15059
15060       // GLX_ARB_get_proc_address  (also needs to be first)
15061       glXGetProcAddressARB := dglGetProcAddress('glXGetProcAddressARB', nil, True);
15062
15063       glXChooseVisual := dglGetProcAddress('glXChooseVisual');
15064       glXCopyContext := dglGetProcAddress('glXCopyContext');
15065       glXCreateContext := dglGetProcAddress('glXCreateContext');
15066       glXCreateGLXPixmap := dglGetProcAddress('glXCreateGLXPixmap');
15067       glXDestroyContext := dglGetProcAddress('glXDestroyContext');
15068       glXDestroyGLXPixmap := dglGetProcAddress('glXDestroyGLXPixmap');
15069       glXGetConfig := dglGetProcAddress('glXGetConfig');
15070       glXGetCurrentContext := dglGetProcAddress('glXGetCurrentContext');
15071       glXGetCurrentDrawable := dglGetProcAddress('glXGetCurrentDrawable');
15072       glXIsDirect := dglGetProcAddress('glXIsDirect');
15073       glXMakeCurrent := dglGetProcAddress('glXMakeCurrent');
15074       glXQueryExtension := dglGetProcAddress('glXQueryExtension');
15075       glXQueryVersion := dglGetProcAddress('glXQueryVersion');
15076       glXSwapBuffers := dglGetProcAddress('glXSwapBuffers');
15077       glXUseXFont := dglGetProcAddress('glXUseXFont');
15078       glXWaitGL := dglGetProcAddress('glXWaitGL');
15079       glXWaitX := dglGetProcAddress('glXWaitX');
15080
15081       glXGetClientString := dglGetProcAddress('glXGetClientString');
15082       glXQueryServerString := dglGetProcAddress('glXQueryServerString');
15083       glXQueryExtensionsString := dglGetProcAddress('glXQueryExtensionsString');
15084
15085       // GLX_VERSION_1_3
15086       glXGetFBConfigs := dglGetProcAddress('glXGetFBConfigs');
15087       glXChooseFBConfig := dglGetProcAddress('glXChooseFBConfig');
15088       glXGetFBConfigAttrib := dglGetProcAddress('glXGetFBConfigAttrib');
15089       glXGetVisualFromFBConfig := dglGetProcAddress('glXGetVisualFromFBConfig');
15090       glXCreateWindow := dglGetProcAddress('glXCreateWindow');
15091       glXDestroyWindow := dglGetProcAddress('glXDestroyWindow');
15092       glXCreatePixmap := dglGetProcAddress('glXCreatePixmap');
15093
15094       glXDestroyPixmap := dglGetProcAddress('glXDestroyPixmap');
15095       glXCreatePbuffer := dglGetProcAddress('glXCreatePbuffer');
15096       glXDestroyPbuffer := dglGetProcAddress('glXDestroyPbuffer');
15097       glXQueryDrawable := dglGetProcAddress('glXQueryDrawable');
15098       glXCreateNewContext := dglGetProcAddress('glXCreateNewContext');
15099       glXMakeContextCurrent := dglGetProcAddress('glXMakeContextCurrent');
15100       glXGetCurrentReadDrawable := dglGetProcAddress('glXGetCurrentReadDrawable');
15101       glXGetCurreentDisplay := dglGetProcAddress('glXGetCurreentDisplay');
15102
15103       glXQueryContext := dglGetProcAddress('glXQueryContext');
15104       glXSelectEvent := dglGetProcAddress('glXSelectEvent');
15105       glXGetSelectedEvent := dglGetProcAddress('glXGetSelectedEvent');
15106
15107       // GLX_ARB_create_context
15108       glXCreateContextAttribsARB := dglGetProcAddress('glXCreateContextAttribsARB');
15109
15110       // GLX_EXT_import_context
15111       glXGetCurrentDisplayEXT := dglGetProcAddress('glXGetCurrentDisplayEXT');
15112       glXQueryContextInfoEXT := dglGetProcAddress('glXQueryContextInfoEXT');
15113       glXGetContextIDEXT := dglGetProcAddress('glXGetContextIDEXT');
15114       glXImportContextEXT := dglGetProcAddress('glXImportContextEXT');
15115       glXFreeContextEXT := dglGetProcAddress('glXFreeContextEXT');
15116
15117       // GLX_EXT_texture_from_pixmap
15118       glXBindTexImageEXT := dglGetProcAddress('glXBindTexImageEXT');
15119       glXReleaseTexImageEXT := dglGetProcAddress('glXReleaseTexImageEXT');
15120     {$ENDIF}
15121
15122     Result := True;
15123   end;
15124
15125   // load GLU functions
15126   if GLU_LibHandle <> nil then begin
15127     // GLU ========================================================================
15128     gluBeginCurve := dglGetProcAddress('gluBeginCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15129     gluBeginPolygon := dglGetProcAddress('gluBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15130     gluBeginSurface := dglGetProcAddress('gluBeginSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15131     gluBeginTrim := dglGetProcAddress('gluBeginTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15132     gluBuild1DMipmaps := dglGetProcAddress('gluBuild1DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15133     gluBuild2DMipmaps := dglGetProcAddress('gluBuild2DMipmaps', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15134     gluCylinder := dglGetProcAddress('gluCylinder', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15135     gluDeleteNurbsRenderer := dglGetProcAddress('gluDeleteNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15136     gluDeleteQuadric := dglGetProcAddress('gluDeleteQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15137     gluDeleteTess := dglGetProcAddress('gluDeleteTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15138     gluDisk := dglGetProcAddress('gluDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15139     gluEndCurve := dglGetProcAddress('gluEndCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15140     gluEndPolygon := dglGetProcAddress('gluEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15141     gluEndSurface := dglGetProcAddress('gluEndSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15142     gluEndTrim := dglGetProcAddress('gluEndTrim', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15143     gluErrorString := dglGetProcAddress('gluErrorString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15144     gluGetNurbsProperty := dglGetProcAddress('gluGetNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15145     gluGetString := dglGetProcAddress('gluGetString', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15146     gluGetTessProperty := dglGetProcAddress('gluGetTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15147     gluLoadSamplingMatrices := dglGetProcAddress('gluLoadSamplingMatrices', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15148     gluLookAt := dglGetProcAddress('gluLookAt', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15149     gluNewNurbsRenderer := dglGetProcAddress('gluNewNurbsRenderer', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15150     gluNewQuadric := dglGetProcAddress('gluNewQuadric', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15151     gluNewTess := dglGetProcAddress('gluNewTess', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15152     gluNextContour := dglGetProcAddress('gluNextContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15153     gluNurbsCallback := dglGetProcAddress('gluNurbsCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15154     gluNurbsCurve := dglGetProcAddress('gluNurbsCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15155     gluNurbsProperty := dglGetProcAddress('gluNurbsProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15156     gluNurbsSurface := dglGetProcAddress('gluNurbsSurface', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15157     gluOrtho2D := dglGetProcAddress('gluOrtho2D', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15158     gluPartialDisk := dglGetProcAddress('gluPartialDisk', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15159     gluPerspective := dglGetProcAddress('gluPerspective', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15160     gluPickMatrix := dglGetProcAddress('gluPickMatrix', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15161     gluProject := dglGetProcAddress('gluProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15162     gluPwlCurve := dglGetProcAddress('gluPwlCurve', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15163     gluQuadricCallback := dglGetProcAddress('gluQuadricCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15164     gluQuadricDrawStyle := dglGetProcAddress('gluQuadricDrawStyle', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15165     gluQuadricNormals := dglGetProcAddress('gluQuadricNormals', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15166     gluQuadricOrientation := dglGetProcAddress('gluQuadricOrientation', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15167     gluQuadricTexture := dglGetProcAddress('gluQuadricTexture', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15168     gluScaleImage := dglGetProcAddress('gluScaleImage', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15169     gluSphere := dglGetProcAddress('gluSphere', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15170     gluTessBeginContour := dglGetProcAddress('gluTessBeginContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15171     gluTessBeginPolygon := dglGetProcAddress('gluTessBeginPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15172     gluTessCallback := dglGetProcAddress('gluTessCallback', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15173     gluTessEndContour := dglGetProcAddress('gluTessEndContour', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15174     gluTessEndPolygon := dglGetProcAddress('gluTessEndPolygon', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15175     gluTessNormal := dglGetProcAddress('gluTessNormal', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15176     gluTessProperty := dglGetProcAddress('gluTessProperty', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15177     gluTessVertex := dglGetProcAddress('gluTessVertex', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15178     gluUnProject := dglGetProcAddress('gluUnProject', GLU_LibHandle {$IFDEF DGL_LINUX}, True{$ENDIF});
15179   end;
15180 end;
15181
15182 procedure ReadOpenGLCore;
15183 begin
15184   // GL_VERSION_1_0
15185   glCullFace := dglGetProcAddress('glCullFace');
15186   glFrontFace := dglGetProcAddress('glFrontFace');
15187   glHint := dglGetProcAddress('glHint');
15188   glLineWidth := dglGetProcAddress('glLineWidth');
15189   glPointSize := dglGetProcAddress('glPointSize');
15190   glPolygonMode := dglGetProcAddress('glPolygonMode');
15191   glScissor := dglGetProcAddress('glScissor');
15192   glTexParameterf := dglGetProcAddress('glTexParameterf');
15193   glTexParameterfv := dglGetProcAddress('glTexParameterfv');
15194   glTexParameteri := dglGetProcAddress('glTexParameteri');
15195   glTexParameteriv := dglGetProcAddress('glTexParameteriv');
15196   glTexImage1D := dglGetProcAddress('glTexImage1D');
15197   glTexImage2D := dglGetProcAddress('glTexImage2D');
15198   glDrawBuffer := dglGetProcAddress('glDrawBuffer');
15199   glClear := dglGetProcAddress('glClear');
15200   glClearColor := dglGetProcAddress('glClearColor');
15201   glClearStencil := dglGetProcAddress('glClearStencil');
15202   glClearDepth := dglGetProcAddress('glClearDepth');
15203   glStencilMask := dglGetProcAddress('glStencilMask');
15204   glColorMask := dglGetProcAddress('glColorMask');
15205   glDepthMask := dglGetProcAddress('glDepthMask');
15206   glDisable := dglGetProcAddress('glDisable');
15207   glEnable := dglGetProcAddress('glEnable');
15208   glFinish := dglGetProcAddress('glFinish');
15209   glFlush := dglGetProcAddress('glFlush');
15210   glBlendFunc := dglGetProcAddress('glBlendFunc');
15211   glLogicOp := dglGetProcAddress('glLogicOp');
15212   glStencilFunc := dglGetProcAddress('glStencilFunc');
15213   glStencilOp := dglGetProcAddress('glStencilOp');
15214   glDepthFunc := dglGetProcAddress('glDepthFunc');
15215   glPixelStoref := dglGetProcAddress('glPixelStoref');
15216   glPixelStorei := dglGetProcAddress('glPixelStorei');
15217   glReadBuffer := dglGetProcAddress('glReadBuffer');
15218   glReadPixels := dglGetProcAddress('glReadPixels');
15219   glGetBooleanv := dglGetProcAddress('glGetBooleanv');
15220   glGetDoublev := dglGetProcAddress('glGetDoublev');
15221   glGetError := dglGetProcAddress('glGetError');
15222   glGetFloatv := dglGetProcAddress('glGetFloatv');
15223   glGetIntegerv := dglGetProcAddress('glGetIntegerv');
15224   glGetString := dglGetProcAddress('glGetString');
15225   glGetTexImage := dglGetProcAddress('glGetTexImage');
15226   glGetTexParameteriv := dglGetProcAddress('glGetTexParameteriv');
15227   glGetTexParameterfv := dglGetProcAddress('glGetTexParameterfv');
15228   glGetTexLevelParameterfv := dglGetProcAddress('glGetTexLevelParameterfv');
15229   glGetTexLevelParameteriv := dglGetProcAddress('glGetTexLevelParameteriv');
15230   glIsEnabled := dglGetProcAddress('glIsEnabled');
15231   glDepthRange := dglGetProcAddress('glDepthRange');
15232   glViewport := dglGetProcAddress('glViewport');
15233
15234   // GL_VERSION_1_1
15235   glDrawArrays := dglGetProcAddress('glDrawArrays');
15236   glDrawElements := dglGetProcAddress('glDrawElements');
15237   glGetPointerv := dglGetProcAddress('glGetPointerv');
15238   glPolygonOffset := dglGetProcAddress('glPolygonOffset');
15239   glCopyTexImage1D := dglGetProcAddress('glCopyTexImage1D');
15240   glCopyTexImage2D := dglGetProcAddress('glCopyTexImage2D');
15241   glCopyTexSubImage1D := dglGetProcAddress('glCopyTexSubImage1D');
15242   glCopyTexSubImage2D := dglGetProcAddress('glCopyTexSubImage2D');
15243   glTexSubImage1D := dglGetProcAddress('glTexSubImage1D');
15244   glTexSubImage2D := dglGetProcAddress('glTexSubImage2D');
15245   glBindTexture := dglGetProcAddress('glBindTexture');
15246   glDeleteTextures := dglGetProcAddress('glDeleteTextures');
15247   glGenTextures := dglGetProcAddress('glGenTextures');
15248
15249 {$ifdef DGL_DEPRECATED}
15250   glAccum := dglGetProcAddress('glAccum');
15251   glAlphaFunc := dglGetProcAddress('glAlphaFunc');
15252   glAreTexturesResident := dglGetProcAddress('glAreTexturesResident');
15253   glArrayElement := dglGetProcAddress('glArrayElement');
15254   glBegin := dglGetProcAddress('glBegin');
15255   glBitmap := dglGetProcAddress('glBitmap');
15256   glCallList := dglGetProcAddress('glCallList');
15257   glCallLists := dglGetProcAddress('glCallLists');
15258   glClearAccum := dglGetProcAddress('glClearAccum');
15259   glClearIndex := dglGetProcAddress('glClearIndex');
15260   glClipPlane := dglGetProcAddress('glClipPlane');
15261   glColor3b := dglGetProcAddress('glColor3b');
15262   glColor3bv := dglGetProcAddress('glColor3bv');
15263   glColor3d := dglGetProcAddress('glColor3d');
15264   glColor3dv := dglGetProcAddress('glColor3dv');
15265   glColor3f := dglGetProcAddress('glColor3f');
15266   glColor3fv := dglGetProcAddress('glColor3fv');
15267   glColor3i := dglGetProcAddress('glColor3i');
15268   glColor3iv := dglGetProcAddress('glColor3iv');
15269   glColor3s := dglGetProcAddress('glColor3s');
15270   glColor3sv := dglGetProcAddress('glColor3sv');
15271   glColor3ub := dglGetProcAddress('glColor3ub');
15272   glColor3ubv := dglGetProcAddress('glColor3ubv');
15273   glColor3ui := dglGetProcAddress('glColor3ui');
15274   glColor3uiv := dglGetProcAddress('glColor3uiv');
15275   glColor3us := dglGetProcAddress('glColor3us');
15276   glColor3usv := dglGetProcAddress('glColor3usv');
15277   glColor4b := dglGetProcAddress('glColor4b');
15278   glColor4bv := dglGetProcAddress('glColor4bv');
15279   glColor4d := dglGetProcAddress('glColor4d');
15280   glColor4dv := dglGetProcAddress('glColor4dv');
15281   glColor4f := dglGetProcAddress('glColor4f');
15282   glColor4fv := dglGetProcAddress('glColor4fv');
15283   glColor4i := dglGetProcAddress('glColor4i');
15284   glColor4iv := dglGetProcAddress('glColor4iv');
15285   glColor4s := dglGetProcAddress('glColor4s');
15286   glColor4sv := dglGetProcAddress('glColor4sv');
15287   glColor4ub := dglGetProcAddress('glColor4ub');
15288   glColor4ubv := dglGetProcAddress('glColor4ubv');
15289   glColor4ui := dglGetProcAddress('glColor4ui');
15290   glColor4uiv := dglGetProcAddress('glColor4uiv');
15291   glColor4us := dglGetProcAddress('glColor4us');
15292   glColor4usv := dglGetProcAddress('glColor4usv');
15293   glColorMaterial := dglGetProcAddress('glColorMaterial');
15294   glColorPointer := dglGetProcAddress('glColorPointer');
15295   glCopyPixels := dglGetProcAddress('glCopyPixels');
15296   glDeleteLists := dglGetProcAddress('glDeleteLists');
15297   glDisableClientState := dglGetProcAddress('glDisableClientState');
15298   glDrawPixels := dglGetProcAddress('glDrawPixels');
15299   glEdgeFlag := dglGetProcAddress('glEdgeFlag');
15300   glEdgeFlagPointer := dglGetProcAddress('glEdgeFlagPointer');
15301   glEdgeFlagv := dglGetProcAddress('glEdgeFlagv');
15302   glEnableClientState := dglGetProcAddress('glEnableClientState');
15303   glEnd := dglGetProcAddress('glEnd');
15304   glEndList := dglGetProcAddress('glEndList');
15305   glEvalCoord1d := dglGetProcAddress('glEvalCoord1d');
15306   glEvalCoord1dv := dglGetProcAddress('glEvalCoord1dv');
15307   glEvalCoord1f := dglGetProcAddress('glEvalCoord1f');
15308   glEvalCoord1fv := dglGetProcAddress('glEvalCoord1fv');
15309   glEvalCoord2d := dglGetProcAddress('glEvalCoord2d');
15310   glEvalCoord2dv := dglGetProcAddress('glEvalCoord2dv');
15311   glEvalCoord2f := dglGetProcAddress('glEvalCoord2f');
15312   glEvalCoord2fv := dglGetProcAddress('glEvalCoord2fv');
15313   glEvalMesh1 := dglGetProcAddress('glEvalMesh1');
15314   glEvalMesh2 := dglGetProcAddress('glEvalMesh2');
15315   glEvalPoint1 := dglGetProcAddress('glEvalPoint1');
15316   glEvalPoint2 := dglGetProcAddress('glEvalPoint2');
15317   glFeedbackBuffer := dglGetProcAddress('glFeedbackBuffer');
15318   glFogf := dglGetProcAddress('glFogf');
15319   glFogfv := dglGetProcAddress('glFogfv');
15320   glFogi := dglGetProcAddress('glFogi');
15321   glFogiv := dglGetProcAddress('glFogiv');
15322   glFrustum := dglGetProcAddress('glFrustum');
15323   glGenLists := dglGetProcAddress('glGenLists');
15324   glGetClipPlane := dglGetProcAddress('glGetClipPlane');
15325   glGetLightfv := dglGetProcAddress('glGetLightfv');
15326   glGetLightiv := dglGetProcAddress('glGetLightiv');
15327   glGetMapdv := dglGetProcAddress('glGetMapdv');
15328   glGetMapfv := dglGetProcAddress('glGetMapfv');
15329   glGetMapiv := dglGetProcAddress('glGetMapiv');
15330   glGetMaterialfv := dglGetProcAddress('glGetMaterialfv');
15331   glGetMaterialiv := dglGetProcAddress('glGetMaterialiv');
15332   glGetPixelMapfv := dglGetProcAddress('glGetPixelMapfv');
15333   glGetPixelMapuiv := dglGetProcAddress('glGetPixelMapuiv');
15334   glGetPixelMapusv := dglGetProcAddress('glGetPixelMapusv');
15335   glGetPolygonStipple := dglGetProcAddress('glGetPolygonStipple');
15336   glGetTexEnvfv := dglGetProcAddress('glGetTexEnvfv');
15337   glGetTexEnviv := dglGetProcAddress('glGetTexEnviv');
15338   glGetTexGendv := dglGetProcAddress('glGetTexGendv');
15339   glGetTexGenfv := dglGetProcAddress('glGetTexGenfv');
15340   glGetTexGeniv := dglGetProcAddress('glGetTexGeniv');
15341   glIndexMask := dglGetProcAddress('glIndexMask');
15342   glIndexPointer := dglGetProcAddress('glIndexPointer');
15343   glIndexd := dglGetProcAddress('glIndexd');
15344   glIndexdv := dglGetProcAddress('glIndexdv');
15345   glIndexf := dglGetProcAddress('glIndexf');
15346   glIndexfv := dglGetProcAddress('glIndexfv');
15347   glIndexi := dglGetProcAddress('glIndexi');
15348   glIndexiv := dglGetProcAddress('glIndexiv');
15349   glIndexs := dglGetProcAddress('glIndexs');
15350   glIndexsv := dglGetProcAddress('glIndexsv');
15351   glIndexub := dglGetProcAddress('glIndexub');
15352   glIndexubv := dglGetProcAddress('glIndexubv');
15353   glInitNames := dglGetProcAddress('glInitNames');
15354   glInterleavedArrays := dglGetProcAddress('glInterleavedArrays');
15355   glIsList := dglGetProcAddress('glIsList');
15356   glIsTexture := dglGetProcAddress('glIsTexture');
15357   glLightModelf := dglGetProcAddress('glLightModelf');
15358   glLightModelfv := dglGetProcAddress('glLightModelfv');
15359   glLightModeli := dglGetProcAddress('glLightModeli');
15360   glLightModeliv := dglGetProcAddress('glLightModeliv');
15361   glLightf := dglGetProcAddress('glLightf');
15362   glLightfv := dglGetProcAddress('glLightfv');
15363   glLighti := dglGetProcAddress('glLighti');
15364   glLightiv := dglGetProcAddress('glLightiv');
15365   glLineStipple := dglGetProcAddress('glLineStipple');
15366   glListBase := dglGetProcAddress('glListBase');
15367   glLoadIdentity := dglGetProcAddress('glLoadIdentity');
15368   glLoadMatrixd := dglGetProcAddress('glLoadMatrixd');
15369   glLoadMatrixf := dglGetProcAddress('glLoadMatrixf');
15370   glLoadName := dglGetProcAddress('glLoadName');
15371   glMap1d := dglGetProcAddress('glMap1d');
15372   glMap1f := dglGetProcAddress('glMap1f');
15373   glMap2d := dglGetProcAddress('glMap2d');
15374   glMap2f := dglGetProcAddress('glMap2f');
15375   glMapGrid1d := dglGetProcAddress('glMapGrid1d');
15376   glMapGrid1f := dglGetProcAddress('glMapGrid1f');
15377   glMapGrid2d := dglGetProcAddress('glMapGrid2d');
15378   glMapGrid2f := dglGetProcAddress('glMapGrid2f');
15379   glMaterialf := dglGetProcAddress('glMaterialf');
15380   glMaterialfv := dglGetProcAddress('glMaterialfv');
15381   glMateriali := dglGetProcAddress('glMateriali');
15382   glMaterialiv := dglGetProcAddress('glMaterialiv');
15383   glMatrixMode := dglGetProcAddress('glMatrixMode');
15384   glMultMatrixd := dglGetProcAddress('glMultMatrixd');
15385   glMultMatrixf := dglGetProcAddress('glMultMatrixf');
15386   glNewList := dglGetProcAddress('glNewList');
15387   glNormal3b := dglGetProcAddress('glNormal3b');
15388   glNormal3bv := dglGetProcAddress('glNormal3bv');
15389   glNormal3d := dglGetProcAddress('glNormal3d');
15390   glNormal3dv := dglGetProcAddress('glNormal3dv');
15391   glNormal3f := dglGetProcAddress('glNormal3f');
15392   glNormal3fv := dglGetProcAddress('glNormal3fv');
15393   glNormal3i := dglGetProcAddress('glNormal3i');
15394   glNormal3iv := dglGetProcAddress('glNormal3iv');
15395   glNormal3s := dglGetProcAddress('glNormal3s');
15396   glNormal3sv := dglGetProcAddress('glNormal3sv');
15397   glNormalPointer := dglGetProcAddress('glNormalPointer');
15398   glOrtho := dglGetProcAddress('glOrtho');
15399   glPassThrough := dglGetProcAddress('glPassThrough');
15400   glPixelMapfv := dglGetProcAddress('glPixelMapfv');
15401   glPixelMapuiv := dglGetProcAddress('glPixelMapuiv');
15402   glPixelMapusv := dglGetProcAddress('glPixelMapusv');
15403   glPixelTransferf := dglGetProcAddress('glPixelTransferf');
15404   glPixelTransferi := dglGetProcAddress('glPixelTransferi');
15405   glPixelZoom := dglGetProcAddress('glPixelZoom');
15406   glPolygonStipple := dglGetProcAddress('glPolygonStipple');
15407   glPopAttrib := dglGetProcAddress('glPopAttrib');
15408   glPopClientAttrib := dglGetProcAddress('glPopClientAttrib');
15409   glPopMatrix := dglGetProcAddress('glPopMatrix');
15410   glPopName := dglGetProcAddress('glPopName');
15411   glPrioritizeTextures := dglGetProcAddress('glPrioritizeTextures');
15412   glPushAttrib := dglGetProcAddress('glPushAttrib');
15413   glPushClientAttrib := dglGetProcAddress('glPushClientAttrib');
15414   glPushMatrix := dglGetProcAddress('glPushMatrix');
15415   glPushName := dglGetProcAddress('glPushName');
15416   glRasterPos2d := dglGetProcAddress('glRasterPos2d');
15417   glRasterPos2dv := dglGetProcAddress('glRasterPos2dv');
15418   glRasterPos2f := dglGetProcAddress('glRasterPos2f');
15419   glRasterPos2fv := dglGetProcAddress('glRasterPos2fv');
15420   glRasterPos2i := dglGetProcAddress('glRasterPos2i');
15421   glRasterPos2iv := dglGetProcAddress('glRasterPos2iv');
15422   glRasterPos2s := dglGetProcAddress('glRasterPos2s');
15423   glRasterPos2sv := dglGetProcAddress('glRasterPos2sv');
15424   glRasterPos3d := dglGetProcAddress('glRasterPos3d');
15425   glRasterPos3dv := dglGetProcAddress('glRasterPos3dv');
15426   glRasterPos3f := dglGetProcAddress('glRasterPos3f');
15427   glRasterPos3fv := dglGetProcAddress('glRasterPos3fv');
15428   glRasterPos3i := dglGetProcAddress('glRasterPos3i');
15429   glRasterPos3iv := dglGetProcAddress('glRasterPos3iv');
15430   glRasterPos3s := dglGetProcAddress('glRasterPos3s');
15431   glRasterPos3sv := dglGetProcAddress('glRasterPos3sv');
15432   glRasterPos4d := dglGetProcAddress('glRasterPos4d');
15433   glRasterPos4dv := dglGetProcAddress('glRasterPos4dv');
15434   glRasterPos4f := dglGetProcAddress('glRasterPos4f');
15435   glRasterPos4fv := dglGetProcAddress('glRasterPos4fv');
15436   glRasterPos4i := dglGetProcAddress('glRasterPos4i');
15437   glRasterPos4iv := dglGetProcAddress('glRasterPos4iv');
15438   glRasterPos4s := dglGetProcAddress('glRasterPos4s');
15439   glRasterPos4sv := dglGetProcAddress('glRasterPos4sv');
15440   glRectd := dglGetProcAddress('glRectd');
15441   glRectdv := dglGetProcAddress('glRectdv');
15442   glRectf := dglGetProcAddress('glRectf');
15443   glRectfv := dglGetProcAddress('glRectfv');
15444   glRecti := dglGetProcAddress('glRecti');
15445   glRectiv := dglGetProcAddress('glRectiv');
15446   glRects := dglGetProcAddress('glRects');
15447   glRectsv := dglGetProcAddress('glRectsv');
15448   glRenderMode := dglGetProcAddress('glRenderMode');
15449   glRotated := dglGetProcAddress('glRotated');
15450   glRotatef := dglGetProcAddress('glRotatef');
15451   glScaled := dglGetProcAddress('glScaled');
15452   glScalef := dglGetProcAddress('glScalef');
15453   glSelectBuffer := dglGetProcAddress('glSelectBuffer');
15454   glShadeModel := dglGetProcAddress('glShadeModel');
15455   glTexCoord1d := dglGetProcAddress('glTexCoord1d');
15456   glTexCoord1dv := dglGetProcAddress('glTexCoord1dv');
15457   glTexCoord1f := dglGetProcAddress('glTexCoord1f');
15458   glTexCoord1fv := dglGetProcAddress('glTexCoord1fv');
15459   glTexCoord1i := dglGetProcAddress('glTexCoord1i');
15460   glTexCoord1iv := dglGetProcAddress('glTexCoord1iv');
15461   glTexCoord1s := dglGetProcAddress('glTexCoord1s');
15462   glTexCoord1sv := dglGetProcAddress('glTexCoord1sv');
15463   glTexCoord2d := dglGetProcAddress('glTexCoord2d');
15464   glTexCoord2dv := dglGetProcAddress('glTexCoord2dv');
15465   glTexCoord2f := dglGetProcAddress('glTexCoord2f');
15466   glTexCoord2fv := dglGetProcAddress('glTexCoord2fv');
15467   glTexCoord2i := dglGetProcAddress('glTexCoord2i');
15468   glTexCoord2iv := dglGetProcAddress('glTexCoord2iv');
15469   glTexCoord2s := dglGetProcAddress('glTexCoord2s');
15470   glTexCoord2sv := dglGetProcAddress('glTexCoord2sv');
15471   glTexCoord3d := dglGetProcAddress('glTexCoord3d');
15472   glTexCoord3dv := dglGetProcAddress('glTexCoord3dv');
15473   glTexCoord3f := dglGetProcAddress('glTexCoord3f');
15474   glTexCoord3fv := dglGetProcAddress('glTexCoord3fv');
15475   glTexCoord3i := dglGetProcAddress('glTexCoord3i');
15476   glTexCoord3iv := dglGetProcAddress('glTexCoord3iv');
15477   glTexCoord3s := dglGetProcAddress('glTexCoord3s');
15478   glTexCoord3sv := dglGetProcAddress('glTexCoord3sv');
15479   glTexCoord4d := dglGetProcAddress('glTexCoord4d');
15480   glTexCoord4dv := dglGetProcAddress('glTexCoord4dv');
15481   glTexCoord4f := dglGetProcAddress('glTexCoord4f');
15482   glTexCoord4fv := dglGetProcAddress('glTexCoord4fv');
15483   glTexCoord4i := dglGetProcAddress('glTexCoord4i');
15484   glTexCoord4iv := dglGetProcAddress('glTexCoord4iv');
15485   glTexCoord4s := dglGetProcAddress('glTexCoord4s');
15486   glTexCoord4sv := dglGetProcAddress('glTexCoord4sv');
15487   glTexCoordPointer := dglGetProcAddress('glTexCoordPointer');
15488   glTexEnvf := dglGetProcAddress('glTexEnvf');
15489   glTexEnvfv := dglGetProcAddress('glTexEnvfv');
15490   glTexEnvi := dglGetProcAddress('glTexEnvi');
15491   glTexEnviv := dglGetProcAddress('glTexEnviv');
15492   glTexGend := dglGetProcAddress('glTexGend');
15493   glTexGendv := dglGetProcAddress('glTexGendv');
15494   glTexGenf := dglGetProcAddress('glTexGenf');
15495   glTexGenfv := dglGetProcAddress('glTexGenfv');
15496   glTexGeni := dglGetProcAddress('glTexGeni');
15497   glTexGeniv := dglGetProcAddress('glTexGeniv');
15498   glTranslated := dglGetProcAddress('glTranslated');
15499   glTranslatef := dglGetProcAddress('glTranslatef');
15500   glVertex2d := dglGetProcAddress('glVertex2d');
15501   glVertex2dv := dglGetProcAddress('glVertex2dv');
15502   glVertex2f := dglGetProcAddress('glVertex2f');
15503   glVertex2fv := dglGetProcAddress('glVertex2fv');
15504   glVertex2i := dglGetProcAddress('glVertex2i');
15505   glVertex2iv := dglGetProcAddress('glVertex2iv');
15506   glVertex2s := dglGetProcAddress('glVertex2s');
15507   glVertex2sv := dglGetProcAddress('glVertex2sv');
15508   glVertex3d := dglGetProcAddress('glVertex3d');
15509   glVertex3dv := dglGetProcAddress('glVertex3dv');
15510   glVertex3f := dglGetProcAddress('glVertex3f');
15511   glVertex3fv := dglGetProcAddress('glVertex3fv');
15512   glVertex3i := dglGetProcAddress('glVertex3i');
15513   glVertex3iv := dglGetProcAddress('glVertex3iv');
15514   glVertex3s := dglGetProcAddress('glVertex3s');
15515   glVertex3sv := dglGetProcAddress('glVertex3sv');
15516   glVertex4d := dglGetProcAddress('glVertex4d');
15517   glVertex4dv := dglGetProcAddress('glVertex4dv');
15518   glVertex4f := dglGetProcAddress('glVertex4f');
15519   glVertex4fv := dglGetProcAddress('glVertex4fv');
15520   glVertex4i := dglGetProcAddress('glVertex4i');
15521   glVertex4iv := dglGetProcAddress('glVertex4iv');
15522   glVertex4s := dglGetProcAddress('glVertex4s');
15523   glVertex4sv := dglGetProcAddress('glVertex4sv');
15524   glVertexPointer := dglGetProcAddress('glVertexPointer');
15525 {$endif}
15526
15527   // GL_VERSION_1_2
15528   glBlendColor := dglGetProcAddress('glBlendColor');
15529   glBlendEquation := dglGetProcAddress('glBlendEquation');
15530   glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
15531   glTexImage3D := dglGetProcAddress('glTexImage3D');
15532   glTexSubImage3D := dglGetProcAddress('glTexSubImage3D');
15533   glCopyTexSubImage3D := dglGetProcAddress('glCopyTexSubImage3D');
15534 {$ifdef DGL_DEPRECATED}
15535   glColorTable := dglGetProcAddress('glColorTable');
15536   glColorTableParameterfv := dglGetProcAddress('glColorTableParameterfv');
15537   glColorTableParameteriv := dglGetProcAddress('glColorTableParameteriv');
15538   glCopyColorTable := dglGetProcAddress('glCopyColorTable');
15539   glGetColorTable := dglGetProcAddress('glGetColorTable');
15540   glGetColorTableParameterfv := dglGetProcAddress('glGetColorTableParameterfv');
15541   glGetColorTableParameteriv := dglGetProcAddress('glGetColorTableParameteriv');
15542   glColorSubTable := dglGetProcAddress('glColorSubTable');
15543   glCopyColorSubTable := dglGetProcAddress('glCopyColorSubTable');
15544   glConvolutionFilter1D := dglGetProcAddress('glConvolutionFilter1D');
15545   glConvolutionFilter2D := dglGetProcAddress('glConvolutionFilter2D');
15546   glConvolutionParameterf := dglGetProcAddress('glConvolutionParameterf');
15547   glConvolutionParameterfv := dglGetProcAddress('glConvolutionParameterfv');
15548   glConvolutionParameteri := dglGetProcAddress('glConvolutionParameteri');
15549   glConvolutionParameteriv := dglGetProcAddress('glConvolutionParameteriv');
15550   glCopyConvolutionFilter1D := dglGetProcAddress('glCopyConvolutionFilter1D');
15551   glCopyConvolutionFilter2D := dglGetProcAddress('glCopyConvolutionFilter2D');
15552   glGetConvolutionFilter := dglGetProcAddress('glGetConvolutionFilter');
15553   glGetConvolutionParameterfv := dglGetProcAddress('glGetConvolutionParameterfv');
15554   glGetConvolutionParameteriv := dglGetProcAddress('glGetConvolutionParameteriv');
15555   glGetSeparableFilter := dglGetProcAddress('glGetSeparableFilter');
15556   glSeparableFilter2D := dglGetProcAddress('glSeparableFilter2D');
15557   glGetHistogram := dglGetProcAddress('glGetHistogram');
15558   glGetHistogramParameterfv := dglGetProcAddress('glGetHistogramParameterfv');
15559   glGetHistogramParameteriv := dglGetProcAddress('glGetHistogramParameteriv');
15560   glGetMinmax := dglGetProcAddress('glGetMinmax');
15561   glGetMinmaxParameterfv := dglGetProcAddress('glGetMinmaxParameterfv');
15562   glGetMinmaxParameteriv := dglGetProcAddress('glGetMinmaxParameteriv');
15563   glHistogram := dglGetProcAddress('glHistogram');
15564   glMinmax := dglGetProcAddress('glMinmax');
15565   glResetHistogram := dglGetProcAddress('glResetHistogram');
15566   glResetMinmax := dglGetProcAddress('glResetMinmax');
15567 {$endif}
15568
15569   // GL_VERSION_1_3
15570   glActiveTexture := dglGetProcAddress('glActiveTexture');
15571   glSampleCoverage := dglGetProcAddress('glSampleCoverage');
15572   glCompressedTexImage3D := dglGetProcAddress('glCompressedTexImage3D');
15573   glCompressedTexImage2D := dglGetProcAddress('glCompressedTexImage2D');
15574   glCompressedTexImage1D := dglGetProcAddress('glCompressedTexImage1D');
15575   glCompressedTexSubImage3D := dglGetProcAddress('glCompressedTexSubImage3D');
15576   glCompressedTexSubImage2D := dglGetProcAddress('glCompressedTexSubImage2D');
15577   glCompressedTexSubImage1D := dglGetProcAddress('glCompressedTexSubImage1D');
15578   glGetCompressedTexImage := dglGetProcAddress('glGetCompressedTexImage');
15579 {$ifdef DGL_DEPRECATED}
15580   glClientActiveTexture := dglGetProcAddress('glClientActiveTexture');
15581   glMultiTexCoord1d := dglGetProcAddress('glMultiTexCoord1d');
15582   glMultiTexCoord1dv := dglGetProcAddress('glMultiTexCoord1dv');
15583   glMultiTexCoord1f := dglGetProcAddress('glMultiTexCoord1f');
15584   glMultiTexCoord1fv := dglGetProcAddress('glMultiTexCoord1fv');
15585   glMultiTexCoord1i := dglGetProcAddress('glMultiTexCoord1i');
15586   glMultiTexCoord1iv := dglGetProcAddress('glMultiTexCoord1iv');
15587   glMultiTexCoord1s := dglGetProcAddress('glMultiTexCoord1s');
15588   glMultiTexCoord1sv := dglGetProcAddress('glMultiTexCoord1sv');
15589   glMultiTexCoord2d := dglGetProcAddress('glMultiTexCoord2d');
15590   glMultiTexCoord2dv := dglGetProcAddress('glMultiTexCoord2dv');
15591   glMultiTexCoord2f := dglGetProcAddress('glMultiTexCoord2f');
15592   glMultiTexCoord2fv := dglGetProcAddress('glMultiTexCoord2fv');
15593   glMultiTexCoord2i := dglGetProcAddress('glMultiTexCoord2i');
15594   glMultiTexCoord2iv := dglGetProcAddress('glMultiTexCoord2iv');
15595   glMultiTexCoord2s := dglGetProcAddress('glMultiTexCoord2s');
15596   glMultiTexCoord2sv := dglGetProcAddress('glMultiTexCoord2sv');
15597   glMultiTexCoord3d := dglGetProcAddress('glMultiTexCoord3d');
15598   glMultiTexCoord3dv := dglGetProcAddress('glMultiTexCoord3dv');
15599   glMultiTexCoord3f := dglGetProcAddress('glMultiTexCoord3f');
15600   glMultiTexCoord3fv := dglGetProcAddress('glMultiTexCoord3fv');
15601   glMultiTexCoord3i := dglGetProcAddress('glMultiTexCoord3i');
15602   glMultiTexCoord3iv := dglGetProcAddress('glMultiTexCoord3iv');
15603   glMultiTexCoord3s := dglGetProcAddress('glMultiTexCoord3s');
15604   glMultiTexCoord3sv := dglGetProcAddress('glMultiTexCoord3sv');
15605   glMultiTexCoord4d := dglGetProcAddress('glMultiTexCoord4d');
15606   glMultiTexCoord4dv := dglGetProcAddress('glMultiTexCoord4dv');
15607   glMultiTexCoord4f := dglGetProcAddress('glMultiTexCoord4f');
15608   glMultiTexCoord4fv := dglGetProcAddress('glMultiTexCoord4fv');
15609   glMultiTexCoord4i := dglGetProcAddress('glMultiTexCoord4i');
15610   glMultiTexCoord4iv := dglGetProcAddress('glMultiTexCoord4iv');
15611   glMultiTexCoord4s := dglGetProcAddress('glMultiTexCoord4s');
15612   glMultiTexCoord4sv := dglGetProcAddress('glMultiTexCoord4sv');
15613   glLoadTransposeMatrixf := dglGetProcAddress('glLoadTransposeMatrixf');
15614   glLoadTransposeMatrixd := dglGetProcAddress('glLoadTransposeMatrixd');
15615   glMultTransposeMatrixf := dglGetProcAddress('glMultTransposeMatrixf');
15616   glMultTransposeMatrixd := dglGetProcAddress('glMultTransposeMatrixd');
15617 {$endif}
15618
15619   // GL_VERSION_1_4
15620   glBlendFuncSeparate := dglGetProcAddress('glBlendFuncSeparate');
15621   glMultiDrawArrays := dglGetProcAddress('glMultiDrawArrays');
15622   glMultiDrawElements := dglGetProcAddress('glMultiDrawElements');
15623   glPointParameterf := dglGetProcAddress('glPointParameterf');
15624   glPointParameterfv := dglGetProcAddress('glPointParameterfv');
15625   glPointParameteri := dglGetProcAddress('glPointParameteri');
15626   glPointParameteriv := dglGetProcAddress('glPointParameteriv');
15627 {$ifdef DGL_DEPRECATED}
15628   glFogCoordf := dglGetProcAddress('glFogCoordf');
15629   glFogCoordfv := dglGetProcAddress('glFogCoordfv');
15630   glFogCoordd := dglGetProcAddress('glFogCoordd');
15631   glFogCoorddv := dglGetProcAddress('glFogCoorddv');
15632   glFogCoordPointer := dglGetProcAddress('glFogCoordPointer');
15633   glSecondaryColor3b := dglGetProcAddress('glSecondaryColor3b');
15634   glSecondaryColor3bv := dglGetProcAddress('glSecondaryColor3bv');
15635   glSecondaryColor3d := dglGetProcAddress('glSecondaryColor3d');
15636   glSecondaryColor3dv := dglGetProcAddress('glSecondaryColor3dv');
15637   glSecondaryColor3f := dglGetProcAddress('glSecondaryColor3f');
15638   glSecondaryColor3fv := dglGetProcAddress('glSecondaryColor3fv');
15639   glSecondaryColor3i := dglGetProcAddress('glSecondaryColor3i');
15640   glSecondaryColor3iv := dglGetProcAddress('glSecondaryColor3iv');
15641   glSecondaryColor3s := dglGetProcAddress('glSecondaryColor3s');
15642   glSecondaryColor3sv := dglGetProcAddress('glSecondaryColor3sv');
15643   glSecondaryColor3ub := dglGetProcAddress('glSecondaryColor3ub');
15644   glSecondaryColor3ubv := dglGetProcAddress('glSecondaryColor3ubv');
15645   glSecondaryColor3ui := dglGetProcAddress('glSecondaryColor3ui');
15646   glSecondaryColor3uiv := dglGetProcAddress('glSecondaryColor3uiv');
15647   glSecondaryColor3us := dglGetProcAddress('glSecondaryColor3us');
15648   glSecondaryColor3usv := dglGetProcAddress('glSecondaryColor3usv');
15649   glSecondaryColorPointer := dglGetProcAddress('glSecondaryColorPointer');
15650   glWindowPos2d := dglGetProcAddress('glWindowPos2d');
15651   glWindowPos2dv := dglGetProcAddress('glWindowPos2dv');
15652   glWindowPos2f := dglGetProcAddress('glWindowPos2f');
15653   glWindowPos2fv := dglGetProcAddress('glWindowPos2fv');
15654   glWindowPos2i := dglGetProcAddress('glWindowPos2i');
15655   glWindowPos2iv := dglGetProcAddress('glWindowPos2iv');
15656   glWindowPos2s := dglGetProcAddress('glWindowPos2s');
15657   glWindowPos2sv := dglGetProcAddress('glWindowPos2sv');
15658   glWindowPos3d := dglGetProcAddress('glWindowPos3d');
15659   glWindowPos3dv := dglGetProcAddress('glWindowPos3dv');
15660   glWindowPos3f := dglGetProcAddress('glWindowPos3f');
15661   glWindowPos3fv := dglGetProcAddress('glWindowPos3fv');
15662   glWindowPos3i := dglGetProcAddress('glWindowPos3i');
15663   glWindowPos3iv := dglGetProcAddress('glWindowPos3iv');
15664   glWindowPos3s := dglGetProcAddress('glWindowPos3s');
15665   glWindowPos3sv := dglGetProcAddress('glWindowPos3sv');
15666 {$endif}
15667
15668   // GL_VERSION_1_5
15669   glGenQueries := dglGetProcAddress('glGenQueries');
15670   glDeleteQueries := dglGetProcAddress('glDeleteQueries');
15671   glIsQuery := dglGetProcAddress('glIsQuery');
15672   glBeginQuery := dglGetProcAddress('glBeginQuery');
15673   glEndQuery := dglGetProcAddress('glEndQuery');
15674   glGetQueryiv := dglGetProcAddress('glGetQueryiv');
15675   glGetQueryObjectiv := dglGetProcAddress('glGetQueryObjectiv');
15676   glGetQueryObjectuiv := dglGetProcAddress('glGetQueryObjectuiv');
15677   glBindBuffer := dglGetProcAddress('glBindBuffer');
15678   glDeleteBuffers := dglGetProcAddress('glDeleteBuffers');
15679   glGenBuffers := dglGetProcAddress('glGenBuffers');
15680   glIsBuffer := dglGetProcAddress('glIsBuffer');
15681   glBufferData := dglGetProcAddress('glBufferData');
15682   glBufferSubData := dglGetProcAddress('glBufferSubData');
15683   glGetBufferSubData := dglGetProcAddress('glGetBufferSubData');
15684   glMapBuffer := dglGetProcAddress('glMapBuffer');
15685   glUnmapBuffer := dglGetProcAddress('glUnmapBuffer');
15686   glGetBufferParameteriv := dglGetProcAddress('glGetBufferParameteriv');
15687   glGetBufferPointerv := dglGetProcAddress('glGetBufferPointerv');
15688
15689   // GL_VERSION_2_0
15690   glBlendEquationSeparate := dglGetProcAddress('glBlendEquationSeparate');
15691   glDrawBuffers := dglGetProcAddress('glDrawBuffers');
15692   glStencilOpSeparate := dglGetProcAddress('glStencilOpSeparate');
15693   glStencilFuncSeparate := dglGetProcAddress('glStencilFuncSeparate');
15694   glStencilMaskSeparate := dglGetProcAddress('glStencilMaskSeparate');
15695   glAttachShader := dglGetProcAddress('glAttachShader');
15696   glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
15697   glCompileShader := dglGetProcAddress('glCompileShader');
15698   glCreateProgram := dglGetProcAddress('glCreateProgram');
15699   glCreateShader := dglGetProcAddress('glCreateShader');
15700   glDeleteProgram := dglGetProcAddress('glDeleteProgram');
15701   glDeleteShader := dglGetProcAddress('glDeleteShader');
15702   glDetachShader := dglGetProcAddress('glDetachShader');
15703   glDisableVertexAttribArray := dglGetProcAddress('glDisableVertexAttribArray');
15704   glEnableVertexAttribArray := dglGetProcAddress('glEnableVertexAttribArray');
15705   glGetActiveAttrib := dglGetProcAddress('glGetActiveAttrib');
15706   glGetActiveUniform := dglGetProcAddress('glGetActiveUniform');
15707   glGetAttachedShaders := dglGetProcAddress('glGetAttachedShaders');
15708   glGetAttribLocation := dglGetProcAddress('glGetAttribLocation');
15709   glGetProgramiv := dglGetProcAddress('glGetProgramiv');
15710   glGetProgramInfoLog := dglGetProcAddress('glGetProgramInfoLog');
15711   glGetShaderiv := dglGetProcAddress('glGetShaderiv');
15712   glGetShaderInfoLog := dglGetProcAddress('glGetShaderInfoLog');
15713   glGetShaderSource := dglGetProcAddress('glGetShaderSource');
15714   glGetUniformLocation := dglGetProcAddress('glGetUniformLocation');
15715   glGetUniformfv := dglGetProcAddress('glGetUniformfv');
15716   glGetUniformiv := dglGetProcAddress('glGetUniformiv');
15717   glGetVertexAttribfv := dglGetProcAddress('glGetVertexAttribfv');
15718   glGetVertexAttribiv := dglGetProcAddress('glGetVertexAttribiv');
15719   glGetVertexAttribPointerv := dglGetProcAddress('glGetVertexAttribPointerv');
15720   glIsProgram := dglGetProcAddress('glIsProgram');
15721   glIsShader := dglGetProcAddress('glIsShader');
15722   glLinkProgram := dglGetProcAddress('glLinkProgram');
15723   glShaderSource := dglGetProcAddress('glShaderSource');
15724   glUseProgram := dglGetProcAddress('glUseProgram');
15725   glUniform1f := dglGetProcAddress('glUniform1f');
15726   glUniform2f := dglGetProcAddress('glUniform2f');
15727   glUniform3f := dglGetProcAddress('glUniform3f');
15728   glUniform4f := dglGetProcAddress('glUniform4f');
15729   glUniform1i := dglGetProcAddress('glUniform1i');
15730   glUniform2i := dglGetProcAddress('glUniform2i');
15731   glUniform3i := dglGetProcAddress('glUniform3i');
15732   glUniform4i := dglGetProcAddress('glUniform4i');
15733   glUniform1fv := dglGetProcAddress('glUniform1fv');
15734   glUniform2fv := dglGetProcAddress('glUniform2fv');
15735   glUniform3fv := dglGetProcAddress('glUniform3fv');
15736   glUniform4fv := dglGetProcAddress('glUniform4fv');
15737   glUniform1iv := dglGetProcAddress('glUniform1iv');
15738   glUniform2iv := dglGetProcAddress('glUniform2iv');
15739   glUniform3iv := dglGetProcAddress('glUniform3iv');
15740   glUniform4iv := dglGetProcAddress('glUniform4iv');
15741   glUniformMatrix2fv := dglGetProcAddress('glUniformMatrix2fv');
15742   glUniformMatrix3fv := dglGetProcAddress('glUniformMatrix3fv');
15743   glUniformMatrix4fv := dglGetProcAddress('glUniformMatrix4fv');
15744   glValidateProgram := dglGetProcAddress('glValidateProgram');
15745   glVertexAttrib1d := dglGetProcAddress('glVertexAttrib1d');
15746   glVertexAttrib1dv := dglGetProcAddress('glVertexAttrib1dv');
15747   glVertexAttrib1f := dglGetProcAddress('glVertexAttrib1f');
15748   glVertexAttrib1fv := dglGetProcAddress('glVertexAttrib1fv');
15749   glVertexAttrib1s := dglGetProcAddress('glVertexAttrib1s');
15750   glVertexAttrib1sv := dglGetProcAddress('glVertexAttrib1sv');
15751   glVertexAttrib2d := dglGetProcAddress('glVertexAttrib2d');
15752   glVertexAttrib2dv := dglGetProcAddress('glVertexAttrib2dv');
15753   glVertexAttrib2f := dglGetProcAddress('glVertexAttrib2f');
15754   glVertexAttrib2fv := dglGetProcAddress('glVertexAttrib2fv');
15755   glVertexAttrib2s := dglGetProcAddress('glVertexAttrib2s');
15756   glVertexAttrib2sv := dglGetProcAddress('glVertexAttrib2sv');
15757   glVertexAttrib3d := dglGetProcAddress('glVertexAttrib3d');
15758   glVertexAttrib3dv := dglGetProcAddress('glVertexAttrib3dv');
15759   glVertexAttrib3f := dglGetProcAddress('glVertexAttrib3f');
15760   glVertexAttrib3fv := dglGetProcAddress('glVertexAttrib3fv');
15761   glVertexAttrib3s := dglGetProcAddress('glVertexAttrib3s');
15762   glVertexAttrib3sv := dglGetProcAddress('glVertexAttrib3sv');
15763   glVertexAttrib4Nbv := dglGetProcAddress('glVertexAttrib4Nbv');
15764   glVertexAttrib4Niv := dglGetProcAddress('glVertexAttrib4Niv');
15765   glVertexAttrib4Nsv := dglGetProcAddress('glVertexAttrib4Nsv');
15766   glVertexAttrib4Nub := dglGetProcAddress('glVertexAttrib4Nub');
15767   glVertexAttrib4Nubv := dglGetProcAddress('glVertexAttrib4Nubv');
15768   glVertexAttrib4Nuiv := dglGetProcAddress('glVertexAttrib4Nuiv');
15769   glVertexAttrib4Nusv := dglGetProcAddress('glVertexAttrib4Nusv');
15770   glVertexAttrib4bv := dglGetProcAddress('glVertexAttrib4bv');
15771   glVertexAttrib4d := dglGetProcAddress('glVertexAttrib4d');
15772   glVertexAttrib4dv := dglGetProcAddress('glVertexAttrib4dv');
15773   glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
15774   glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
15775   glVertexAttrib4iv := dglGetProcAddress('glVertexAttrib4iv');
15776   glVertexAttrib4s := dglGetProcAddress('glVertexAttrib4s');
15777   glVertexAttrib4sv := dglGetProcAddress('glVertexAttrib4sv');
15778   glVertexAttrib4ubv := dglGetProcAddress('glVertexAttrib4ubv');
15779   glVertexAttrib4uiv := dglGetProcAddress('glVertexAttrib4uiv');
15780   glVertexAttrib4usv := dglGetProcAddress('glVertexAttrib4usv');
15781   glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
15782
15783   // GL_VERSION_2_1
15784   glUniformMatrix2x3fv := dglGetProcAddress('glUniformMatrix2x3fv');
15785   glUniformMatrix3x2fv := dglGetProcAddress('glUniformMatrix3x2fv');
15786   glUniformMatrix2x4fv := dglGetProcAddress('glUniformMatrix2x4fv');
15787   glUniformMatrix4x2fv := dglGetProcAddress('glUniformMatrix4x2fv');
15788   glUniformMatrix3x4fv := dglGetProcAddress('glUniformMatrix3x4fv');
15789   glUniformMatrix4x3fv := dglGetProcAddress('glUniformMatrix4x3fv');
15790
15791   // GL_VERSION_3_0
15792   { OpenGL 3.0 also reuses entry points from these extensions: }
15793   Read_GL_ARB_framebuffer_object;
15794   Read_GL_ARB_map_buffer_range;
15795   Read_GL_ARB_vertex_array_object;
15796
15797   glColorMaski := dglGetProcAddress('glColorMaski');
15798   glGetBooleani_v := dglGetProcAddress('glGetBooleani_v');
15799   glGetIntegeri_v := dglGetProcAddress('glGetIntegeri_v');
15800   glEnablei := dglGetProcAddress('glEnablei');
15801   glDisablei := dglGetProcAddress('glDisablei');
15802   glIsEnabledi := dglGetProcAddress('glIsEnabledi');
15803   glBeginTransformFeedback := dglGetProcAddress('glBeginTransformFeedback');
15804   glEndTransformFeedback := dglGetProcAddress('glEndTransformFeedback');
15805   glBindBufferRange := dglGetProcAddress('glBindBufferRange');
15806   glBindBufferBase := dglGetProcAddress('glBindBufferBase');
15807   glTransformFeedbackVaryings := dglGetProcAddress('glTransformFeedbackVaryings');
15808   glGetTransformFeedbackVarying := dglGetProcAddress('glGetTransformFeedbackVarying');
15809   glClampColor := dglGetProcAddress('glClampColor');
15810   glBeginConditionalRender := dglGetProcAddress('glBeginConditionalRender');
15811   glEndConditionalRender := dglGetProcAddress('glEndConditionalRender');
15812   glVertexAttribI1i := dglGetProcAddress('glVertexAttribI1i');
15813   glVertexAttribI2i := dglGetProcAddress('glVertexAttribI2i');
15814   glVertexAttribI3i := dglGetProcAddress('glVertexAttribI3i');
15815   glVertexAttribI4i := dglGetProcAddress('glVertexAttribI4i');
15816   glVertexAttribI1ui := dglGetProcAddress('glVertexAttribI1ui');
15817   glVertexAttribI2ui := dglGetProcAddress('glVertexAttribI2ui');
15818   glVertexAttribI3ui := dglGetProcAddress('glVertexAttribI3ui');
15819   glVertexAttribI4ui := dglGetProcAddress('glVertexAttribI4ui');
15820   glVertexAttribI1iv := dglGetProcAddress('glVertexAttribI1iv');
15821   glVertexAttribI2iv := dglGetProcAddress('glVertexAttribI2iv');
15822   glVertexAttribI3iv := dglGetProcAddress('glVertexAttribI3iv');
15823   glVertexAttribI4iv := dglGetProcAddress('glVertexAttribI4iv');
15824   glVertexAttribI1uiv := dglGetProcAddress('glVertexAttribI1uiv');
15825   glVertexAttribI2uiv := dglGetProcAddress('glVertexAttribI2uiv');
15826   glVertexAttribI3uiv := dglGetProcAddress('glVertexAttribI3uiv');
15827   glVertexAttribI4uiv := dglGetProcAddress('glVertexAttribI4uiv');
15828   glVertexAttribI4bv := dglGetProcAddress('glVertexAttribI4bv');
15829   glVertexAttribI4sv := dglGetProcAddress('glVertexAttribI4sv');
15830   glVertexAttribI4ubv := dglGetProcAddress('glVertexAttribI4ubv');
15831   glVertexAttribI4usv := dglGetProcAddress('glVertexAttribI4usv');
15832   glVertexAttribIPointer := dglGetProcAddress('glVertexAttribIPointer');
15833   glGetVertexAttribIiv := dglGetProcAddress('glGetVertexAttribIiv');
15834   glGetVertexAttribIuiv := dglGetProcAddress('glGetVertexAttribIuiv');
15835   glGetUniformuiv := dglGetProcAddress('glGetUniformuiv');
15836   glBindFragDataLocation := dglGetProcAddress('glBindFragDataLocation');
15837   glGetFragDataLocation := dglGetProcAddress('glGetFragDataLocation');
15838   glUniform1ui := dglGetProcAddress('glUniform1ui');
15839   glUniform2ui := dglGetProcAddress('glUniform2ui');
15840   glUniform3ui := dglGetProcAddress('glUniform3ui');
15841   glUniform4ui := dglGetProcAddress('glUniform4ui');
15842   glUniform1uiv := dglGetProcAddress('glUniform1uiv');
15843   glUniform2uiv := dglGetProcAddress('glUniform2uiv');
15844   glUniform3uiv := dglGetProcAddress('glUniform3uiv');
15845   glUniform4uiv := dglGetProcAddress('glUniform4uiv');
15846   glTexParameterIiv := dglGetProcAddress('glTexParameterIiv');
15847   glTexParameterIuiv := dglGetProcAddress('glTexParameterIuiv');
15848   glGetTexParameterIiv := dglGetProcAddress('glGetTexParameterIiv');
15849   glGetTexParameterIuiv := dglGetProcAddress('glGetTexParameterIuiv');
15850   glClearBufferiv := dglGetProcAddress('glClearBufferiv');
15851   glClearBufferuiv := dglGetProcAddress('glClearBufferuiv');
15852   glClearBufferfv := dglGetProcAddress('glClearBufferfv');
15853   glClearBufferfi := dglGetProcAddress('glClearBufferfi');
15854   glGetStringi := dglGetProcAddress('glGetStringi');
15855
15856   // GL_VERSION_2_1
15857   glEnableVertexArrayEXT := dglGetProcAddress('glEnableVertexArrayEXT');
15858   glEnableVertexArrayAttribEXT := dglGetProcAddress('glEnableVertexArrayAttribEXT');
15859   glVertexArrayVertexAttribOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribOffsetEXT');
15860
15861   // GL_VERSION_3_1
15862   { OpenGL 3.1 also reuses entry points from these extensions: }
15863   Read_GL_ARB_copy_buffer;
15864   Read_GL_ARB_uniform_buffer_object;
15865
15866   glDrawArraysInstanced := dglGetProcAddress('glDrawArraysInstanced');
15867   glDrawElementsInstanced := dglGetProcAddress('glDrawElementsInstanced');
15868   glTexBuffer := dglGetProcAddress('glTexBuffer');
15869   glPrimitiveRestartIndex := dglGetProcAddress('glPrimitiveRestartIndex');
15870
15871   // GL_VERSION_3_2
15872   { OpenGL 3.2 also reuses entry points from these extensions: }
15873   Read_GL_ARB_draw_elements_base_vertex;
15874   Read_GL_ARB_provoking_vertex;
15875   Read_GL_ARB_sync;
15876   Read_GL_ARB_texture_multisample;
15877
15878   glGetInteger64i_v := dglGetProcAddress('glGetInteger64i_v');
15879   glGetBufferParameteri64v := dglGetProcAddress('glGetBufferParameteri64v');
15880   glFramebufferTexture := dglGetProcAddress('glFramebufferTexture');
15881 //  glFramebufferTextureFace := dglGetProcAddress('glFramebufferTextureFace');
15882
15883   // GL_VERSION_3_3
15884   { OpenGL 3.3 also reuses entry points from these extensions: }
15885   Read_GL_ARB_blend_func_extended;
15886   Read_GL_ARB_sampler_objects;
15887   { ARB_explicit_attrib_location, but it has none }
15888   { ARB_occlusion_query2 (no entry points) }
15889   { ARB_shader_bit_encoding (no entry points) }
15890   { ARB_texture_rgb10_a2ui (no entry points) }
15891   { ARB_texture_swizzle (no entry points) }
15892   Read_GL_ARB_timer_query;
15893   Read_GL_ARB_vertex_type_2_10_10_10_rev;
15894
15895   glVertexAttribDivisor := dglGetProcAddress('glVertexAttribDivisor');
15896
15897   // GL_VERSION_4_0
15898   { OpenGL 4.0 also reuses entry points from these extensions: }
15899   { ARB_texture_query_lod (no entry points) }
15900   Read_GL_ARB_draw_indirect;
15901   { ARB_gpu_shader5 (no entry points) }
15902   Read_GL_ARB_gpu_shader_fp64;
15903   Read_GL_ARB_shader_subroutine;
15904   Read_GL_ARB_tessellation_shader;
15905   { ARB_texture_buffer_object_rgb32 (no entry points) }
15906   { ARB_texture_cube_map_array (no entry points) }
15907   { ARB_texture_gather (no entry points) }
15908   Read_GL_ARB_transform_feedback2;
15909   Read_GL_ARB_transform_feedback3;
15910
15911   glMinSampleShading := dglGetProcAddress('glMinSampleShading');
15912   glBlendEquationi := dglGetProcAddress('glBlendEquationi');
15913   glBlendEquationSeparatei := dglGetProcAddress('glBlendEquationSeparatei');
15914   glBlendFunci := dglGetProcAddress('glBlendFunci');
15915   glBlendFuncSeparatei := dglGetProcAddress('glBlendFuncSeparatei');
15916
15917   // GL_VERSION_4_1
15918   { OpenGL 4.1 also reuses entry points from these extensions: }
15919   Read_GL_ARB_ES2_compatibility;
15920   Read_GL_ARB_get_program_binary;
15921   Read_GL_ARB_separate_shader_objects;
15922   { ARB_shader_precision (no entry points) }
15923   Read_GL_ARB_vertex_attrib_64bit;
15924   Read_GL_ARB_viewport_array;
15925
15926   // GL_VERSION_4_2
15927   { OpenGL 4.2 reuses entry points from these extensions: }
15928   Read_GL_ARB_base_instance;
15929   //Read_GL_ARB_shading_language_420pack (no entry points)
15930   Read_GL_ARB_transform_feedback_instanced;
15931   //Read_GL_ARB_compressed_texture_pixel_storage (no entry points)
15932   //Read_GL_ARB_conservative_depth;
15933   Read_GL_ARB_internalformat_query;
15934   //Read_GL_ARB_map_buffer_alignment;
15935   Read_GL_ARB_shader_atomic_counters;
15936   Read_GL_ARB_shader_image_load_store;
15937   //Read_GL_ARB_shading_language_packing;
15938   Read_GL_ARB_texture_storage;
15939
15940   // GL_VERSION_4_3
15941   // OpenGL 4.3 reuses entry points from these extensions:
15942   // Read_GL_ARB_arrays_of_arrays (none, GLSL only) (no entry points)
15943   // Read_GL_ARB_fragment_layer_viewport (none, GLSL only) (no entry points)
15944   // Read_GL_ARB_shader_image_size (none, GLSL only) (no entry points)
15945   // Read_GL_ARB_ES3_compatibility (no entry points)
15946   Read_GL_ARB_clear_buffer_object;
15947   Read_GL_ARB_compute_shader;
15948   Read_GL_ARB_copy_image;
15949   Read_GL_KHR_debug;
15950   // Read_GL_ARB_explicit_uniform_location  (no entry points)
15951   Read_GL_ARB_framebuffer_no_attachments;
15952   Read_GL_ARB_internalformat_query2;
15953   Read_GL_ARB_invalidate_subdata;
15954   Read_GL_ARB_multi_draw_indirect;
15955   Read_GL_ARB_program_interface_query;
15956   // Read_GL_ARB_robust_buffer_access_behavior (none)  (no entry points)
15957   Read_GL_ARB_shader_storage_buffer_object;
15958   // Read_GL_ARB_stencil_texturing  (no entry points)
15959   Read_GL_ARB_texture_buffer_range;
15960   // Read_GL_ARB_texture_query_levels (none)  (no entry points)
15961   Read_GL_ARB_texture_storage_multisample;
15962   Read_GL_ARB_texture_view;
15963   Read_GL_ARB_vertex_attrib_binding;
15964
15965   //  Note (Due to Khronos' change in header convetions, no more single read_ functions) starting with GL 4.4
15966   Read_GL_4_4;
15967   Read_GL_4_5;
15968 end;
15969
15970 procedure Read_GL_3DFX_tbuffer;
15971 begin
15972   glTbufferMask3DFX := dglGetProcAddress('glTbufferMask3DFX');
15973 end;
15974
15975 procedure Read_GL_APPLE_element_array;
15976 begin
15977   glElementPointerAPPLE := dglGetProcAddress('glElementPointerAPPLE');
15978   glDrawElementArrayAPPLE := dglGetProcAddress('glDrawElementArrayAPPLE');
15979   glDrawRangeElementArrayAPPLE := dglGetProcAddress('glDrawRangeElementArrayAPPLE');
15980   glMultiDrawElementArrayAPPLE := dglGetProcAddress('glMultiDrawElementArrayAPPLE');
15981   glMultiDrawRangeElementArrayAPPLE := dglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
15982 end;
15983
15984 procedure Read_GL_APPLE_fence;
15985 begin
15986   glGenFencesAPPLE := dglGetProcAddress('glGenFencesAPPLE');
15987   glDeleteFencesAPPLE := dglGetProcAddress('glDeleteFencesAPPLE');
15988   glSetFenceAPPLE := dglGetProcAddress('glSetFenceAPPLE');
15989   glIsFenceAPPLE := dglGetProcAddress('glIsFenceAPPLE');
15990   glTestFenceAPPLE := dglGetProcAddress('glTestFenceAPPLE');
15991   glFinishFenceAPPLE := dglGetProcAddress('glFinishFenceAPPLE');
15992   glTestObjectAPPLE := dglGetProcAddress('glTestObjectAPPLE');
15993   glFinishObjectAPPLE := dglGetProcAddress('glFinishObjectAPPLE');
15994 end;
15995
15996 procedure Read_GL_APPLE_vertex_array_object;
15997 begin
15998   glBindVertexArrayAPPLE := dglGetProcAddress('glBindVertexArrayAPPLE');
15999   glDeleteVertexArraysAPPLE := dglGetProcAddress('glDeleteVertexArraysAPPLE');
16000   glGenVertexArraysAPPLE := dglGetProcAddress('glGenVertexArraysAPPLE');
16001   glIsVertexArrayAPPLE := dglGetProcAddress('glIsVertexArrayAPPLE');
16002 end;
16003
16004 procedure Read_GL_APPLE_vertex_array_range;
16005 begin
16006   glVertexArrayRangeAPPLE := dglGetProcAddress('glVertexArrayRangeAPPLE');
16007   glFlushVertexArrayRangeAPPLE := dglGetProcAddress('glFlushVertexArrayRangeAPPLE');
16008   glVertexArrayParameteriAPPLE := dglGetProcAddress('glVertexArrayParameteriAPPLE');
16009 end;
16010
16011 procedure Read_GL_APPLE_texture_range;
16012 begin
16013   glTextureRangeAPPLE := dglGetProcAddress('glTextureRangeAPPLE');
16014   glGetTexParameterPointervAPPLE := dglGetProcAddress('glGetTexParameterPointervAPPLE');
16015 end;
16016
16017 procedure Read_GL_APPLE_vertex_program_evaluators;
16018 begin
16019   glEnableVertexAttribAPPLE := dglGetProcAddress('glEnableVertexAttribAPPLE');
16020   glDisableVertexAttribAPPLE := dglGetProcAddress('glDisableVertexAttribAPPLE');
16021   glIsVertexAttribEnabledAPPLE := dglGetProcAddress('glIsVertexAttribEnabledAPPLE');
16022   glMapVertexAttrib1dAPPLE := dglGetProcAddress('glMapVertexAttrib1dAPPLE');
16023   glMapVertexAttrib1fAPPLE := dglGetProcAddress('glMapVertexAttrib1fAPPLE');
16024   glMapVertexAttrib2dAPPLE := dglGetProcAddress('glMapVertexAttrib2dAPPLE');
16025   glMapVertexAttrib2fAPPLE := dglGetProcAddress('glMapVertexAttrib2fAPPLE');
16026 end;
16027
16028 procedure Read_GL_APPLE_object_purgeable;
16029 begin
16030   glObjectPurgeableAPPLE := dglGetProcAddress('glObjectPurgeableAPPLE');
16031   glObjectUnpurgeableAPPLE := dglGetProcAddress('glObjectUnpurgeableAPPLE');
16032   glGetObjectParameterivAPPLE := dglGetProcAddress('glGetObjectParameterivAPPLE');
16033 end;
16034
16035 procedure Read_GL_ARB_matrix_palette;
16036 begin
16037   glCurrentPaletteMatrixARB := dglGetProcAddress('glCurrentPaletteMatrixARB');
16038   glMatrixIndexubvARB := dglGetProcAddress('glMatrixIndexubvARB');
16039   glMatrixIndexusvARB := dglGetProcAddress('glMatrixIndexusvARB');
16040   glMatrixIndexuivARB := dglGetProcAddress('glMatrixIndexuivARB');
16041   glMatrixIndexPointerARB := dglGetProcAddress('glMatrixIndexPointerARB');
16042 end;
16043
16044 procedure Read_GL_ARB_multisample;
16045 begin
16046   glSampleCoverageARB := dglGetProcAddress('glSampleCoverageARB');
16047 end;
16048
16049 procedure Read_GL_ARB_multitexture;
16050 begin
16051   glActiveTextureARB := dglGetProcAddress('glActiveTextureARB');
16052   glClientActiveTextureARB := dglGetProcAddress('glClientActiveTextureARB');
16053   glMultiTexCoord1dARB := dglGetProcAddress('glMultiTexCoord1dARB');
16054   glMultiTexCoord1dvARB := dglGetProcAddress('glMultiTexCoord1dvARB');
16055   glMultiTexCoord1fARB := dglGetProcAddress('glMultiTexCoord1fARB');
16056   glMultiTexCoord1fvARB := dglGetProcAddress('glMultiTexCoord1fvARB');
16057   glMultiTexCoord1iARB := dglGetProcAddress('glMultiTexCoord1iARB');
16058   glMultiTexCoord1ivARB := dglGetProcAddress('glMultiTexCoord1ivARB');
16059   glMultiTexCoord1sARB := dglGetProcAddress('glMultiTexCoord1sARB');
16060   glMultiTexCoord1svARB := dglGetProcAddress('glMultiTexCoord1svARB');
16061   glMultiTexCoord2dARB := dglGetProcAddress('glMultiTexCoord2dARB');
16062   glMultiTexCoord2dvARB := dglGetProcAddress('glMultiTexCoord2dvARB');
16063   glMultiTexCoord2fARB := dglGetProcAddress('glMultiTexCoord2fARB');
16064   glMultiTexCoord2fvARB := dglGetProcAddress('glMultiTexCoord2fvARB');
16065   glMultiTexCoord2iARB := dglGetProcAddress('glMultiTexCoord2iARB');
16066   glMultiTexCoord2ivARB := dglGetProcAddress('glMultiTexCoord2ivARB');
16067   glMultiTexCoord2sARB := dglGetProcAddress('glMultiTexCoord2sARB');
16068   glMultiTexCoord2svARB := dglGetProcAddress('glMultiTexCoord2svARB');
16069   glMultiTexCoord3dARB := dglGetProcAddress('glMultiTexCoord3dARB');
16070   glMultiTexCoord3dvARB := dglGetProcAddress('glMultiTexCoord3dvARB');
16071   glMultiTexCoord3fARB := dglGetProcAddress('glMultiTexCoord3fARB');
16072   glMultiTexCoord3fvARB := dglGetProcAddress('glMultiTexCoord3fvARB');
16073   glMultiTexCoord3iARB := dglGetProcAddress('glMultiTexCoord3iARB');
16074   glMultiTexCoord3ivARB := dglGetProcAddress('glMultiTexCoord3ivARB');
16075   glMultiTexCoord3sARB := dglGetProcAddress('glMultiTexCoord3sARB');
16076   glMultiTexCoord3svARB := dglGetProcAddress('glMultiTexCoord3svARB');
16077   glMultiTexCoord4dARB := dglGetProcAddress('glMultiTexCoord4dARB');
16078   glMultiTexCoord4dvARB := dglGetProcAddress('glMultiTexCoord4dvARB');
16079   glMultiTexCoord4fARB := dglGetProcAddress('glMultiTexCoord4fARB');
16080   glMultiTexCoord4fvARB := dglGetProcAddress('glMultiTexCoord4fvARB');
16081   glMultiTexCoord4iARB := dglGetProcAddress('glMultiTexCoord4iARB');
16082   glMultiTexCoord4ivARB := dglGetProcAddress('glMultiTexCoord4ivARB');
16083   glMultiTexCoord4sARB := dglGetProcAddress('glMultiTexCoord4sARB');
16084   glMultiTexCoord4svARB := dglGetProcAddress('glMultiTexCoord4svARB');
16085 end;
16086
16087 procedure Read_GL_ARB_point_parameters;
16088 begin
16089   glPointParameterfARB := dglGetProcAddress('glPointParameterfARB');
16090   glPointParameterfvARB := dglGetProcAddress('glPointParameterfvARB');
16091 end;
16092
16093 procedure Read_GL_ARB_texture_compression;
16094 begin
16095   glCompressedTexImage3DARB := dglGetProcAddress('glCompressedTexImage3DARB');
16096   glCompressedTexImage2DARB := dglGetProcAddress('glCompressedTexImage2DARB');
16097   glCompressedTexImage1DARB := dglGetProcAddress('glCompressedTexImage1DARB');
16098   glCompressedTexSubImage3DARB := dglGetProcAddress('glCompressedTexSubImage3DARB');
16099   glCompressedTexSubImage2DARB := dglGetProcAddress('glCompressedTexSubImage2DARB');
16100   glCompressedTexSubImage1DARB := dglGetProcAddress('glCompressedTexSubImage1DARB');
16101   glGetCompressedTexImageARB := dglGetProcAddress('glGetCompressedTexImageARB');
16102 end;
16103
16104 procedure Read_GL_ARB_transpose_matrix;
16105 begin
16106   glLoadTransposeMatrixfARB := dglGetProcAddress('glLoadTransposeMatrixfARB');
16107   glLoadTransposeMatrixdARB := dglGetProcAddress('glLoadTransposeMatrixdARB');
16108   glMultTransposeMatrixfARB := dglGetProcAddress('glMultTransposeMatrixfARB');
16109   glMultTransposeMatrixdARB := dglGetProcAddress('glMultTransposeMatrixdARB');
16110 end;
16111
16112 procedure Read_GL_ARB_vertex_blend;
16113 begin
16114   glWeightbvARB := dglGetProcAddress('glWeightbvARB');
16115   glWeightsvARB := dglGetProcAddress('glWeightsvARB');
16116   glWeightivARB := dglGetProcAddress('glWeightivARB');
16117   glWeightfvARB := dglGetProcAddress('glWeightfvARB');
16118   glWeightdvARB := dglGetProcAddress('glWeightdvARB');
16119   glWeightubvARB := dglGetProcAddress('glWeightubvARB');
16120   glWeightusvARB := dglGetProcAddress('glWeightusvARB');
16121   glWeightuivARB := dglGetProcAddress('glWeightuivARB');
16122   glWeightPointerARB := dglGetProcAddress('glWeightPointerARB');
16123   glVertexBlendARB := dglGetProcAddress('glVertexBlendARB');
16124 end;
16125
16126 procedure Read_GL_ARB_vertex_buffer_object;
16127 begin
16128   glBindBufferARB := dglGetProcAddress('glBindBufferARB');
16129   glDeleteBuffersARB := dglGetProcAddress('glDeleteBuffersARB');
16130   glGenBuffersARB := dglGetProcAddress('glGenBuffersARB');
16131   glIsBufferARB := dglGetProcAddress('glIsBufferARB');
16132   glBufferDataARB := dglGetProcAddress('glBufferDataARB');
16133   glBufferSubDataARB := dglGetProcAddress('glBufferSubDataARB');
16134   glGetBufferSubDataARB := dglGetProcAddress('glGetBufferSubDataARB');
16135   glMapBufferARB := dglGetProcAddress('glMapBufferARB');
16136   glUnmapBufferARB := dglGetProcAddress('glUnmapBufferARB');
16137   glGetBufferParameterivARB := dglGetProcAddress('glGetBufferParameterivARB');
16138   glGetBufferPointervARB := dglGetProcAddress('glGetBufferPointervARB');
16139 end;
16140
16141 procedure Read_GL_ARB_vertex_program;
16142 begin
16143   glVertexAttrib1dARB := dglGetProcAddress('glVertexAttrib1dARB');
16144   glVertexAttrib1dvARB := dglGetProcAddress('glVertexAttrib1dvARB');
16145   glVertexAttrib1fARB := dglGetProcAddress('glVertexAttrib1fARB');
16146   glVertexAttrib1fvARB := dglGetProcAddress('glVertexAttrib1fvARB');
16147   glVertexAttrib1sARB := dglGetProcAddress('glVertexAttrib1sARB');
16148   glVertexAttrib1svARB := dglGetProcAddress('glVertexAttrib1svARB');
16149   glVertexAttrib2dARB := dglGetProcAddress('glVertexAttrib2dARB');
16150   glVertexAttrib2dvARB := dglGetProcAddress('glVertexAttrib2dvARB');
16151   glVertexAttrib2fARB := dglGetProcAddress('glVertexAttrib2fARB');
16152   glVertexAttrib2fvARB := dglGetProcAddress('glVertexAttrib2fvARB');
16153   glVertexAttrib2sARB := dglGetProcAddress('glVertexAttrib2sARB');
16154   glVertexAttrib2svARB := dglGetProcAddress('glVertexAttrib2svARB');
16155   glVertexAttrib3dARB := dglGetProcAddress('glVertexAttrib3dARB');
16156   glVertexAttrib3dvARB := dglGetProcAddress('glVertexAttrib3dvARB');
16157   glVertexAttrib3fARB := dglGetProcAddress('glVertexAttrib3fARB');
16158   glVertexAttrib3fvARB := dglGetProcAddress('glVertexAttrib3fvARB');
16159   glVertexAttrib3sARB := dglGetProcAddress('glVertexAttrib3sARB');
16160   glVertexAttrib3svARB := dglGetProcAddress('glVertexAttrib3svARB');
16161   glVertexAttrib4NbvARB := dglGetProcAddress('glVertexAttrib4NbvARB');
16162   glVertexAttrib4NivARB := dglGetProcAddress('glVertexAttrib4NivARB');
16163   glVertexAttrib4NsvARB := dglGetProcAddress('glVertexAttrib4NsvARB');
16164   glVertexAttrib4NubARB := dglGetProcAddress('glVertexAttrib4NubARB');
16165   glVertexAttrib4NubvARB := dglGetProcAddress('glVertexAttrib4NubvARB');
16166   glVertexAttrib4NuivARB := dglGetProcAddress('glVertexAttrib4NuivARB');
16167   glVertexAttrib4NusvARB := dglGetProcAddress('glVertexAttrib4NusvARB');
16168   glVertexAttrib4bvARB := dglGetProcAddress('glVertexAttrib4bvARB');
16169   glVertexAttrib4dARB := dglGetProcAddress('glVertexAttrib4dARB');
16170   glVertexAttrib4dvARB := dglGetProcAddress('glVertexAttrib4dvARB');
16171   glVertexAttrib4fARB := dglGetProcAddress('glVertexAttrib4fARB');
16172   glVertexAttrib4fvARB := dglGetProcAddress('glVertexAttrib4fvARB');
16173   glVertexAttrib4ivARB := dglGetProcAddress('glVertexAttrib4ivARB');
16174   glVertexAttrib4sARB := dglGetProcAddress('glVertexAttrib4sARB');
16175   glVertexAttrib4svARB := dglGetProcAddress('glVertexAttrib4svARB');
16176   glVertexAttrib4ubvARB := dglGetProcAddress('glVertexAttrib4ubvARB');
16177   glVertexAttrib4uivARB := dglGetProcAddress('glVertexAttrib4uivARB');
16178   glVertexAttrib4usvARB := dglGetProcAddress('glVertexAttrib4usvARB');
16179   glVertexAttribPointerARB := dglGetProcAddress('glVertexAttribPointerARB');
16180   glEnableVertexAttribArrayARB := dglGetProcAddress('glEnableVertexAttribArrayARB');
16181   glDisableVertexAttribArrayARB := dglGetProcAddress('glDisableVertexAttribArrayARB');
16182   glProgramStringARB := dglGetProcAddress('glProgramStringARB');
16183   glBindProgramARB := dglGetProcAddress('glBindProgramARB');
16184   glDeleteProgramsARB := dglGetProcAddress('glDeleteProgramsARB');
16185   glGenProgramsARB := dglGetProcAddress('glGenProgramsARB');
16186   glProgramEnvParameter4dARB := dglGetProcAddress('glProgramEnvParameter4dARB');
16187   glProgramEnvParameter4dvARB := dglGetProcAddress('glProgramEnvParameter4dvARB');
16188   glProgramEnvParameter4fARB := dglGetProcAddress('glProgramEnvParameter4fARB');
16189   glProgramEnvParameter4fvARB := dglGetProcAddress('glProgramEnvParameter4fvARB');
16190   glProgramLocalParameter4dARB := dglGetProcAddress('glProgramLocalParameter4dARB');
16191   glProgramLocalParameter4dvARB := dglGetProcAddress('glProgramLocalParameter4dvARB');
16192   glProgramLocalParameter4fARB := dglGetProcAddress('glProgramLocalParameter4fARB');
16193   glProgramLocalParameter4fvARB := dglGetProcAddress('glProgramLocalParameter4fvARB');
16194   glGetProgramEnvParameterdvARB := dglGetProcAddress('glGetProgramEnvParameterdvARB');
16195   glGetProgramEnvParameterfvARB := dglGetProcAddress('glGetProgramEnvParameterfvARB');
16196   glGetProgramLocalParameterdvARB := dglGetProcAddress('glGetProgramLocalParameterdvARB');
16197   glGetProgramLocalParameterfvARB := dglGetProcAddress('glGetProgramLocalParameterfvARB');
16198   glGetProgramivARB := dglGetProcAddress('glGetProgramivARB');
16199   glGetProgramStringARB := dglGetProcAddress('glGetProgramStringARB');
16200   glGetVertexAttribdvARB := dglGetProcAddress('glGetVertexAttribdvARB');
16201   glGetVertexAttribfvARB := dglGetProcAddress('glGetVertexAttribfvARB');
16202   glGetVertexAttribivARB := dglGetProcAddress('glGetVertexAttribivARB');
16203   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16204   glIsProgramARB := dglGetProcAddress('glIsProgramARB');
16205 end;
16206
16207 procedure Read_GL_ARB_window_pos;
16208 begin
16209   glWindowPos2dARB := dglGetProcAddress('glWindowPos2dARB');
16210   glWindowPos2dvARB := dglGetProcAddress('glWindowPos2dvARB');
16211   glWindowPos2fARB := dglGetProcAddress('glWindowPos2fARB');
16212   glWindowPos2fvARB := dglGetProcAddress('glWindowPos2fvARB');
16213   glWindowPos2iARB := dglGetProcAddress('glWindowPos2iARB');
16214   glWindowPos2ivARB := dglGetProcAddress('glWindowPos2ivARB');
16215   glWindowPos2sARB := dglGetProcAddress('glWindowPos2sARB');
16216   glWindowPos2svARB := dglGetProcAddress('glWindowPos2svARB');
16217   glWindowPos3dARB := dglGetProcAddress('glWindowPos3dARB');
16218   glWindowPos3dvARB := dglGetProcAddress('glWindowPos3dvARB');
16219   glWindowPos3fARB := dglGetProcAddress('glWindowPos3fARB');
16220   glWindowPos3fvARB := dglGetProcAddress('glWindowPos3fvARB');
16221   glWindowPos3iARB := dglGetProcAddress('glWindowPos3iARB');
16222   glWindowPos3ivARB := dglGetProcAddress('glWindowPos3ivARB');
16223   glWindowPos3sARB := dglGetProcAddress('glWindowPos3sARB');
16224   glWindowPos3svARB := dglGetProcAddress('glWindowPos3svARB');
16225 end;
16226
16227 procedure Read_GL_ARB_draw_buffers;
16228 begin
16229   glDrawBuffersARB := dglGetProcAddress('glDrawBuffersARB');
16230 end;
16231
16232 procedure Read_GL_ARB_color_buffer_float;
16233 begin
16234   glClampColorARB := dglGetProcAddress('glClampColorARB');
16235 end;
16236
16237 procedure Read_GL_ARB_Shader_Objects;
16238 begin
16239   // GL_ARB_Shader_Objects
16240   glCreateShaderObjectARB := dglGetProcAddress('glCreateShaderObjectARB');
16241   glShaderSourceARB := dglGetProcAddress('glShaderSourceARB');
16242   glCompileShaderARB := dglGetProcAddress('glCompileShaderARB');
16243   glDeleteObjectARB := dglGetProcAddress('glDeleteObjectARB');
16244   glGetHandleARB := dglGetProcAddress('glGetHandleARB');
16245   glDetachObjectARB := dglGetProcAddress('glDetachObjectARB');
16246   glCreateProgramObjectARB := dglGetProcAddress('glCreateProgramObjectARB');
16247   glAttachObjectARB := dglGetProcAddress('glAttachObjectARB');
16248   glLinkProgramARB := dglGetProcAddress('glLinkProgramARB');
16249   glUseProgramObjectARB := dglGetProcAddress('glUseProgramObjectARB');
16250   glValidateProgramARB := dglGetProcAddress('glValidateProgramARB');
16251   glGetObjectParameterfvARB := dglGetProcAddress('glGetObjectParameterfvARB');
16252   glGetObjectParameterivARB := dglGetProcAddress('glGetObjectParameterivARB');
16253   glGetActiveUniformARB := dglGetProcAddress('glGetActiveUniformARB');
16254   glGetAttachedObjectsARB := dglGetProcAddress('glGetAttachedObjectsARB');
16255   glGetShaderSourceARB := dglGetProcAddress('glGetShaderSourceARB');
16256   glGetUniformfvARB := dglGetProcAddress('glGetUniformfvARB');
16257   glGetUniformivARB := dglGetProcAddress('glGetUniformivARB');
16258   glGetUniformLocationARB := dglGetProcAddress('glGetUniformLocationARB');
16259   glGetInfoLogARB := dglGetProcAddress('glGetInfoLogARB');
16260   glUniform1fARB := dglGetProcAddress('glUniform1fARB');
16261   glUniform2fARB := dglGetProcAddress('glUniform2fARB');
16262   glUniform3fARB := dglGetProcAddress('glUniform3fARB');
16263   glUniform4fARB := dglGetProcAddress('glUniform4fARB');
16264   glUniform1iARB := dglGetProcAddress('glUniform1iARB');
16265   glUniform2iARB := dglGetProcAddress('glUniform2iARB');
16266   glUniform3iARB := dglGetProcAddress('glUniform3iARB');
16267   glUniform4iARB := dglGetProcAddress('glUniform4iARB');
16268   glUniform1fvARB := dglGetProcAddress('glUniform1fvARB');
16269   glUniform2fvARB := dglGetProcAddress('glUniform2fvARB');
16270   glUniform3fvARB := dglGetProcAddress('glUniform3fvARB');
16271   glUniform4fvARB := dglGetProcAddress('glUniform4fvARB');
16272   glUniform1ivARB := dglGetProcAddress('glUniform1ivARB');
16273   glUniform2ivARB := dglGetProcAddress('glUniform2ivARB');
16274   glUniform3ivARB := dglGetProcAddress('glUniform3ivARB');
16275   glUniform4ivARB := dglGetProcAddress('glUniform4ivARB');
16276   glUniformMatrix2fvARB := dglGetProcAddress('glUniformMatrix2fvARB');
16277   glUniformMatrix3fvARB := dglGetProcAddress('glUniformMatrix3fvARB');
16278   glUniformMatrix4fvARB := dglGetProcAddress('glUniformMatrix4fvARB');
16279
16280   // GL_ARB_vertex_shader
16281   glGetActiveAttribARB := dglGetProcAddress('glGetActiveAttribARB');
16282   glGetAttribLocationARB := dglGetProcAddress('glGetAttribLocationARB');
16283   glBindAttribLocationARB := dglGetProcAddress('glBindAttribLocationARB');
16284   glGetVertexAttribPointervARB := dglGetProcAddress('glGetVertexAttribPointervARB');
16285 end;
16286
16287 procedure Read_GL_ARB_occlusion_query;
16288 begin
16289   glGenQueriesARB := dglGetProcAddress('glGenQueriesARB');
16290   glDeleteQueriesARB := dglGetProcAddress('glDeleteQueriesARB');
16291   glIsQueryARB := dglGetProcAddress('glIsQueryARB');
16292   glBeginQueryARB := dglGetProcAddress('glBeginQueryARB');
16293   glEndQueryARB := dglGetProcAddress('glEndQueryARB');
16294   glGetQueryivARB := dglGetProcAddress('glGetQueryivARB');
16295   glGetQueryObjectivARB := dglGetProcAddress('glGetQueryObjectivARB');
16296   glGetQueryObjectuivARB := dglGetProcAddress('glGetQueryObjectuivARB');
16297 end;
16298
16299 procedure Read_GL_ARB_draw_instanced;
16300 begin
16301   glDrawArraysInstancedARB := dglGetProcAddress('glDrawArraysInstancedARB');
16302   glDrawElementsInstancedARB := dglGetProcAddress('glDrawElementsInstancedARB');
16303 end;
16304
16305 procedure Read_GL_ARB_framebuffer_object;
16306 begin
16307   glIsRenderbuffer := dglGetProcAddress('glIsRenderbuffer');
16308   glBindRenderbuffer := dglGetProcAddress('glBindRenderbuffer');
16309   glDeleteRenderbuffers := dglGetProcAddress('glDeleteRenderbuffers');
16310   glGenRenderbuffers := dglGetProcAddress('glGenRenderbuffers');
16311   glRenderbufferStorage := dglGetProcAddress('glRenderbufferStorage');
16312   glGetRenderbufferParameteriv := dglGetProcAddress('glGetRenderbufferParameteriv');
16313   glIsFramebuffer := dglGetProcAddress('glIsFramebuffer');
16314   glBindFramebuffer := dglGetProcAddress('glBindFramebuffer');
16315   glDeleteFramebuffers := dglGetProcAddress('glDeleteFramebuffers');
16316   glGenFramebuffers := dglGetProcAddress('glGenFramebuffers');
16317   glCheckFramebufferStatus := dglGetProcAddress('glCheckFramebufferStatus');
16318   glFramebufferTexture1D := dglGetProcAddress('glFramebufferTexture1D');
16319   glFramebufferTexture2D := dglGetProcAddress('glFramebufferTexture2D');
16320   glFramebufferTexture3D := dglGetProcAddress('glFramebufferTexture3D');
16321   glFramebufferRenderbuffer := dglGetProcAddress('glFramebufferRenderbuffer');
16322   glGetFramebufferAttachmentParameteriv := dglGetProcAddress('glGetFramebufferAttachmentParameteriv');
16323   glGenerateMipmap := dglGetProcAddress('glGenerateMipmap');
16324   glBlitFramebuffer := dglGetProcAddress('glBlitFramebuffer');
16325   glRenderbufferStorageMultisample := dglGetProcAddress('glRenderbufferStorageMultisample');
16326   glFramebufferTextureLayer := dglGetProcAddress('glFramebufferTextureLayer');
16327 end;
16328
16329 procedure Read_GL_ARB_geometry_shader4;
16330 begin
16331   glProgramParameteriARB := dglGetProcAddress('glProgramParameteriARB');
16332   glFramebufferTextureARB := dglGetProcAddress('glFramebufferTextureARB');
16333   glFramebufferTextureLayerARB := dglGetProcAddress('glFramebufferTextureLayerARB');
16334   glFramebufferTextureFaceARB := dglGetProcAddress('glFramebufferTextureFaceARB');
16335 end;
16336
16337 procedure Read_GL_ARB_instanced_arrays;
16338 begin
16339   glVertexAttribDivisorARB := dglGetProcAddress('glVertexAttribDivisorARB');
16340 end;
16341
16342 procedure Read_GL_ARB_map_buffer_range;
16343 begin
16344   glMapBufferRange := dglGetProcAddress('glMapBufferRange');
16345   glFlushMappedBufferRange := dglGetProcAddress('glFlushMappedBufferRange');
16346 end;
16347
16348 procedure Read_GL_ARB_texture_buffer_object;
16349 begin
16350   glTexBufferARB := dglGetProcAddress('glTexBufferARB');
16351 end;
16352
16353 procedure Read_GL_ARB_vertex_array_object;
16354 begin
16355   glBindVertexArray := dglGetProcAddress('glBindVertexArray');
16356   glDeleteVertexArrays := dglGetProcAddress('glDeleteVertexArrays');
16357   glGenVertexArrays := dglGetProcAddress('glGenVertexArrays');
16358   glIsVertexArray := dglGetProcAddress('glIsVertexArray');
16359 end;
16360
16361 procedure Read_GL_ARB_uniform_buffer_object;
16362 begin
16363   glGetUniformIndices := dglGetProcAddress('glGetUniformIndices');
16364   glGetActiveUniformsiv := dglGetProcAddress('glGetActiveUniformsiv');
16365   glGetActiveUniformName := dglGetProcAddress('glGetActiveUniformName');
16366   glGetUniformBlockIndex := dglGetProcAddress('glGetUniformBlockIndex');
16367   glGetActiveUniformBlockiv := dglGetProcAddress('glGetActiveUniformBlockiv');
16368   glGetActiveUniformBlockName := dglGetProcAddress('glGetActiveUniformBlockName');
16369   glUniformBlockBinding := dglGetProcAddress('glUniformBlockBinding');
16370 end;
16371
16372 procedure Read_GL_ARB_copy_buffer;
16373 begin
16374   glCopyBufferSubData := dglGetProcAddress('glCopyBufferSubData');
16375 end;
16376
16377 procedure Read_GL_ARB_draw_elements_base_vertex;
16378 begin
16379   glDrawElementsBaseVertex := dglGetProcAddress('glDrawElementsBaseVertex');
16380   glDrawRangeElementsBaseVertex := dglGetProcAddress('glDrawRangeElementsBaseVertex');
16381   glDrawElementsInstancedBaseVertex := dglGetProcAddress('glDrawElementsInstancedBaseVertex');
16382   glMultiDrawElementsBaseVertex := dglGetProcAddress('glMultiDrawElementsBaseVertex');
16383 end;
16384
16385 procedure Read_GL_ARB_provoking_vertex;
16386 begin
16387   glProvokingVertex := dglGetProcAddress('glProvokingVertex');
16388 end;
16389
16390 procedure Read_GL_ARB_sync;
16391 begin
16392   glFenceSync := dglGetProcAddress('glFenceSync');
16393   glIsSync := dglGetProcAddress('glIsSync');
16394   glDeleteSync := dglGetProcAddress('glDeleteSync');
16395   glClientWaitSync := dglGetProcAddress('glClientWaitSync');
16396   glWaitSync := dglGetProcAddress('glWaitSync');
16397   glGetInteger64v := dglGetProcAddress('glGetInteger64v');
16398   glGetSynciv := dglGetProcAddress('glGetSynciv');
16399 end;
16400
16401 procedure Read_GL_ARB_texture_multisample;
16402 begin
16403   glTexImage2DMultisample := dglGetProcAddress('glTexImage2DMultisample');
16404   glTexImage3DMultisample := dglGetProcAddress('glTexImage3DMultisample');
16405   glGetMultisamplefv := dglGetProcAddress('glGetMultisamplefv');
16406   glSampleMaski := dglGetProcAddress('glSampleMaski');
16407 end;
16408
16409 procedure Read_GL_ARB_draw_buffers_blend;
16410 begin
16411   glBlendEquationiARB := dglGetProcAddress('glBlendEquationiARB');
16412   glBlendEquationSeparateiARB := dglGetProcAddress('glBlendEquationSeparateiARB');
16413   glBlendFunciARB := dglGetProcAddress('glBlendFunciARB');
16414   glBlendFuncSeparateiARB := dglGetProcAddress('glBlendFuncSeparateiARB');
16415 end;
16416
16417 procedure Read_GL_ARB_sample_shading;
16418 begin
16419   glMinSampleShadingARB := dglGetProcAddress('glMinSampleShadingARB');
16420 end;
16421
16422 procedure Read_GL_ARB_shading_language_include;
16423 begin
16424   glNamedStringARB := dglGetProcAddress('glNamedStringARB');
16425   glDeleteNamedStringARB := dglGetProcAddress('glDeleteNamedStringARB');
16426   glCompileShaderIncludeARB := dglGetProcAddress('glCompileShaderIncludeARB');
16427   glIsNamedStringARB := dglGetProcAddress('glIsNamedStringARB');
16428   glGetNamedStringARB := dglGetProcAddress('glGetNamedStringARB');
16429   glGetNamedStringivARB := dglGetProcAddress('glGetNamedStringivARB');
16430 end;
16431
16432 procedure Read_GL_ARB_sparse_texture;
16433 begin
16434   glTexPageCommitmentARB := dglGetProcAddress('glTexPageCommitmentARB');
16435 end;
16436
16437 procedure Read_GL_ARB_sparse_buffer;
16438 begin
16439   glBufferPageCommitmentARB := dglGetProcAddress('glBufferPageCommitmentARB');
16440   glNamedBufferPageCommitmentEXT := dglGetProcAddress('glNamedBufferPageCommitmentEXT');
16441   glNamedBufferPageCommitmentARB := dglGetProcAddress('glNamedBufferPageCommitmentARB');
16442 end;
16443
16444 procedure Read_GL_KHR_blend_equation_advanced;
16445 begin
16446   glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
16447 end;
16448
16449
16450 procedure Read_GL_ARB_blend_func_extended;
16451 begin
16452   glBindFragDataLocationIndexed := dglGetProcAddress('glBindFragDataLocationIndexed');
16453   glGetFragDataIndex := dglGetProcAddress('glGetFragDataIndex');
16454 end;
16455
16456 procedure Read_GL_ARB_sampler_objects;
16457 begin
16458   glGenSamplers := dglGetProcAddress('glGenSamplers');
16459   glDeleteSamplers := dglGetProcAddress('glDeleteSamplers');
16460   glIsSampler := dglGetProcAddress('glIsSampler');
16461   glBindSampler := dglGetProcAddress('glBindSampler');
16462   glSamplerParameteri := dglGetProcAddress('glSamplerParameteri');
16463   glSamplerParameteriv := dglGetProcAddress('glSamplerParameteriv');
16464   glSamplerParameterf := dglGetProcAddress('glSamplerParameterf');
16465   glSamplerParameterfv := dglGetProcAddress('glSamplerParameterfv');
16466   glSamplerParameterIiv := dglGetProcAddress('glSamplerParameterIiv');
16467   glSamplerParameterIuiv := dglGetProcAddress('glSamplerParameterIuiv');
16468   glGetSamplerParameteriv := dglGetProcAddress('glGetSamplerParameteriv');
16469   glGetSamplerParameterIiv := dglGetProcAddress('glGetSamplerParameterIiv');
16470   glGetSamplerParameterfv := dglGetProcAddress('glGetSamplerParameterfv');
16471   glGetSamplerParameterIuiv := dglGetProcAddress('glGetSamplerParameterIuiv');
16472 end;
16473
16474 procedure Read_GL_ARB_timer_query;
16475 begin
16476   glQueryCounter := dglGetProcAddress('glQueryCounter');
16477   glGetQueryObjecti64v := dglGetProcAddress('glGetQueryObjecti64v');
16478   glGetQueryObjectui64v := dglGetProcAddress('glGetQueryObjectui64v');
16479 end;
16480
16481 procedure Read_GL_ARB_vertex_type_2_10_10_10_rev;
16482 begin
16483   glVertexP2ui := dglGetProcAddress('glVertexP2ui');
16484   glVertexP2uiv := dglGetProcAddress('glVertexP2uiv');
16485   glVertexP3ui := dglGetProcAddress('glVertexP3ui');
16486   glVertexP3uiv := dglGetProcAddress('glVertexP3uiv');
16487   glVertexP4ui := dglGetProcAddress('glVertexP4ui');
16488   glVertexP4uiv := dglGetProcAddress('glVertexP4uiv');
16489   glTexCoordP1ui := dglGetProcAddress('glTexCoordP1ui');
16490   glTexCoordP1uiv := dglGetProcAddress('glTexCoordP1uiv');
16491   glTexCoordP2ui := dglGetProcAddress('glTexCoordP2ui');
16492   glTexCoordP2uiv := dglGetProcAddress('glTexCoordP2uiv');
16493   glTexCoordP3ui := dglGetProcAddress('glTexCoordP3ui');
16494   glTexCoordP3uiv := dglGetProcAddress('glTexCoordP3uiv');
16495   glTexCoordP4ui := dglGetProcAddress('glTexCoordP4ui');
16496   glTexCoordP4uiv := dglGetProcAddress('glTexCoordP4uiv');
16497   glMultiTexCoordP1ui := dglGetProcAddress('glMultiTexCoordP1ui');
16498   glMultiTexCoordP1uiv := dglGetProcAddress('glMultiTexCoordP1uiv');
16499   glMultiTexCoordP2ui := dglGetProcAddress('glMultiTexCoordP2ui');
16500   glMultiTexCoordP2uiv := dglGetProcAddress('glMultiTexCoordP2uiv');
16501   glMultiTexCoordP3ui := dglGetProcAddress('glMultiTexCoordP3ui');
16502   glMultiTexCoordP3uiv := dglGetProcAddress('glMultiTexCoordP3uiv');
16503   glMultiTexCoordP4ui := dglGetProcAddress('glMultiTexCoordP4ui');
16504   glMultiTexCoordP4uiv := dglGetProcAddress('glMultiTexCoordP4uiv');
16505   glNormalP3ui := dglGetProcAddress('glNormalP3ui');
16506   glNormalP3uiv := dglGetProcAddress('glNormalP3uiv');
16507   glColorP3ui := dglGetProcAddress('glColorP3ui');
16508   glColorP3uiv := dglGetProcAddress('glColorP3uiv');
16509   glColorP4ui := dglGetProcAddress('glColorP4ui');
16510   glColorP4uiv := dglGetProcAddress('glColorP4uiv');
16511   glSecondaryColorP3ui := dglGetProcAddress('glSecondaryColorP3ui');
16512   glSecondaryColorP3uiv := dglGetProcAddress('glSecondaryColorP3uiv');
16513   glVertexAttribP1ui := dglGetProcAddress('glVertexAttribP1ui');
16514   glVertexAttribP1uiv := dglGetProcAddress('glVertexAttribP1uiv');
16515   glVertexAttribP2ui := dglGetProcAddress('glVertexAttribP2ui');
16516   glVertexAttribP2uiv := dglGetProcAddress('glVertexAttribP2uiv');
16517   glVertexAttribP3ui := dglGetProcAddress('glVertexAttribP3ui');
16518   glVertexAttribP3uiv := dglGetProcAddress('glVertexAttribP3uiv');
16519   glVertexAttribP4ui := dglGetProcAddress('glVertexAttribP4ui');
16520   glVertexAttribP4uiv := dglGetProcAddress('glVertexAttribP4uiv');
16521 end;
16522
16523 procedure Read_GL_ARB_draw_indirect;
16524 begin
16525   glDrawArraysIndirect := dglGetProcAddress('glDrawArraysIndirect');
16526   glDrawElementsIndirect := dglGetProcAddress('glDrawElementsIndirect');
16527 end;
16528
16529 procedure Read_GL_ARB_gpu_shader_fp64;
16530 begin
16531   glUniform1d := dglGetProcAddress('glUniform1d');
16532   glUniform2d := dglGetProcAddress('glUniform2d');
16533   glUniform3d := dglGetProcAddress('glUniform3d');
16534   glUniform4d := dglGetProcAddress('glUniform4d');
16535   glUniform1dv := dglGetProcAddress('glUniform1dv');
16536   glUniform2dv := dglGetProcAddress('glUniform2dv');
16537   glUniform3dv := dglGetProcAddress('glUniform3dv');
16538   glUniform4dv := dglGetProcAddress('glUniform4dv');
16539   glUniformMatrix2dv := dglGetProcAddress('glUniformMatrix2dv');
16540   glUniformMatrix3dv := dglGetProcAddress('glUniformMatrix3dv');
16541   glUniformMatrix4dv := dglGetProcAddress('glUniformMatrix4dv');
16542   glUniformMatrix2x3dv := dglGetProcAddress('glUniformMatrix2x3dv');
16543   glUniformMatrix2x4dv := dglGetProcAddress('glUniformMatrix2x4dv');
16544   glUniformMatrix3x2dv := dglGetProcAddress('glUniformMatrix3x2dv');
16545   glUniformMatrix3x4dv := dglGetProcAddress('glUniformMatrix3x4dv');
16546   glUniformMatrix4x2dv := dglGetProcAddress('glUniformMatrix4x2dv');
16547   glUniformMatrix4x3dv := dglGetProcAddress('glUniformMatrix4x3dv');
16548   glGetUniformdv := dglGetProcAddress('glGetUniformdv');
16549 end;
16550
16551 procedure Read_GL_ARB_shader_subroutine;
16552 begin
16553   glGetSubroutineUniformLocation := dglGetProcAddress('glGetSubroutineUniformLocation');
16554   glGetSubroutineIndex := dglGetProcAddress('glGetSubroutineIndex');
16555   glGetActiveSubroutineUniformiv := dglGetProcAddress('glGetActiveSubroutineUniformiv');
16556   glGetActiveSubroutineUniformName := dglGetProcAddress('glGetActiveSubroutineUniformName');
16557   glGetActiveSubroutineName := dglGetProcAddress('glGetActiveSubroutineName');
16558   glUniformSubroutinesuiv := dglGetProcAddress('glUniformSubroutinesuiv');
16559   glGetUniformSubroutineuiv := dglGetProcAddress('glGetUniformSubroutineuiv');
16560   glGetProgramStageiv := dglGetProcAddress('glGetProgramStageiv');
16561 end;
16562
16563 procedure Read_GL_ARB_tessellation_shader;
16564 begin
16565   glPatchParameteri := dglGetProcAddress('glPatchParameteri');
16566   glPatchParameterfv := dglGetProcAddress('glPatchParameterfv');
16567 end;
16568
16569 procedure Read_GL_ARB_transform_feedback2;
16570 begin
16571   glBindTransformFeedback := dglGetProcAddress('glBindTransformFeedback');
16572   glDeleteTransformFeedbacks := dglGetProcAddress('glDeleteTransformFeedbacks');
16573   glGenTransformFeedbacks := dglGetProcAddress('glGenTransformFeedbacks');
16574   glIsTransformFeedback := dglGetProcAddress('glIsTransformFeedback');
16575   glPauseTransformFeedback := dglGetProcAddress('glPauseTransformFeedback');
16576   glResumeTransformFeedback := dglGetProcAddress('glResumeTransformFeedback');
16577   glDrawTransformFeedback := dglGetProcAddress('glDrawTransformFeedback');
16578 end;
16579
16580 procedure Read_GL_ARB_transform_feedback3;
16581 begin
16582   glDrawTransformFeedbackStream := dglGetProcAddress('glDrawTransformFeedbackStream');
16583   glBeginQueryIndexed := dglGetProcAddress('glBeginQueryIndexed');
16584   glEndQueryIndexed := dglGetProcAddress('glEndQueryIndexed');
16585   glGetQueryIndexediv := dglGetProcAddress('glGetQueryIndexediv');
16586 end;
16587
16588 procedure Read_GL_ARB_ES2_compatibility;
16589 begin
16590   glReleaseShaderCompiler := dglGetProcAddress('glReleaseShaderCompiler');
16591   glShaderBinary := dglGetProcAddress('glShaderBinary');
16592   glGetShaderPrecisionFormat := dglGetProcAddress('glGetShaderPrecisionFormat');
16593   glDepthRangef := dglGetProcAddress('glDepthRangef');
16594   glClearDepthf := dglGetProcAddress('glClearDepthf');
16595 end;
16596
16597 procedure Read_GL_ARB_get_program_binary;
16598 begin
16599   glGetProgramBinary := dglGetProcAddress('glGetProgramBinary');
16600   glProgramBinary := dglGetProcAddress('glProgramBinary');
16601   glProgramParameteri := dglGetProcAddress('glProgramParameteri');
16602 end;
16603
16604 procedure Read_GL_ARB_separate_shader_objects;
16605 begin
16606   glUseProgramStages := dglGetProcAddress('glUseProgramStages');
16607   glActiveShaderProgram := dglGetProcAddress('glActiveShaderProgram');
16608   glCreateShaderProgramv := dglGetProcAddress('glCreateShaderProgramv');
16609   glBindProgramPipeline := dglGetProcAddress('glBindProgramPipeline');
16610   glDeleteProgramPipelines := dglGetProcAddress('glDeleteProgramPipelines');
16611   glGenProgramPipelines := dglGetProcAddress('glGenProgramPipelines');
16612   glIsProgramPipeline := dglGetProcAddress('glIsProgramPipeline');
16613   glGetProgramPipelineiv := dglGetProcAddress('glGetProgramPipelineiv');
16614   glProgramUniform1i := dglGetProcAddress('glProgramUniform1i');
16615   glProgramUniform1iv := dglGetProcAddress('glProgramUniform1iv');
16616   glProgramUniform1f := dglGetProcAddress('glProgramUniform1f');
16617   glProgramUniform1fv := dglGetProcAddress('glProgramUniform1fv');
16618   glProgramUniform1d := dglGetProcAddress('glProgramUniform1d');
16619   glProgramUniform1dv := dglGetProcAddress('glProgramUniform1dv');
16620   glProgramUniform1ui := dglGetProcAddress('glProgramUniform1ui');
16621   glProgramUniform1uiv := dglGetProcAddress('glProgramUniform1uiv');
16622   glProgramUniform2i := dglGetProcAddress('glProgramUniform2i');
16623   glProgramUniform2iv := dglGetProcAddress('glProgramUniform2iv');
16624   glProgramUniform2f := dglGetProcAddress('glProgramUniform2f');
16625   glProgramUniform2fv := dglGetProcAddress('glProgramUniform2fv');
16626   glProgramUniform2d := dglGetProcAddress('glProgramUniform2d');
16627   glProgramUniform2dv := dglGetProcAddress('glProgramUniform2dv');
16628   glProgramUniform2ui := dglGetProcAddress('glProgramUniform2ui');
16629   glProgramUniform2uiv := dglGetProcAddress('glProgramUniform2uiv');
16630   glProgramUniform3i := dglGetProcAddress('glProgramUniform3i');
16631   glProgramUniform3iv := dglGetProcAddress('glProgramUniform3iv');
16632   glProgramUniform3f := dglGetProcAddress('glProgramUniform3f');
16633   glProgramUniform3fv := dglGetProcAddress('glProgramUniform3fv');
16634   glProgramUniform3d := dglGetProcAddress('glProgramUniform3d');
16635   glProgramUniform3dv := dglGetProcAddress('glProgramUniform3dv');
16636   glProgramUniform3ui := dglGetProcAddress('glProgramUniform3ui');
16637   glProgramUniform3uiv := dglGetProcAddress('glProgramUniform3uiv');
16638   glProgramUniform4i := dglGetProcAddress('glProgramUniform4i');
16639   glProgramUniform4iv := dglGetProcAddress('glProgramUniform4iv');
16640   glProgramUniform4f := dglGetProcAddress('glProgramUniform4f');
16641   glProgramUniform4fv := dglGetProcAddress('glProgramUniform4fv');
16642   glProgramUniform4d := dglGetProcAddress('glProgramUniform4d');
16643   glProgramUniform4dv := dglGetProcAddress('glProgramUniform4dv');
16644   glProgramUniform4ui := dglGetProcAddress('glProgramUniform4ui');
16645   glProgramUniform4uiv := dglGetProcAddress('glProgramUniform4uiv');
16646   glProgramUniformMatrix2fv := dglGetProcAddress('glProgramUniformMatrix2fv');
16647   glProgramUniformMatrix3fv := dglGetProcAddress('glProgramUniformMatrix3fv');
16648   glProgramUniformMatrix4fv := dglGetProcAddress('glProgramUniformMatrix4fv');
16649   glProgramUniformMatrix2dv := dglGetProcAddress('glProgramUniformMatrix2dv');
16650   glProgramUniformMatrix3dv := dglGetProcAddress('glProgramUniformMatrix3dv');
16651   glProgramUniformMatrix4dv := dglGetProcAddress('glProgramUniformMatrix4dv');
16652   glProgramUniformMatrix2x3fv := dglGetProcAddress('glProgramUniformMatrix2x3fv');
16653   glProgramUniformMatrix3x2fv := dglGetProcAddress('glProgramUniformMatrix3x2fv');
16654   glProgramUniformMatrix2x4fv := dglGetProcAddress('glProgramUniformMatrix2x4fv');
16655   glProgramUniformMatrix4x2fv := dglGetProcAddress('glProgramUniformMatrix4x2fv');
16656   glProgramUniformMatrix3x4fv := dglGetProcAddress('glProgramUniformMatrix3x4fv');
16657   glProgramUniformMatrix4x3fv := dglGetProcAddress('glProgramUniformMatrix4x3fv');
16658   glProgramUniformMatrix2x3dv := dglGetProcAddress('glProgramUniformMatrix2x3dv');
16659   glProgramUniformMatrix3x2dv := dglGetProcAddress('glProgramUniformMatrix3x2dv');
16660   glProgramUniformMatrix2x4dv := dglGetProcAddress('glProgramUniformMatrix2x4dv');
16661   glProgramUniformMatrix4x2dv := dglGetProcAddress('glProgramUniformMatrix4x2dv');
16662   glProgramUniformMatrix3x4dv := dglGetProcAddress('glProgramUniformMatrix3x4dv');
16663   glProgramUniformMatrix4x3dv := dglGetProcAddress('glProgramUniformMatrix4x3dv');
16664   glValidateProgramPipeline := dglGetProcAddress('glValidateProgramPipeline');
16665   glGetProgramPipelineInfoLog := dglGetProcAddress('glGetProgramPipelineInfoLog');
16666 end;
16667
16668 procedure Read_GL_ARB_vertex_attrib_64bit;
16669 begin
16670   glVertexAttribL1d := dglGetProcAddress('glVertexAttribL1d');
16671   glVertexAttribL2d := dglGetProcAddress('glVertexAttribL2d');
16672   glVertexAttribL3d := dglGetProcAddress('glVertexAttribL3d');
16673   glVertexAttribL4d := dglGetProcAddress('glVertexAttribL4d');
16674   glVertexAttribL1dv := dglGetProcAddress('glVertexAttribL1dv');
16675   glVertexAttribL2dv := dglGetProcAddress('glVertexAttribL2dv');
16676   glVertexAttribL3dv := dglGetProcAddress('glVertexAttribL3dv');
16677   glVertexAttribL4dv := dglGetProcAddress('glVertexAttribL4dv');
16678   glVertexAttribLPointer := dglGetProcAddress('glVertexAttribLPointer');
16679   glGetVertexAttribLdv := dglGetProcAddress('glGetVertexAttribLdv');
16680 end;
16681
16682 procedure Read_GL_ARB_viewport_array;
16683 begin
16684   glViewportArrayv := dglGetProcAddress('glViewportArrayv');
16685   glViewportIndexedf := dglGetProcAddress('glViewportIndexedf');
16686   glViewportIndexedfv := dglGetProcAddress('glViewportIndexedfv');
16687   glScissorArrayv := dglGetProcAddress('glScissorArrayv');
16688   glScissorIndexed := dglGetProcAddress('glScissorIndexed');
16689   glScissorIndexedv := dglGetProcAddress('glScissorIndexedv');
16690   glDepthRangeArrayv := dglGetProcAddress('glDepthRangeArrayv');
16691   glDepthRangeIndexed := dglGetProcAddress('glDepthRangeIndexed');
16692   glGetFloati_v := dglGetProcAddress('glGetFloati_v');
16693   glGetDoublei_v := dglGetProcAddress('glGetDoublei_v');
16694 end;
16695
16696 // GL 4.2
16697
16698 procedure Read_GL_ARB_base_instance;
16699 begin
16700 glDrawArraysInstancedBaseInstance := dglGetProcAddress('glDrawArraysInstancedBaseInstance');
16701 glDrawElementsInstancedBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseInstance');
16702 glDrawElementsInstancedBaseVertexBaseInstance := dglGetProcAddress('glDrawElementsInstancedBaseVertexBaseInstance');
16703 end;
16704
16705 procedure Read_GL_ARB_transform_feedback_instanced;
16706 begin
16707 glDrawTransformFeedbackInstanced := dglGetProcAddress('glDrawTransformFeedbackInstanced');
16708 glDrawTransformFeedbackStreamInstanced := dglGetProcAddress('glDrawTransformFeedbackStreamInstanced');
16709 end;
16710
16711 procedure Read_GL_ARB_internalformat_query;
16712 begin
16713 glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
16714 end;
16715
16716 procedure Read_GL_ARB_shader_atomic_counters;
16717 begin
16718 glGetActiveAtomicCounterBufferiv := dglGetProcAddress('glGetActiveAtomicCounterBufferiv');
16719 end;
16720
16721 procedure Read_GL_ARB_shader_image_load_store;
16722 begin
16723 glBindImageTexture := dglGetProcAddress('glBindImageTexture');
16724 glMemoryBarrier := dglGetProcAddress('glMemoryBarrier');
16725 end;
16726
16727 procedure Read_GL_ARB_texture_storage;
16728 begin
16729 glTexStorage1D := dglGetProcAddress('glTexStorage1D');
16730 glTexStorage2D := dglGetProcAddress('glTexStorage2D');
16731 glTexStorage3D := dglGetProcAddress('glTexStorage3D');
16732 glTextureStorage1DEXT := dglGetProcAddress('glTextureStorage1DEXT');
16733 glTextureStorage2DEXT := dglGetProcAddress('glTextureStorage2DEXT');
16734 glTextureStorage3DEXT := dglGetProcAddress('glTextureStorage3DEXT');
16735 end;
16736
16737
16738 // GL 4.3
16739 procedure Read_GL_KHR_debug;
16740 begin
16741   glDebugMessageControl := dglGetProcAddress('glDebugMessageControl');
16742   glDebugMessageInsert := dglGetProcAddress('glDebugMessageInsert');
16743   glDebugMessageCallback := dglGetProcAddress('glDebugMessageCallback');
16744   glGetDebugMessageLog := dglGetProcAddress('glGetDebugMessageLog');
16745   glPushDebugGroup := dglGetProcAddress('glPushDebugGroup');
16746   glPopDebugGroup := dglGetProcAddress('glPopDebugGroup');
16747   glObjectLabel := dglGetProcAddress('glObjectLabel');
16748   glGetObjectLabel := dglGetProcAddress('glGetObjectLabel');
16749   glObjectPtrLabel := dglGetProcAddress('glObjectPtrLabel');
16750   glGetObjectPtrLabel := dglGetProcAddress('glGetObjectPtrLabel');
16751 end;
16752
16753 procedure Read_GL_ARB_clear_buffer_object;
16754 begin
16755   glClearBufferData := dglGetProcAddress('glClearBufferData');
16756   glClearBufferSubData := dglGetProcAddress('glClearBufferSubData');
16757   glClearNamedBufferDataEXT := dglGetProcAddress('glClearNamedBufferDataEXT');
16758   glClearNamedBufferSubDataEXT := dglGetProcAddress('glClearNamedBufferSubDataEXT');
16759 end;
16760
16761 procedure Read_GL_ARB_compute_shader;
16762 begin
16763   glDispatchCompute := dglGetProcAddress('glDispatchCompute');
16764   glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
16765 end;
16766
16767 procedure Read_GL_ARB_copy_image;
16768 begin
16769   glCopyImageSubData := dglGetProcAddress('glCopyImageSubData');
16770 end;
16771
16772 procedure Read_GL_ARB_framebuffer_no_attachments;
16773 begin
16774   glFramebufferParameteri := dglGetProcAddress('glFramebufferParameteri');
16775   glGetFramebufferParameteriv := dglGetProcAddress('glGetFramebufferParameteriv');
16776   glNamedFramebufferParameteriEXT := dglGetProcAddress('glNamedFramebufferParameteriEXT');
16777   glGetNamedFramebufferParameterivEXT := dglGetProcAddress('glGetNamedFramebufferParameterivEXT');
16778 end;
16779
16780 procedure Read_GL_ARB_internalformat_query2;
16781 begin
16782   glGetInternalformati64v := dglGetProcAddress('glGetInternalformati64v');;
16783 end;
16784
16785 procedure Read_GL_ARB_invalidate_subdata;
16786 begin
16787   glInvalidateTexSubImage := dglGetProcAddress('glInvalidateTexSubImage');
16788   glInvalidateTexImage := dglGetProcAddress('glInvalidateTexImage');
16789   glInvalidateBufferSubData := dglGetProcAddress('glInvalidateBufferSubData');
16790   glInvalidateBufferData := dglGetProcAddress('glInvalidateBufferData');
16791   glInvalidateFramebuffer := dglGetProcAddress('glInvalidateFramebuffer');
16792   glInvalidateSubFramebuffer := dglGetProcAddress('glInvalidateSubFramebuffer');
16793 end;
16794
16795 procedure Read_GL_ARB_multi_draw_indirect;
16796 begin
16797   glMultiDrawArraysIndirect := dglGetProcAddress('glMultiDrawArraysIndirect');
16798   glMultiDrawElementsIndirect := dglGetProcAddress('glMultiDrawElementsIndirect');
16799 end;
16800
16801 procedure Read_GL_ARB_program_interface_query;
16802 begin
16803   glGetProgramInterfaceiv := dglGetProcAddress('glGetProgramInterfaceiv');
16804   glGetProgramResourceIndex := dglGetProcAddress('glGetProgramResourceIndex');
16805   glGetProgramResourceName := dglGetProcAddress('glGetProgramResourceName');
16806   glGetProgramResourceiv := dglGetProcAddress('glGetProgramResourceiv');
16807   glGetProgramResourceLocation := dglGetProcAddress('glGetProgramResourceLocation');
16808   glGetProgramResourceLocationIndex := dglGetProcAddress('glGetProgramResourceLocationIndex');
16809 end;
16810
16811 procedure Read_GL_ARB_shader_storage_buffer_object;
16812 begin
16813   glShaderStorageBlockBinding := dglGetProcAddress('glShaderStorageBlockBinding');
16814 end;
16815
16816 procedure Read_GL_ARB_texture_buffer_range;
16817 begin
16818   glTexBufferRange := dglGetProcAddress('glTexBufferRange');
16819   glTextureBufferRangeEXT := dglGetProcAddress('glTextureBufferRangeEXT');
16820 end;
16821
16822 procedure Read_GL_ARB_texture_storage_multisample;
16823 begin
16824   glTexStorage2DMultisample := dglGetProcAddress('glTexStorage2DMultisample');
16825   glTexStorage3DMultisample := dglGetProcAddress('glTexStorage3DMultisample');
16826   glTextureStorage2DMultisampleEXT := dglGetProcAddress('glTextureStorage2DMultisampleEXT');
16827   glTextureStorage3DMultisampleEXT := dglGetProcAddress('glTextureStorage3DMultisampleEXT');
16828 end;
16829
16830 procedure Read_GL_ARB_texture_view;
16831 begin
16832   glTextureView := dglGetProcAddress('glTextureView');
16833 end;
16834
16835 procedure Read_GL_ARB_vertex_attrib_binding;
16836 begin
16837   glBindVertexBuffer := dglGetProcAddress('glBindVertexBuffer');
16838   glVertexAttribFormat := dglGetProcAddress('glVertexAttribFormat');
16839   glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
16840   glVertexAttribLFormat := dglGetProcAddress('glVertexAttribLFormat');
16841   glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
16842   glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
16843   glVertexArrayBindVertexBufferEXT := dglGetProcAddress('glVertexArrayBindVertexBufferEXT');
16844   glVertexArrayVertexAttribFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribFormatEXT');
16845   glVertexArrayVertexAttribIFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribIFormatEXT');
16846   glVertexArrayVertexAttribLFormatEXT := dglGetProcAddress('glVertexArrayVertexAttribLFormatEXT');
16847   glVertexArrayVertexAttribBindingEXT := dglGetProcAddress('glVertexArrayVertexAttribBindingEXT');
16848   glVertexArrayVertexBindingDivisorEXT := dglGetProcAddress('glVertexArrayVertexBindingDivisorEXT');
16849 end;
16850
16851 procedure Read_GL_4_4;
16852 begin
16853   glBufferStorage     := dglGetProcAddress('glBufferStorage');
16854   glClearTexImage     := dglGetProcAddress('glClearTexImage');
16855   glClearTexSubImage  := dglGetProcAddress('glClearTexSubImage');
16856   glBindBuffersBase   := dglGetProcAddress('glBindBuffersBase');
16857   glBindBuffersRange  := dglGetProcAddress('glBindBuffersRange');
16858   glBindTextures      := dglGetProcAddress('glBindTextures');
16859   glBindSamplers      := dglGetProcAddress('glBindSamplers');
16860   glBindImageTextures := dglGetProcAddress('glBindImageTextures');
16861   glBindVertexBuffers := dglGetProcAddress('glBindVertexBuffers');
16862 end;
16863
16864 procedure Read_GL_4_5;
16865 begin
16866   glClipControl:= dglGetProcAddress('glClipControl');
16867   glCreateTransformFeedbacks:= dglGetProcAddress('glCreateTransformFeedbacks');
16868   glTransformFeedbackBufferBase:= dglGetProcAddress('glTransformFeedbackBufferBase');
16869   glTransformFeedbackBufferRange:= dglGetProcAddress('glTransformFeedbackBufferRange');
16870   glGetTransformFeedbackiv:= dglGetProcAddress('glGetTransformFeedbackiv');
16871   glGetTransformFeedbacki_v:= dglGetProcAddress('glGetTransformFeedbacki_v');
16872   glGetTransformFeedbacki64_v:= dglGetProcAddress('glGetTransformFeedbacki64_v');
16873   glCreateBuffers:= dglGetProcAddress('glCreateBuffers');
16874   glNamedBufferStorage:= dglGetProcAddress('glNamedBufferStorage');
16875   glNamedBufferData:= dglGetProcAddress('glNamedBufferData');
16876   glNamedBufferSubData:= dglGetProcAddress('glNamedBufferSubData');
16877   glCopyNamedBufferSubData:= dglGetProcAddress('glCopyNamedBufferSubData');
16878   glClearNamedBufferData:= dglGetProcAddress('glClearNamedBufferData');
16879   glClearNamedBufferSubData:= dglGetProcAddress('glClearNamedBufferSubData');
16880   glMapNamedBuffer:= dglGetProcAddress('glMapNamedBuffer');
16881   glMapNamedBufferRange:= dglGetProcAddress('glMapNamedBufferRange');
16882   glUnmapNamedBuffer:= dglGetProcAddress('glUnmapNamedBuffer');
16883   glFlushMappedNamedBufferRange:= dglGetProcAddress('glFlushMappedNamedBufferRange');
16884   glGetNamedBufferParameteriv:= dglGetProcAddress('glGetNamedBufferParameteriv');
16885   glGetNamedBufferParameteri64v:= dglGetProcAddress('glGetNamedBufferParameteri64v');
16886   glGetNamedBufferPointerv:= dglGetProcAddress('glGetNamedBufferPointerv');
16887   glGetNamedBufferSubData:= dglGetProcAddress('glGetNamedBufferSubData');
16888   glCreateFramebuffers:= dglGetProcAddress('glCreateFramebuffers');
16889   glNamedFramebufferRenderbuffer:= dglGetProcAddress('glNamedFramebufferRenderbuffer');
16890   glNamedFramebufferParameteri:= dglGetProcAddress('glNamedFramebufferParameteri');
16891   glNamedFramebufferTexture:= dglGetProcAddress('glNamedFramebufferTexture');
16892   glNamedFramebufferTextureLayer:= dglGetProcAddress('glNamedFramebufferTextureLayer');
16893   glNamedFramebufferDrawBuffer:= dglGetProcAddress('glNamedFramebufferDrawBuffer');
16894   glNamedFramebufferDrawBuffers:= dglGetProcAddress('glNamedFramebufferDrawBuffers');
16895   glNamedFramebufferReadBuffer:= dglGetProcAddress('glNamedFramebufferReadBuffer');
16896   glInvalidateNamedFramebufferData:= dglGetProcAddress('glInvalidateNamedFramebufferData');
16897   glInvalidateNamedFramebufferSubData:= dglGetProcAddress('glInvalidateNamedFramebufferSubData');
16898   glClearNamedFramebufferiv:= dglGetProcAddress('glClearNamedFramebufferiv');
16899   glClearNamedFramebufferuiv:= dglGetProcAddress('glClearNamedFramebufferuiv');
16900   glClearNamedFramebufferfv:= dglGetProcAddress('glClearNamedFramebufferfv');
16901   glClearNamedFramebufferfi:= dglGetProcAddress('glClearNamedFramebufferfi');
16902   glBlitNamedFramebuffer:= dglGetProcAddress('glBlitNamedFramebuffer');
16903   glCheckNamedFramebufferStatus:= dglGetProcAddress('glCheckNamedFramebufferStatus');
16904   glGetNamedFramebufferParameteriv:= dglGetProcAddress('glGetNamedFramebufferParameteriv');
16905   glGetNamedFramebufferAttachmentParameteriv:= dglGetProcAddress('glGetNamedFramebufferAttachmentParameteriv');
16906   glCreateRenderbuffers:= dglGetProcAddress('glCreateRenderbuffers');
16907   glNamedRenderbufferStorage:= dglGetProcAddress('glNamedRenderbufferStorage');
16908   glNamedRenderbufferStorageMultisample:= dglGetProcAddress('glNamedRenderbufferStorageMultisample');
16909   glGetNamedRenderbufferParameteriv:= dglGetProcAddress('glGetNamedRenderbufferParameteriv');
16910   glCreateTextures:= dglGetProcAddress('glCreateTextures');
16911   glTextureBuffer:= dglGetProcAddress('glTextureBuffer');
16912   glTextureBufferRange:= dglGetProcAddress('glTextureBufferRange');
16913   glTextureStorage1D:= dglGetProcAddress('glTextureStorage1D');
16914   glTextureStorage2D:= dglGetProcAddress('glTextureStorage2D');
16915   glTextureStorage3D:= dglGetProcAddress('glTextureStorage3D');
16916   glTextureStorage2DMultisample:= dglGetProcAddress('glTextureStorage2DMultisample');
16917   glTextureStorage3DMultisample:= dglGetProcAddress('glTextureStorage3DMultisample');
16918   glTextureSubImage1D:= dglGetProcAddress('glTextureSubImage1D');
16919   glTextureSubImage2D:= dglGetProcAddress('glTextureSubImage2D');
16920   glTextureSubImage3D:= dglGetProcAddress('glTextureSubImage3D');
16921   glCompressedTextureSubImage1D:= dglGetProcAddress('glCompressedTextureSubImage1D');
16922   glCompressedTextureSubImage2D:= dglGetProcAddress('glCompressedTextureSubImage2D');
16923   glCompressedTextureSubImage3D:= dglGetProcAddress('glCompressedTextureSubImage3D');
16924   glCopyTextureSubImage1D:= dglGetProcAddress('glCopyTextureSubImage1D');
16925   glCopyTextureSubImage2D:= dglGetProcAddress('glCopyTextureSubImage2D');
16926   glCopyTextureSubImage3D:= dglGetProcAddress('glCopyTextureSubImage3D');
16927   glTextureParameterf:= dglGetProcAddress('glTextureParameterf');
16928   glTextureParameterfv:= dglGetProcAddress('glTextureParameterfv');
16929   glTextureParameteri:= dglGetProcAddress('glTextureParameteri');
16930   glTextureParameterIiv:= dglGetProcAddress('glTextureParameterIiv');
16931   glTextureParameterIuiv:= dglGetProcAddress('glTextureParameterIuiv');
16932   glTextureParameteriv:= dglGetProcAddress('glTextureParameteriv');
16933   glGenerateTextureMipmap:= dglGetProcAddress('glGenerateTextureMipmap');
16934   glBindTextureUnit:= dglGetProcAddress('glBindTextureUnit');
16935   glGetTextureImage:= dglGetProcAddress('glGetTextureImage');
16936   glGetCompressedTextureImage:= dglGetProcAddress('glGetCompressedTextureImage');
16937   glGetTextureLevelParameterfv:= dglGetProcAddress('glGetTextureLevelParameterfv');
16938   glGetTextureLevelParameteriv:= dglGetProcAddress('glGetTextureLevelParameteriv');
16939   glGetTextureParameterfv:= dglGetProcAddress('glGetTextureParameterfv');
16940   glGetTextureParameterIiv:= dglGetProcAddress('glGetTextureParameterIiv');
16941   glGetTextureParameterIuiv:= dglGetProcAddress('glGetTextureParameterIuiv');
16942   glGetTextureParameteriv:= dglGetProcAddress('glGetTextureParameteriv');
16943   glCreateVertexArrays:= dglGetProcAddress('glCreateVertexArrays');
16944   glDisableVertexArrayAttrib:= dglGetProcAddress('glDisableVertexArrayAttrib');
16945   glEnableVertexArrayAttrib:= dglGetProcAddress('glEnableVertexArrayAttrib');
16946   glVertexArrayElementBuffer:= dglGetProcAddress('glVertexArrayElementBuffer');
16947   glVertexArrayVertexBuffer:= dglGetProcAddress('glVertexArrayVertexBuffer');
16948   glVertexArrayVertexBuffers:= dglGetProcAddress('glVertexArrayVertexBuffers');
16949   glVertexArrayAttribBinding:= dglGetProcAddress('glVertexArrayAttribBinding');
16950   glVertexArrayAttribFormat:= dglGetProcAddress('glVertexArrayAttribFormat');
16951   glVertexArrayAttribIFormat:= dglGetProcAddress('glVertexArrayAttribIFormat');
16952   glVertexArrayAttribLFormat:= dglGetProcAddress('glVertexArrayAttribLFormat');
16953   glVertexArrayBindingDivisor:= dglGetProcAddress('glVertexArrayBindingDivisor');
16954   glGetVertexArrayiv:= dglGetProcAddress('glGetVertexArrayiv');
16955   glGetVertexArrayIndexediv:= dglGetProcAddress('glGetVertexArrayIndexediv');
16956   glGetVertexArrayIndexed64iv:= dglGetProcAddress('glGetVertexArrayIndexed64iv');
16957   glCreateSamplers:= dglGetProcAddress('glCreateSamplers');
16958   glCreateProgramPipelines:= dglGetProcAddress('glCreateProgramPipelines');
16959   glCreateQueries:= dglGetProcAddress('glCreateQueries');
16960   glMemoryBarrierByRegion:= dglGetProcAddress('glMemoryBarrierByRegion');
16961   glGetTextureSubImage:= dglGetProcAddress('glGetTextureSubImage');
16962   glGetCompressedTextureSubImage:= dglGetProcAddress('glGetCompressedTextureSubImage');
16963   glGetGraphicsResetStatus:= dglGetProcAddress('glGetGraphicsResetStatus');
16964   glGetnCompressedTexImage:= dglGetProcAddress('glGetnCompressedTexImage');
16965   glGetnTexImage:= dglGetProcAddress('glGetnTexImage');
16966   glGetnUniformdv:= dglGetProcAddress('glGetnUniformdv');
16967   glGetnUniformfv:= dglGetProcAddress('glGetnUniformfv');
16968   glGetnUniformiv:= dglGetProcAddress('glGetnUniformiv');
16969   glGetnUniformuiv:= dglGetProcAddress('glGetnUniformuiv');
16970   glReadnPixels:= dglGetProcAddress('glReadnPixels');
16971   glGetnMapdv:= dglGetProcAddress('glGetnMapdv');
16972   glGetnMapfv:= dglGetProcAddress('glGetnMapfv');
16973   glGetnMapiv:= dglGetProcAddress('glGetnMapiv');
16974   glGetnPixelMapfv:= dglGetProcAddress('glGetnPixelMapfv');
16975   glGetnPixelMapuiv:= dglGetProcAddress('glGetnPixelMapuiv');
16976   glGetnPixelMapusv:= dglGetProcAddress('glGetnPixelMapusv');
16977   glGetnPolygonStipple:= dglGetProcAddress('glGetnPolygonStipple');
16978   glGetnColorTable:= dglGetProcAddress('glGetnColorTable');
16979   glGetnConvolutionFilter:= dglGetProcAddress('glGetnConvolutionFilter');
16980   glGetnSeparableFilter:= dglGetProcAddress('glGetnSeparableFilter');
16981   glGetnHistogram:= dglGetProcAddress('glGetnHistogram');
16982   glGetnMinmax:= dglGetProcAddress('glGetnMinmax');
16983   glTextureBarrier:= dglGetProcAddress('glTextureBarrier');
16984 end;
16985
16986 procedure Read_GL_NV_path_rendering;
16987 begin
16988   glGenPathsNV := dglGetProcAddress('glGenPathsNV');
16989   glDeletePathsNV := dglGetProcAddress('glDeletePathsNV');
16990   glIsPathNV := dglGetProcAddress('glIsPathNV');
16991   glPathCommandsNV := dglGetProcAddress('glPathCommandsNV');
16992   glPathCoordsNV := dglGetProcAddress('glPathCoordsNV');
16993   glPathSubCommandsNV := dglGetProcAddress('glPathSubCommandsNV');
16994   glPathSubCoordsNV := dglGetProcAddress('glPathSubCoordsNV');
16995   glPathStringNV := dglGetProcAddress('glPathStringNV');
16996   glPathGlyphsNV := dglGetProcAddress('glPathGlyphsNV');
16997   glPathGlyphRangeNV := dglGetProcAddress('glPathGlyphRangeNV');
16998   glWeightPathsNV := dglGetProcAddress('glWeightPathsNV');
16999   glCopyPathNV := dglGetProcAddress('glCopyPathNV');
17000   glInterpolatePathsNV := dglGetProcAddress('glInterpolatePathsNV');
17001   glTransformPathNV := dglGetProcAddress('glTransformPathNV');
17002   glPathParameterivNV := dglGetProcAddress('glPathParameterivNV');
17003   glPathParameteriNV := dglGetProcAddress('glPathParameteriNV');
17004   glPathParameterfvNV := dglGetProcAddress('glPathParameterfvNV');
17005   glPathParameterfNV := dglGetProcAddress('glPathParameterfNV');
17006   glPathDashArrayNV := dglGetProcAddress('glPathDashArrayNV');
17007   glPathStencilFuncNV := dglGetProcAddress('glPathStencilFuncNV');
17008   glPathStencilDepthOffsetNV := dglGetProcAddress('glPathStencilDepthOffsetNV');
17009   glStencilFillPathNV := dglGetProcAddress('glStencilFillPathNV');
17010   glStencilStrokePathNV := dglGetProcAddress('glStencilStrokePathNV');
17011   glStencilFillPathInstancedNV := dglGetProcAddress('glStencilFillPathInstancedNV');
17012   glStencilStrokePathInstancedNV := dglGetProcAddress('glStencilStrokePathInstancedNV');
17013   glPathCoverDepthFuncNV := dglGetProcAddress('glPathCoverDepthFuncNV');
17014   glPathColorGenNV := dglGetProcAddress('glPathColorGenNV');
17015   glPathTexGenNV := dglGetProcAddress('glPathTexGenNV');
17016   glPathFogGenNV := dglGetProcAddress('glPathFogGenNV');
17017   glCoverFillPathNV := dglGetProcAddress('glCoverFillPathNV');
17018   glCoverStrokePathNV := dglGetProcAddress('glCoverStrokePathNV');
17019   glCoverFillPathInstancedNV := dglGetProcAddress('glCoverFillPathInstancedNV');
17020   glCoverStrokePathInstancedNV := dglGetProcAddress('glCoverStrokePathInstancedNV');
17021   glGetPathParameterivNV := dglGetProcAddress('glGetPathParameterivNV');
17022   glGetPathParameterfvNV := dglGetProcAddress('glGetPathParameterfvNV');
17023   glGetPathCommandsNV := dglGetProcAddress('glGetPathCommandsNV');
17024   glGetPathCoordsNV := dglGetProcAddress('glGetPathCoordsNV');
17025   glGetPathDashArrayNV := dglGetProcAddress('glGetPathDashArrayNV');
17026   glGetPathMetricsNV := dglGetProcAddress('glGetPathMetricsNV');
17027   glGetPathMetricRangeNV := dglGetProcAddress('glGetPathMetricRangeNV');
17028   glGetPathSpacingNV := dglGetProcAddress('glGetPathSpacingNV');
17029   glGetPathColorGenivNV := dglGetProcAddress('glGetPathColorGenivNV');
17030   glGetPathColorGenfvNV := dglGetProcAddress('glGetPathColorGenfvNV');
17031   glGetPathTexGenivNV := dglGetProcAddress('glGetPathTexGenivNV');
17032   glGetPathTexGenfvNV := dglGetProcAddress('glGetPathTexGenfvNV');
17033   glIsPointInFillPathNV := dglGetProcAddress('glIsPointInFillPathNV');
17034   glIsPointInStrokePathNV := dglGetProcAddress('glIsPointInStrokePathNV');
17035   glGetPathLengthNV := dglGetProcAddress('glGetPathLengthNV');
17036   glPointAlongPathNV := dglGetProcAddress('glPointAlongPathNV');
17037 end;
17038
17039 procedure Read_GL_AMD_stencil_operation_extended;
17040 begin
17041         glStencilOpValueAMD := dglGetProcAddress('glStencilOpValueAMD');
17042 end;
17043
17044 procedure Read_GL_NV_bindless_texture;
17045 begin
17046   glGetTextureHandleNV := dglGetProcAddress('glGetTextureHandleNV');
17047   glGetTextureSamplerHandleNV := dglGetProcAddress('glGetTextureSamplerHandleNV');
17048   glMakeTextureHandleResidentNV := dglGetProcAddress('glMakeTextureHandleResidentNV');
17049   glMakeTextureHandleNonResidentNV := dglGetProcAddress('glMakeTextureHandleNonResidentNV');
17050   glGetImageHandleNV := dglGetProcAddress('glGetImageHandleNV');
17051   glMakeImageHandleResidentNV := dglGetProcAddress('glMakeImageHandleResidentNV');
17052   glMakeImageHandleNonResidentNV := dglGetProcAddress('glMakeImageHandleNonResidentNV');
17053   glUniformHandleui64NV := dglGetProcAddress('glUniformHandleui64NV');
17054   glUniformHandleui64vNV := dglGetProcAddress('glUniformHandleui64vNV');
17055   glProgramUniformHandleui64NV := dglGetProcAddress('glProgramUniformHandleui64NV');
17056   glProgramUniformHandleui64vNV := dglGetProcAddress('glProgramUniformHandleui64vNV');
17057   glIsTextureHandleResidentNV := dglGetProcAddress('glIsTextureHandleResidentNV');
17058   glIsImageHandleResidentNV := dglGetProcAddress('glIsImageHandleResidentNV');
17059 end;
17060
17061 procedure Read_GL_ARB_bindless_texture;
17062 begin
17063   glGetTextureHandleARB := dglGetProcAddress('TglGetTextureHandleARB');
17064   glGetTextureSamplerHandleARB := dglGetProcAddress('TglGetTextureSamplerHandleARB');
17065   glMakeTextureHandleResidentARB := dglGetProcAddress('TglMakeTextureHandleResidentARB');
17066   glMakeTextureHandleNonResidentARB := dglGetProcAddress('TglMakeTextureHandleNonResidentARB');
17067   glGetImageHandleARB := dglGetProcAddress('TglGetImageHandleARB');
17068   glMakeImageHandleResidentARB := dglGetProcAddress('TglMakeImageHandleResidentARB');
17069   glMakeImageHandleNonResidentARB := dglGetProcAddress('TglMakeImageHandleNonResidentARB');
17070   glUniformHandleui64ARB := dglGetProcAddress('TglUniformHandleui64ARB');
17071   glUniformHandleui64vARB := dglGetProcAddress('TglUniformHandleui64vARB');
17072   glProgramUniformHandleui64ARB := dglGetProcAddress('TglProgramUniformHandleui64ARB');
17073   glProgramUniformHandleui64vARB := dglGetProcAddress('TglProgramUniformHandleui64vARB');
17074   glIsTextureHandleResidentARB := dglGetProcAddress('TglIsTextureHandleResidentARB');
17075   glIsImageHandleResidentARB := dglGetProcAddress('TglIsImageHandleResidentARB');
17076   glVertexAttribL1ui64ARB := dglGetProcAddress('TglVertexAttribL1ui64ARB');
17077   glVertexAttribL1ui64vARB := dglGetProcAddress('TglVertexAttribL1ui64vARB');
17078   glGetVertexAttribLui64vARB := dglGetProcAddress('TglGetVertexAttribLui64vARB');
17079 end;
17080
17081 procedure Read_GL_ARB_cl_event;
17082 begin
17083   glCreateSyncFromCLeventARB := dglGetProcAddress('glCreateSyncFromCLeventARB');
17084 end;
17085
17086 procedure Read_GL_ARB_debug_output;
17087 begin
17088   glDebugMessageControlARB := dglGetProcAddress('glDebugMessageControlARB');
17089   glDebugMessageInsertARB := dglGetProcAddress('glDebugMessageInsertARB');
17090   glDebugMessageCallbackARB := dglGetProcAddress('glDebugMessageCallbackARB');
17091   glGetDebugMessageLogARB := dglGetProcAddress('glGetDebugMessageLogARB');
17092 end;
17093
17094 procedure Read_GL_ARB_robustness;
17095 begin
17096   glGetGraphicsResetStatusARB := dglGetProcAddress('glGetGraphicsResetStatusARB');
17097   glGetnMapdvARB := dglGetProcAddress('glGetnMapdvARB');
17098   glGetnMapfvARB := dglGetProcAddress('glGetnMapfvARB');
17099   glGetnMapivARB := dglGetProcAddress('glGetnMapivARB');
17100   glGetnPixelMapfvARB := dglGetProcAddress('glGetnPixelMapfvARB');
17101   glGetnPixelMapuivARB := dglGetProcAddress('glGetnPixelMapuivARB');
17102   glGetnPixelMapusvARB := dglGetProcAddress('glGetnPixelMapusvARB');
17103   glGetnPolygonStippleARB := dglGetProcAddress('glGetnPolygonStippleARB');
17104   glGetnColorTableARB := dglGetProcAddress('glGetnColorTableARB');
17105   glGetnConvolutionFilterARB := dglGetProcAddress('glGetnConvolutionFilterARB');
17106   glGetnSeparableFilterARB := dglGetProcAddress('glGetnSeparableFilterARB');
17107   glGetnHistogramARB := dglGetProcAddress('glGetnHistogramARB');
17108   glGetnMinmaxARB := dglGetProcAddress('glGetnMinmaxARB');
17109   glGetnTexImageARB := dglGetProcAddress('glGetnTexImageARB');
17110   glReadnPixelsARB := dglGetProcAddress('glReadnPixelsARB');
17111   glGetnCompressedTexImageARB := dglGetProcAddress('glGetnCompressedTexImageARB');
17112   glGetnUniformfvARB := dglGetProcAddress('glGetnUniformfvARB');
17113   glGetnUniformivARB := dglGetProcAddress('glGetnUniformivARB');
17114   glGetnUniformuivARB := dglGetProcAddress('glGetnUniformuivARB');
17115   glGetnUniformdvARB := dglGetProcAddress('glGetnUniformdvARB');
17116 end;
17117
17118 procedure Read_GL_ATI_draw_buffers;
17119 begin
17120   glDrawBuffersATI := dglGetProcAddress('glDrawBuffersATI');
17121 end;
17122
17123 procedure Read_GL_ATI_element_array;
17124 begin
17125   glElementPointerATI := dglGetProcAddress('glElementPointerATI');
17126   glDrawElementArrayATI := dglGetProcAddress('glDrawElementArrayATI');
17127   glDrawRangeElementArrayATI := dglGetProcAddress('glDrawRangeElementArrayATI');
17128 end;
17129
17130 procedure Read_GL_ATI_envmap_bumpmap;
17131 begin
17132   glTexBumpParameterivATI := dglGetProcAddress('glTexBumpParameterivATI');
17133   glTexBumpParameterfvATI := dglGetProcAddress('glTexBumpParameterfvATI');
17134   glGetTexBumpParameterivATI := dglGetProcAddress('glGetTexBumpParameterivATI');
17135   glGetTexBumpParameterfvATI := dglGetProcAddress('glGetTexBumpParameterfvATI');
17136 end;
17137
17138 procedure Read_GL_ATI_fragment_shader;
17139 begin
17140   glGenFragmentShadersATI := dglGetProcAddress('glGenFragmentShadersATI');
17141   glBindFragmentShaderATI := dglGetProcAddress('glBindFragmentShaderATI');
17142   glDeleteFragmentShaderATI := dglGetProcAddress('glDeleteFragmentShaderATI');
17143   glBeginFragmentShaderATI := dglGetProcAddress('glBeginFragmentShaderATI');
17144   glEndFragmentShaderATI := dglGetProcAddress('glEndFragmentShaderATI');
17145   glPassTexCoordATI := dglGetProcAddress('glPassTexCoordATI');
17146   glSampleMapATI := dglGetProcAddress('glSampleMapATI');
17147   glColorFragmentOp1ATI := dglGetProcAddress('glColorFragmentOp1ATI');
17148   glColorFragmentOp2ATI := dglGetProcAddress('glColorFragmentOp2ATI');
17149   glColorFragmentOp3ATI := dglGetProcAddress('glColorFragmentOp3ATI');
17150   glAlphaFragmentOp1ATI := dglGetProcAddress('glAlphaFragmentOp1ATI');
17151   glAlphaFragmentOp2ATI := dglGetProcAddress('glAlphaFragmentOp2ATI');
17152   glAlphaFragmentOp3ATI := dglGetProcAddress('glAlphaFragmentOp3ATI');
17153   glSetFragmentShaderConstantATI := dglGetProcAddress('glSetFragmentShaderConstantATI');
17154 end;
17155
17156 procedure Read_GL_ATI_map_object_buffer;
17157 begin
17158   glMapObjectBufferATI := dglGetProcAddress('glMapObjectBufferATI');
17159   glUnmapObjectBufferATI := dglGetProcAddress('glUnmapObjectBufferATI');
17160 end;
17161
17162 procedure Read_GL_ATI_pn_triangles;
17163 begin
17164   glPNTrianglesiATI := dglGetProcAddress('glPNTrianglesiATI');
17165   glPNTrianglesfATI := dglGetProcAddress('glPNTrianglesfATI');
17166 end;
17167
17168 procedure Read_GL_ATI_separate_stencil;
17169 begin
17170   glStencilOpSeparateATI := dglGetProcAddress('glStencilOpSeparateATI');
17171   glStencilFuncSeparateATI := dglGetProcAddress('glStencilFuncSeparateATI');
17172 end;
17173
17174 procedure Read_GL_ATI_vertex_array_object;
17175 begin
17176   glNewObjectBufferATI := dglGetProcAddress('glNewObjectBufferATI');
17177   glIsObjectBufferATI := dglGetProcAddress('glIsObjectBufferATI');
17178   glUpdateObjectBufferATI := dglGetProcAddress('glUpdateObjectBufferATI');
17179   glGetObjectBufferfvATI := dglGetProcAddress('glGetObjectBufferfvATI');
17180   glGetObjectBufferivATI := dglGetProcAddress('glGetObjectBufferivATI');
17181   glFreeObjectBufferATI := dglGetProcAddress('glFreeObjectBufferATI');
17182   glArrayObjectATI := dglGetProcAddress('glArrayObjectATI');
17183   glGetArrayObjectfvATI := dglGetProcAddress('glGetArrayObjectfvATI');
17184   glGetArrayObjectivATI := dglGetProcAddress('glGetArrayObjectivATI');
17185   glVariantArrayObjectATI := dglGetProcAddress('glVariantArrayObjectATI');
17186   glGetVariantArrayObjectfvATI := dglGetProcAddress('glGetVariantArrayObjectfvATI');
17187   glGetVariantArrayObjectivATI := dglGetProcAddress('glGetVariantArrayObjectivATI');
17188
17189 end;
17190
17191 procedure Read_GL_ATI_vertex_attrib_array_object;
17192 begin
17193   glVertexAttribArrayObjectATI := dglGetProcAddress('glVertexAttribArrayObjectATI');
17194   glGetVertexAttribArrayObjectfvATI := dglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
17195   glGetVertexAttribArrayObjectivATI := dglGetProcAddress('glGetVertexAttribArrayObjectivATI');
17196 end;
17197
17198 procedure Read_GL_ATI_vertex_streams;
17199 begin
17200   glVertexStream1sATI := dglGetProcAddress('glVertexStream1sATI');
17201   glVertexStream1svATI := dglGetProcAddress('glVertexStream1svATI');
17202   glVertexStream1iATI := dglGetProcAddress('glVertexStream1iATI');
17203   glVertexStream1ivATI := dglGetProcAddress('glVertexStream1ivATI');
17204   glVertexStream1fATI := dglGetProcAddress('glVertexStream1fATI');
17205   glVertexStream1fvATI := dglGetProcAddress('glVertexStream1fvATI');
17206   glVertexStream1dATI := dglGetProcAddress('glVertexStream1dATI');
17207   glVertexStream1dvATI := dglGetProcAddress('glVertexStream1dvATI');
17208   glVertexStream2sATI := dglGetProcAddress('glVertexStream2sATI');
17209   glVertexStream2svATI := dglGetProcAddress('glVertexStream2svATI');
17210   glVertexStream2iATI := dglGetProcAddress('glVertexStream2iATI');
17211   glVertexStream2ivATI := dglGetProcAddress('glVertexStream2ivATI');
17212   glVertexStream2fATI := dglGetProcAddress('glVertexStream2fATI');
17213   glVertexStream2fvATI := dglGetProcAddress('glVertexStream2fvATI');
17214   glVertexStream2dATI := dglGetProcAddress('glVertexStream2dATI');
17215   glVertexStream2dvATI := dglGetProcAddress('glVertexStream2dvATI');
17216   glVertexStream3sATI := dglGetProcAddress('glVertexStream3sATI');
17217   glVertexStream3svATI := dglGetProcAddress('glVertexStream3svATI');
17218   glVertexStream3iATI := dglGetProcAddress('glVertexStream3iATI');
17219   glVertexStream3ivATI := dglGetProcAddress('glVertexStream3ivATI');
17220   glVertexStream3fATI := dglGetProcAddress('glVertexStream3fATI');
17221   glVertexStream3fvATI := dglGetProcAddress('glVertexStream3fvATI');
17222   glVertexStream3dATI := dglGetProcAddress('glVertexStream3dATI');
17223   glVertexStream3dvATI := dglGetProcAddress('glVertexStream3dvATI');
17224   glVertexStream4sATI := dglGetProcAddress('glVertexStream4sATI');
17225   glVertexStream4svATI := dglGetProcAddress('glVertexStream4svATI');
17226   glVertexStream4iATI := dglGetProcAddress('glVertexStream4iATI');
17227   glVertexStream4ivATI := dglGetProcAddress('glVertexStream4ivATI');
17228   glVertexStream4fATI := dglGetProcAddress('glVertexStream4fATI');
17229   glVertexStream4fvATI := dglGetProcAddress('glVertexStream4fvATI');
17230   glVertexStream4dATI := dglGetProcAddress('glVertexStream4dATI');
17231   glVertexStream4dvATI := dglGetProcAddress('glVertexStream4dvATI');
17232   glNormalStream3bATI := dglGetProcAddress('glNormalStream3bATI');
17233   glNormalStream3bvATI := dglGetProcAddress('glNormalStream3bvATI');
17234   glNormalStream3sATI := dglGetProcAddress('glNormalStream3sATI');
17235   glNormalStream3svATI := dglGetProcAddress('glNormalStream3svATI');
17236   glNormalStream3iATI := dglGetProcAddress('glNormalStream3iATI');
17237   glNormalStream3ivATI := dglGetProcAddress('glNormalStream3ivATI');
17238   glNormalStream3fATI := dglGetProcAddress('glNormalStream3fATI');
17239   glNormalStream3fvATI := dglGetProcAddress('glNormalStream3fvATI');
17240   glNormalStream3dATI := dglGetProcAddress('glNormalStream3dATI');
17241   glNormalStream3dvATI := dglGetProcAddress('glNormalStream3dvATI');
17242   glClientActiveVertexStreamATI := dglGetProcAddress('glClientActiveVertexStreamATI');
17243   glVertexBlendEnviATI := dglGetProcAddress('glVertexBlendEnviATI');
17244   glVertexBlendEnvfATI := dglGetProcAddress('glVertexBlendEnvfATI');
17245 end;
17246
17247 procedure Read_GL_AMD_performance_monitor;
17248 begin
17249   glGetPerfMonitorGroupsAMD := dglGetProcAddress('glGetPerfMonitorGroupsAMD');
17250   glGetPerfMonitorCountersAMD := dglGetProcAddress('glGetPerfMonitorCountersAMD');
17251   glGetPerfMonitorGroupStringAMD := dglGetProcAddress('glGetPerfMonitorGroupStringAMD');
17252   glGetPerfMonitorCounterStringAMD := dglGetProcAddress('glGetPerfMonitorCounterStringAMD');
17253   glGetPerfMonitorCounterInfoAMD := dglGetProcAddress('glGetPerfMonitorCounterInfoAMD');
17254   glGenPerfMonitorsAMD := dglGetProcAddress('glGenPerfMonitorsAMD');
17255   glDeletePerfMonitorsAMD := dglGetProcAddress('glDeletePerfMonitorsAMD');
17256   glSelectPerfMonitorCountersAMD := dglGetProcAddress('glSelectPerfMonitorCountersAMD');
17257   glBeginPerfMonitorAMD := dglGetProcAddress('glBeginPerfMonitorAMD');
17258   glEndPerfMonitorAMD := dglGetProcAddress('glEndPerfMonitorAMD');
17259   glGetPerfMonitorCounterDataAMD := dglGetProcAddress('glGetPerfMonitorCounterDataAMD');
17260 end;
17261
17262 procedure Read_GL_AMD_vertex_shader_tesselator;
17263 begin
17264   glTessellationFactorAMD := dglGetProcAddress('glTessellationFactorAMD');
17265   glTessellationModeAMD := dglGetProcAddress('glTessellationModeAMD');
17266 end;
17267
17268 procedure Read_GL_AMD_draw_buffers_blend;
17269 begin
17270   glBlendFuncIndexedAMD := dglGetProcAddress('glBlendFuncIndexedAMD');
17271   glBlendFuncSeparateIndexedAMD := dglGetProcAddress('glBlendFuncSeparateIndexedAMD');
17272   glBlendEquationIndexedAMD := dglGetProcAddress('glBlendEquationIndexedAMD');
17273   glBlendEquationSeparateIndexedAMD := dglGetProcAddress('glBlendEquationSeparateIndexedAMD');
17274 end;
17275
17276 procedure Read_GL_AMD_name_gen_delete;
17277 begin
17278   glGenNamesAMD := dglGetProcAddress('glGenNamesAMD');
17279   glDeleteNamesAMD := dglGetProcAddress('glDeleteNamesAMD');
17280   glIsNameAMD := dglGetProcAddress('glIsNameAMD');
17281 end;
17282
17283 procedure Read_GL_AMD_debug_output;
17284 begin
17285   glDebugMessageEnableAMD := dglGetProcAddress('glDebugMessageEnableAMD');
17286   glDebugMessageInsertAMD := dglGetProcAddress('glDebugMessageInsertAMD');
17287   glDebugMessageCallbackAMD := dglGetProcAddress('glDebugMessageCallbackAMD');
17288   glGetDebugMessageLogAMD := dglGetProcAddress('glGetDebugMessageLogAMD');
17289 end;
17290
17291 procedure Read_GL_EXT_blend_color;
17292 begin
17293   glBlendColorEXT := dglGetProcAddress('glBlendColorEXT');
17294 end;
17295
17296 procedure Read_GL_EXT_blend_func_separate;
17297 begin
17298   glBlendFuncSeparateEXT := dglGetProcAddress('glBlendFuncSeparateEXT');
17299 end;
17300
17301 procedure Read_GL_EXT_blend_minmax;
17302 begin
17303   glBlendEquationEXT := dglGetProcAddress('glBlendEquationEXT');
17304 end;
17305
17306 procedure Read_GL_EXT_color_subtable;
17307 begin
17308   glColorSubTableEXT := dglGetProcAddress('glColorSubTableEXT');
17309   glCopyColorSubTableEXT := dglGetProcAddress('glCopyColorSubTableEXT');
17310 end;
17311
17312 procedure Read_GL_EXT_compiled_vertex_array;
17313 begin
17314   glLockArraysEXT := dglGetProcAddress('glLockArraysEXT');
17315   glUnlockArraysEXT := dglGetProcAddress('glUnlockArraysEXT');
17316 end;
17317
17318 procedure Read_GL_EXT_convolution;
17319 begin
17320   glConvolutionFilter1DEXT := dglGetProcAddress('glConvolutionFilter1DEXT');
17321   glConvolutionFilter2DEXT := dglGetProcAddress('glConvolutionFilter2DEXT');
17322   glConvolutionParameterfEXT := dglGetProcAddress('glConvolutionParameterfEXT');
17323   glConvolutionParameterfvEXT := dglGetProcAddress('glConvolutionParameterfvEXT');
17324   glConvolutionParameteriEXT := dglGetProcAddress('glConvolutionParameteriEXT');
17325   glConvolutionParameterivEXT := dglGetProcAddress('glConvolutionParameterivEXT');
17326   glCopyConvolutionFilter1DEXT := dglGetProcAddress('glCopyConvolutionFilter1DEXT');
17327   glCopyConvolutionFilter2DEXT := dglGetProcAddress('glCopyConvolutionFilter2DEXT');
17328   glGetConvolutionFilterEXT := dglGetProcAddress('glGetConvolutionFilterEXT');
17329   glGetConvolutionParameterfvEXT := dglGetProcAddress('glGetConvolutionParameterfvEXT');
17330   glGetConvolutionParameterivEXT := dglGetProcAddress('glGetConvolutionParameterivEXT');
17331   glGetSeparableFilterEXT := dglGetProcAddress('glGetSeparableFilterEXT');
17332   glSeparableFilter2DEXT := dglGetProcAddress('glSeparableFilter2DEXT');
17333 end;
17334
17335 procedure Read_GL_EXT_coordinate_frame;
17336 begin
17337   glTangent3bEXT := dglGetProcAddress('glTangent3bEXT');
17338   glTangent3bvEXT := dglGetProcAddress('glTangent3bvEXT');
17339   glTangent3dEXT := dglGetProcAddress('glTangent3dEXT');
17340   glTangent3dvEXT := dglGetProcAddress('glTangent3dvEXT');
17341   glTangent3fEXT := dglGetProcAddress('glTangent3fEXT');
17342   glTangent3fvEXT := dglGetProcAddress('glTangent3fvEXT');
17343   glTangent3iEXT := dglGetProcAddress('glTangent3iEXT');
17344   glTangent3ivEXT := dglGetProcAddress('glTangent3ivEXT');
17345   glTangent3sEXT := dglGetProcAddress('glTangent3sEXT');
17346   glTangent3svEXT := dglGetProcAddress('glTangent3svEXT');
17347   glBinormal3bEXT := dglGetProcAddress('glBinormal3bEXT');
17348   glBinormal3bvEXT := dglGetProcAddress('glBinormal3bvEXT');
17349   glBinormal3dEXT := dglGetProcAddress('glBinormal3dEXT');
17350   glBinormal3dvEXT := dglGetProcAddress('glBinormal3dvEXT');
17351   glBinormal3fEXT := dglGetProcAddress('glBinormal3fEXT');
17352   glBinormal3fvEXT := dglGetProcAddress('glBinormal3fvEXT');
17353   glBinormal3iEXT := dglGetProcAddress('glBinormal3iEXT');
17354   glBinormal3ivEXT := dglGetProcAddress('glBinormal3ivEXT');
17355   glBinormal3sEXT := dglGetProcAddress('glBinormal3sEXT');
17356   glBinormal3svEXT := dglGetProcAddress('glBinormal3svEXT');
17357   glTangentPointerEXT := dglGetProcAddress('glTangentPointerEXT');
17358   glBinormalPointerEXT := dglGetProcAddress('glBinormalPointerEXT');
17359 end;
17360
17361 procedure Read_GL_EXT_copy_texture;
17362 begin
17363   glCopyTexImage1DEXT := dglGetProcAddress('glCopyTexImage1DEXT');
17364   glCopyTexImage2DEXT := dglGetProcAddress('glCopyTexImage2DEXT');
17365   glCopyTexSubImage1DEXT := dglGetProcAddress('glCopyTexSubImage1DEXT');
17366   glCopyTexSubImage2DEXT := dglGetProcAddress('glCopyTexSubImage2DEXT');
17367   glCopyTexSubImage3DEXT := dglGetProcAddress('glCopyTexSubImage3DEXT');
17368 end;
17369
17370 procedure Read_GL_EXT_cull_vertex;
17371 begin
17372   glCullParameterdvEXT := dglGetProcAddress('glCullParameterdvEXT');
17373   glCullParameterfvEXT := dglGetProcAddress('glCullParameterfvEXT');
17374 end;
17375
17376 procedure Read_GL_EXT_draw_range_elements;
17377 begin
17378   glDrawRangeElementsEXT := dglGetProcAddress('glDrawRangeElementsEXT');
17379 end;
17380
17381 procedure Read_GL_EXT_fog_coord;
17382 begin
17383   glFogCoordfEXT := dglGetProcAddress('glFogCoordfEXT');
17384   glFogCoordfvEXT := dglGetProcAddress('glFogCoordfvEXT');
17385   glFogCoorddEXT := dglGetProcAddress('glFogCoorddEXT');
17386   glFogCoorddvEXT := dglGetProcAddress('glFogCoorddvEXT');
17387   glFogCoordPointerEXT := dglGetProcAddress('glFogCoordPointerEXT');
17388 end;
17389
17390 procedure Read_GL_EXT_framebuffer_object;
17391 begin
17392   glIsRenderbufferEXT := dglGetProcAddress('glIsRenderbufferEXT');
17393   glBindRenderbufferEXT := dglGetProcAddress('glBindRenderbufferEXT');
17394   glDeleteRenderbuffersEXT := dglGetProcAddress('glDeleteRenderbuffersEXT');
17395   glGenRenderbuffersEXT := dglGetProcAddress('glGenRenderbuffersEXT');
17396   glRenderbufferStorageEXT := dglGetProcAddress('glRenderbufferStorageEXT');
17397   glGetRenderbufferParameterivEXT := dglGetProcAddress('glGetRenderbufferParameterivEXT');
17398   glIsFramebufferEXT := dglGetProcAddress('glIsFramebufferEXT');
17399   glBindFramebufferEXT := dglGetProcAddress('glBindFramebufferEXT');
17400   glDeleteFramebuffersEXT := dglGetProcAddress('glDeleteFramebuffersEXT');
17401   glGenFramebuffersEXT := dglGetProcAddress('glGenFramebuffersEXT');
17402   glCheckFramebufferStatusEXT := dglGetProcAddress('glCheckFramebufferStatusEXT');
17403   glFramebufferTexture1DEXT := dglGetProcAddress('glFramebufferTexture1DEXT');
17404   glFramebufferTexture2DEXT := dglGetProcAddress('glFramebufferTexture2DEXT');
17405   glFramebufferTexture3DEXT := dglGetProcAddress('glFramebufferTexture3DEXT');
17406   glFramebufferRenderbufferEXT := dglGetProcAddress('glFramebufferRenderbufferEXT');
17407   glGetFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
17408   glGenerateMipmapEXT := dglGetProcAddress('glGenerateMipmapEXT');
17409 end;
17410
17411 procedure Read_GL_EXT_histogram;
17412 begin
17413   glGetHistogramEXT := dglGetProcAddress('glGetHistogramEXT');
17414   glGetHistogramParameterfvEXT := dglGetProcAddress('glGetHistogramParameterfvEXT');
17415   glGetHistogramParameterivEXT := dglGetProcAddress('glGetHistogramParameterivEXT');
17416   glGetMinmaxEXT := dglGetProcAddress('glGetMinmaxEXT');
17417   glGetMinmaxParameterfvEXT := dglGetProcAddress('glGetMinmaxParameterfvEXT');
17418   glGetMinmaxParameterivEXT := dglGetProcAddress('glGetMinmaxParameterivEXT');
17419   glHistogramEXT := dglGetProcAddress('glHistogramEXT');
17420   glMinmaxEXT := dglGetProcAddress('glMinmaxEXT');
17421   glResetHistogramEXT := dglGetProcAddress('glResetHistogramEXT');
17422   glResetMinmaxEXT := dglGetProcAddress('glResetMinmaxEXT');
17423 end;
17424
17425 procedure Read_GL_EXT_index_func;
17426 begin
17427   glIndexFuncEXT := dglGetProcAddress('glIndexFuncEXT');
17428 end;
17429
17430 procedure Read_GL_EXT_index_material;
17431 begin
17432   glIndexMaterialEXT := dglGetProcAddress('glIndexMaterialEXT');
17433 end;
17434
17435 procedure Read_GL_EXT_light_texture;
17436 begin
17437   glApplyTextureEXT := dglGetProcAddress('glApplyTextureEXT');
17438   glTextureLightEXT := dglGetProcAddress('glTextureLightEXT');
17439   glTextureMaterialEXT := dglGetProcAddress('glTextureMaterialEXT');
17440 end;
17441
17442 procedure Read_GL_EXT_multi_draw_arrays;
17443 begin
17444   glMultiDrawArraysEXT := dglGetProcAddress('glMultiDrawArraysEXT');
17445   glMultiDrawElementsEXT := dglGetProcAddress('glMultiDrawElementsEXT');
17446 end;
17447
17448 procedure Read_GL_EXT_multisample;
17449 begin
17450   glSampleMaskEXT := dglGetProcAddress('glSampleMaskEXT');
17451   glSamplePatternEXT := dglGetProcAddress('glSamplePatternEXT');
17452 end;
17453
17454 procedure Read_GL_EXT_paletted_texture;
17455 begin
17456   glColorTableEXT := dglGetProcAddress('glColorTableEXT');
17457   glGetColorTableEXT := dglGetProcAddress('glGetColorTableEXT');
17458   glGetColorTableParameterivEXT := dglGetProcAddress('glGetColorTableParameterivEXT');
17459   glGetColorTableParameterfvEXT := dglGetProcAddress('glGetColorTableParameterfvEXT');
17460 end;
17461
17462 procedure Read_GL_EXT_pixel_transform;
17463 begin
17464   glPixelTransformParameteriEXT := dglGetProcAddress('glPixelTransformParameteriEXT');
17465   glPixelTransformParameterfEXT := dglGetProcAddress('glPixelTransformParameterfEXT');
17466   glPixelTransformParameterivEXT := dglGetProcAddress('glPixelTransformParameterivEXT');
17467   glPixelTransformParameterfvEXT := dglGetProcAddress('glPixelTransformParameterfvEXT');
17468 end;
17469
17470 procedure Read_GL_EXT_point_parameters;
17471 begin
17472   glPointParameterfEXT := dglGetProcAddress('glPointParameterfEXT');
17473   glPointParameterfvEXT := dglGetProcAddress('glPointParameterfvEXT');
17474 end;
17475
17476 procedure Read_GL_EXT_polygon_offset;
17477 begin
17478   glPolygonOffsetEXT := dglGetProcAddress('glPolygonOffsetEXT');
17479 end;
17480
17481 procedure Read_GL_EXT_secondary_color;
17482 begin
17483   glSecondaryColor3bEXT := dglGetProcAddress('glSecondaryColor3bEXT');
17484   glSecondaryColor3bvEXT := dglGetProcAddress('glSecondaryColor3bvEXT');
17485   glSecondaryColor3dEXT := dglGetProcAddress('glSecondaryColor3dEXT');
17486   glSecondaryColor3dvEXT := dglGetProcAddress('glSecondaryColor3dvEXT');
17487   glSecondaryColor3fEXT := dglGetProcAddress('glSecondaryColor3fEXT');
17488   glSecondaryColor3fvEXT := dglGetProcAddress('glSecondaryColor3fvEXT');
17489   glSecondaryColor3iEXT := dglGetProcAddress('glSecondaryColor3iEXT');
17490   glSecondaryColor3ivEXT := dglGetProcAddress('glSecondaryColor3ivEXT');
17491   glSecondaryColor3sEXT := dglGetProcAddress('glSecondaryColor3sEXT');
17492   glSecondaryColor3svEXT := dglGetProcAddress('glSecondaryColor3svEXT');
17493   glSecondaryColor3ubEXT := dglGetProcAddress('glSecondaryColor3ubEXT');
17494   glSecondaryColor3ubvEXT := dglGetProcAddress('glSecondaryColor3ubvEXT');
17495   glSecondaryColor3uiEXT := dglGetProcAddress('glSecondaryColor3uiEXT');
17496   glSecondaryColor3uivEXT := dglGetProcAddress('glSecondaryColor3uivEXT');
17497   glSecondaryColor3usEXT := dglGetProcAddress('glSecondaryColor3usEXT');
17498   glSecondaryColor3usvEXT := dglGetProcAddress('glSecondaryColor3usvEXT');
17499   glSecondaryColorPointerEXT := dglGetProcAddress('glSecondaryColorPointerEXT');
17500 end;
17501
17502 procedure Read_GL_EXT_stencil_two_side;
17503 begin
17504   glActiveStencilFaceEXT := dglGetProcAddress('glActiveStencilFaceEXT');
17505 end;
17506
17507 procedure Read_GL_EXT_subtexture;
17508 begin
17509   glTexSubImage1DEXT := dglGetProcAddress('glTexSubImage1DEXT');
17510   glTexSubImage2DEXT := dglGetProcAddress('glTexSubImage2DEXT');
17511 end;
17512
17513 procedure Read_GL_EXT_texture3D;
17514 begin
17515   glTexImage3DEXT := dglGetProcAddress('glTexImage3DEXT');
17516   glTexSubImage3DEXT := dglGetProcAddress('glTexSubImage3DEXT');
17517 end;
17518
17519 procedure Read_GL_EXT_texture_object;
17520 begin
17521   glAreTexturesResidentEXT := dglGetProcAddress('glAreTexturesResidentEXT');
17522   glBindTextureEXT := dglGetProcAddress('glBindTextureEXT');
17523   glDeleteTexturesEXT := dglGetProcAddress('glDeleteTexturesEXT');
17524   glGenTexturesEXT := dglGetProcAddress('glGenTexturesEXT');
17525   glIsTextureEXT := dglGetProcAddress('glIsTextureEXT');
17526   glPrioritizeTexturesEXT := dglGetProcAddress('glPrioritizeTexturesEXT');
17527 end;
17528
17529 procedure Read_GL_EXT_texture_perturb_normal;
17530 begin
17531   glTextureNormalEXT := dglGetProcAddress('glTextureNormalEXT');
17532 end;
17533
17534 procedure Read_GL_EXT_vertex_array;
17535 begin
17536   glArrayElementEXT := dglGetProcAddress('glArrayElementEXT');
17537   glColorPointerEXT := dglGetProcAddress('glColorPointerEXT');
17538   glDrawArraysEXT := dglGetProcAddress('glDrawArraysEXT');
17539   glEdgeFlagPointerEXT := dglGetProcAddress('glEdgeFlagPointerEXT');
17540   glGetPointervEXT := dglGetProcAddress('glGetPointervEXT');
17541   glIndexPointerEXT := dglGetProcAddress('glIndexPointerEXT');
17542   glNormalPointerEXT := dglGetProcAddress('glNormalPointerEXT');
17543   glTexCoordPointerEXT := dglGetProcAddress('glTexCoordPointerEXT');
17544   glVertexPointerEXT := dglGetProcAddress('glVertexPointerEXT');
17545 end;
17546
17547 procedure Read_GL_EXT_vertex_shader;
17548 begin
17549   glBeginVertexShaderEXT := dglGetProcAddress('glBeginVertexShaderEXT');
17550   glEndVertexShaderEXT := dglGetProcAddress('glEndVertexShaderEXT');
17551   glBindVertexShaderEXT := dglGetProcAddress('glBindVertexShaderEXT');
17552   glGenVertexShadersEXT := dglGetProcAddress('glGenVertexShadersEXT');
17553   glDeleteVertexShaderEXT := dglGetProcAddress('glDeleteVertexShaderEXT');
17554   glShaderOp1EXT := dglGetProcAddress('glShaderOp1EXT');
17555   glShaderOp2EXT := dglGetProcAddress('glShaderOp2EXT');
17556   glShaderOp3EXT := dglGetProcAddress('glShaderOp3EXT');
17557   glSwizzleEXT := dglGetProcAddress('glSwizzleEXT');
17558   glWriteMaskEXT := dglGetProcAddress('glWriteMaskEXT');
17559   glInsertComponentEXT := dglGetProcAddress('glInsertComponentEXT');
17560   glExtractComponentEXT := dglGetProcAddress('glExtractComponentEXT');
17561   glGenSymbolsEXT := dglGetProcAddress('glGenSymbolsEXT');
17562   glSetInvariantEXT := dglGetProcAddress('glSetInvariantEXT');
17563   glSetLocalConstantEXT := dglGetProcAddress('glSetLocalConstantEXT');
17564   glVariantbvEXT := dglGetProcAddress('glVariantbvEXT');
17565   glVariantsvEXT := dglGetProcAddress('glVariantsvEXT');
17566   glVariantivEXT := dglGetProcAddress('glVariantivEXT');
17567   glVariantfvEXT := dglGetProcAddress('glVariantfvEXT');
17568   glVariantdvEXT := dglGetProcAddress('glVariantdvEXT');
17569   glVariantubvEXT := dglGetProcAddress('glVariantubvEXT');
17570   glVariantusvEXT := dglGetProcAddress('glVariantusvEXT');
17571   glVariantuivEXT := dglGetProcAddress('glVariantuivEXT');
17572   glVariantPointerEXT := dglGetProcAddress('glVariantPointerEXT');
17573   glEnableVariantClientStateEXT := dglGetProcAddress('glEnableVariantClientStateEXT');
17574   glDisableVariantClientStateEXT := dglGetProcAddress('glDisableVariantClientStateEXT');
17575   glBindLightParameterEXT := dglGetProcAddress('glBindLightParameterEXT');
17576   glBindMaterialParameterEXT := dglGetProcAddress('glBindMaterialParameterEXT');
17577   glBindTexGenParameterEXT := dglGetProcAddress('glBindTexGenParameterEXT');
17578   glBindTextureUnitParameterEXT := dglGetProcAddress('glBindTextureUnitParameterEXT');
17579   glBindParameterEXT := dglGetProcAddress('glBindParameterEXT');
17580   glIsVariantEnabledEXT := dglGetProcAddress('glIsVariantEnabledEXT');
17581   glGetVariantBooleanvEXT := dglGetProcAddress('glGetVariantBooleanvEXT');
17582   glGetVariantIntegervEXT := dglGetProcAddress('glGetVariantIntegervEXT');
17583   glGetVariantFloatvEXT := dglGetProcAddress('glGetVariantFloatvEXT');
17584   glGetVariantPointervEXT := dglGetProcAddress('glGetVariantPointervEXT');
17585   glGetInvariantBooleanvEXT := dglGetProcAddress('glGetInvariantBooleanvEXT');
17586   glGetInvariantIntegervEXT := dglGetProcAddress('glGetInvariantIntegervEXT');
17587   glGetInvariantFloatvEXT := dglGetProcAddress('glGetInvariantFloatvEXT');
17588   glGetLocalConstantBooleanvEXT := dglGetProcAddress('glGetLocalConstantBooleanvEXT');
17589   glGetLocalConstantIntegervEXT := dglGetProcAddress('glGetLocalConstantIntegervEXT');
17590   glGetLocalConstantFloatvEXT := dglGetProcAddress('glGetLocalConstantFloatvEXT');
17591 end;
17592
17593 procedure Read_GL_EXT_vertex_weighting;
17594 begin
17595   glVertexWeightfEXT := dglGetProcAddress('glVertexWeightfEXT');
17596   glVertexWeightfvEXT := dglGetProcAddress('glVertexWeightfvEXT');
17597   glVertexWeightPointerEXT := dglGetProcAddress('glVertexWeightPointerEXT');
17598 end;
17599
17600 procedure Read_GL_EXT_depth_bounds_test;
17601 begin
17602   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17603   glDepthBoundsEXT := dglGetProcAddress('glDepthBoundsEXT');
17604 end;
17605
17606 procedure Read_GL_EXT_blend_equation_separate;
17607 begin
17608   glBlendEquationSeparateEXT := dglGetProcAddress('glBlendEquationSeparateEXT');
17609 end;
17610
17611 procedure Read_GL_EXT_stencil_clear_tag;
17612 begin
17613   glStencilClearTagEXT := dglGetProcAddress('glStencilClearTagEXT');
17614 end;
17615
17616 procedure Read_GL_EXT_framebuffer_blit;
17617 begin
17618   glBlitFramebufferEXT := dglGetProcAddress('glBlitFramebufferEXT');
17619 end;
17620
17621 procedure Read_GL_EXT_framebuffer_multisample;
17622 begin
17623   glRenderbufferStorageMultisampleEXT := dglGetProcAddress('glRenderbufferStorageMultisampleEXT');
17624 end;
17625
17626 procedure Read_GL_EXT_timer_query;
17627 begin
17628   glGetQueryObjecti64vEXT := dglGetProcAddress('glGetQueryObjecti64vEXT');
17629   glGetQueryObjectui64vEXT := dglGetProcAddress('glGetQueryObjectui64vEXT');
17630 end;
17631
17632 procedure Read_GL_EXT_gpu_program_parameters;
17633 begin
17634   glProgramEnvParameters4fvEXT := dglGetProcAddress('glProgramEnvParameters4fvEXT');
17635   glProgramLocalParameters4fvEXT := dglGetProcAddress('glProgramLocalParameters4fvEXT');
17636 end;
17637
17638 procedure Read_GL_EXT_bindable_uniform;
17639 begin
17640   glUniformBufferEXT := dglGetProcAddress('glUniformBufferEXT');
17641   glGetUniformBufferSizeEXT := dglGetProcAddress('glGetUniformBufferSizeEXT');
17642   glGetUniformOffsetEXT := dglGetProcAddress('glGetUniformOffsetEXT');
17643 end;
17644
17645 procedure Read_GL_EXT_draw_buffers2;
17646 begin
17647   glColorMaskIndexedEXT := dglGetProcAddress('glColorMaskIndexedEXT');
17648   glGetBooleanIndexedvEXT := dglGetProcAddress('glGetBooleanIndexedvEXT');
17649   glGetIntegerIndexedvEXT := dglGetProcAddress('glGetIntegerIndexedvEXT');
17650   glEnableIndexedEXT := dglGetProcAddress('glEnableIndexedEXT');
17651   glDisableIndexedEXT := dglGetProcAddress('glDisableIndexedEXT');
17652   glIsEnabledIndexedEXT := dglGetProcAddress('glIsEnabledIndexedEXT');
17653 end;
17654
17655 procedure Read_GL_EXT_draw_instanced;
17656 begin
17657   glDrawArraysInstancedEXT := dglGetProcAddress('glDrawArraysInstancedEXT');
17658   glDrawElementsInstancedEXT := dglGetProcAddress('glDrawElementsInstancedEXT');
17659 end;
17660
17661 procedure Read_GL_EXT_geometry_shader4;
17662 begin
17663   glProgramParameteriEXT := dglGetProcAddress('glProgramParameteriEXT');
17664   glFramebufferTextureEXT := dglGetProcAddress('glFramebufferTextureEXT');
17665 //  glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17666   glFramebufferTextureFaceEXT := dglGetProcAddress('glFramebufferTextureFaceEXT');
17667 end;
17668
17669 procedure Read_GL_EXT_gpu_shader4;
17670 begin
17671   glVertexAttribI1iEXT := dglGetProcAddress('glVertexAttribI1iEXT');
17672   glVertexAttribI2iEXT := dglGetProcAddress('glVertexAttribI2iEXT');
17673   glVertexAttribI3iEXT := dglGetProcAddress('glVertexAttribI3iEXT');
17674   glVertexAttribI4iEXT := dglGetProcAddress('glVertexAttribI4iEXT');
17675   glVertexAttribI1uiEXT := dglGetProcAddress('glVertexAttribI1uiEXT');
17676   glVertexAttribI2uiEXT := dglGetProcAddress('glVertexAttribI2uiEXT');
17677   glVertexAttribI3uiEXT := dglGetProcAddress('glVertexAttribI3uiEXT');
17678   glVertexAttribI4uiEXT := dglGetProcAddress('glVertexAttribI4uiEXT');
17679   glVertexAttribI1ivEXT := dglGetProcAddress('glVertexAttribI1ivEXT');
17680   glVertexAttribI2ivEXT := dglGetProcAddress('glVertexAttribI2ivEXT');
17681   glVertexAttribI3ivEXT := dglGetProcAddress('glVertexAttribI3ivEXT');
17682   glVertexAttribI4ivEXT := dglGetProcAddress('glVertexAttribI4ivEXT');
17683   glVertexAttribI1uivEXT := dglGetProcAddress('glVertexAttribI1uivEXT');
17684   glVertexAttribI2uivEXT := dglGetProcAddress('glVertexAttribI2uivEXT');
17685   glVertexAttribI3uivEXT := dglGetProcAddress('glVertexAttribI3uivEXT');
17686   glVertexAttribI4uivEXT := dglGetProcAddress('glVertexAttribI4uivEXT');
17687   glVertexAttribI4bvEXT := dglGetProcAddress('glVertexAttribI4bvEXT');
17688   glVertexAttribI4svEXT := dglGetProcAddress('glVertexAttribI4svEXT');
17689   glVertexAttribI4ubvEXT := dglGetProcAddress('glVertexAttribI4ubvEXT');
17690   glVertexAttribI4usvEXT := dglGetProcAddress('glVertexAttribI4usvEXT');
17691   glVertexAttribIPointerEXT := dglGetProcAddress('glVertexAttribIPointerEXT');
17692   glGetVertexAttribIivEXT := dglGetProcAddress('glGetVertexAttribIivEXT');
17693   glGetVertexAttribIuivEXT := dglGetProcAddress('glGetVertexAttribIuivEXT');
17694   glUniform1uiEXT := dglGetProcAddress('glUniform1uiEXT');
17695   glUniform2uiEXT := dglGetProcAddress('glUniform2uiEXT');
17696   glUniform3uiEXT := dglGetProcAddress('glUniform3uiEXT');
17697   glUniform4uiEXT := dglGetProcAddress('glUniform4uiEXT');
17698   glUniform1uivEXT := dglGetProcAddress('glUniform1uivEXT');
17699   glUniform2uivEXT := dglGetProcAddress('glUniform2uivEXT');
17700   glUniform3uivEXT := dglGetProcAddress('glUniform3uivEXT');
17701   glUniform4uivEXT := dglGetProcAddress('glUniform4uivEXT');
17702   glGetUniformuivEXT := dglGetProcAddress('glGetUniformuivEXT');
17703   glBindFragDataLocationEXT := dglGetProcAddress('glBindFragDataLocationEXT');
17704   glGetFragDataLocationEXT := dglGetProcAddress('glGetFragDataLocationEXT');
17705 end;
17706
17707 procedure Read_GL_EXT_texture_array;
17708 begin
17709   glFramebufferTextureLayerEXT := dglGetProcAddress('glFramebufferTextureLayerEXT');
17710 end;
17711
17712 procedure Read_GL_EXT_texture_buffer_object;
17713 begin
17714   glTexBufferEXT := dglGetProcAddress('glTexBufferEXT');
17715 end;
17716
17717 procedure Read_GL_EXT_texture_integer;
17718 begin
17719   glClearColorIiEXT := dglGetProcAddress('glClearColorIiEXT');
17720   glClearColorIuiEXT := dglGetProcAddress('glClearColorIuiEXT');
17721   glTexParameterIivEXT := dglGetProcAddress('glTexParameterIivEXT');
17722   glTexParameterIuivEXT := dglGetProcAddress('glTexParameterIuivEXT');
17723   glGetTexParameterIivEXT := dglGetProcAddress('glGetTexParameterIivEXT');
17724   glGetTexParameterIiuvEXT := dglGetProcAddress('glGetTexParameterIiuvEXT');
17725 end;
17726
17727 procedure Read_GL_EXT_transform_feedback;
17728 begin
17729   glBeginTransformFeedbackEXT := dglGetProcAddress('lBeginTransformFeedbackEXT');
17730   glEndTransformFeedbackEXT := dglGetProcAddress('glEndTransformFeedbackEXT');
17731   glBindBufferRangeEXT := dglGetProcAddress('glBindBufferRangeEXT');
17732   glBindBufferOffsetEXT := dglGetProcAddress('glBindBufferOffsetEXT');
17733   glBindBufferBaseEXT := dglGetProcAddress('glBindBufferBaseEXT');
17734   glTransformFeedbackVaryingsEXT := dglGetProcAddress('glTransformFeedbackVaryingsEXT');
17735   glGetTransformFeedbackVaryingEXT := dglGetProcAddress('glGetTransformFeedbackVaryingEXT');
17736 end;
17737
17738 procedure Read_GL_EXT_direct_state_access;
17739 begin
17740   glClientAttribDefaultEXT := dglGetProcAddress('glClientAttribDefaultEXT');
17741   glPushClientAttribDefaultEXT := dglGetProcAddress('glPushClientAttribDefaultEXT');
17742   glMatrixLoadfEXT := dglGetProcAddress('glMatrixLoadfEXT');
17743   glMatrixLoaddEXT := dglGetProcAddress('glMatrixLoaddEXT');
17744   glMatrixMultfEXT := dglGetProcAddress('glMatrixMultfEXT');
17745   glMatrixMultdEXT := dglGetProcAddress('glMatrixMultdEXT');
17746   glMatrixLoadIdentityEXT := dglGetProcAddress('glMatrixLoadIdentityEXT');
17747   glMatrixRotatefEXT := dglGetProcAddress('glMatrixRotatefEXT');
17748   glMatrixRotatedEXT := dglGetProcAddress('glMatrixRotatedEXT');
17749   glMatrixScalefEXT := dglGetProcAddress('glMatrixScalefEXT');
17750   glMatrixScaledEXT := dglGetProcAddress('glMatrixScaledEXT');
17751   glMatrixTranslatefEXT := dglGetProcAddress('glMatrixTranslatefEXT');
17752   glMatrixTranslatedEXT := dglGetProcAddress('glMatrixTranslatedEXT');
17753   glMatrixFrustumEXT := dglGetProcAddress('glMatrixFrustumEXT');
17754   glMatrixOrthoEXT := dglGetProcAddress('glMatrixOrthoEXT');
17755   glMatrixPopEXT := dglGetProcAddress('glMatrixPopEXT');
17756   glMatrixPushEXT := dglGetProcAddress('glMatrixPushEXT');
17757   glMatrixLoadTransposefEXT := dglGetProcAddress('glMatrixLoadTransposefEXT');
17758   glMatrixLoadTransposedEXT := dglGetProcAddress('glMatrixLoadTransposedEXT');
17759   glMatrixMultTransposefEXT := dglGetProcAddress('glMatrixMultTransposefEXT');
17760   glMatrixMultTransposedEXT := dglGetProcAddress('glMatrixMultTransposedEXT');
17761   glTextureParameterfEXT := dglGetProcAddress('glTextureParameterfEXT');
17762   glTextureParameterfvEXT := dglGetProcAddress('glTextureParameterfvEXT');
17763   glTextureParameteriEXT := dglGetProcAddress('glTextureParameteriEXT');
17764   glTextureParameterivEXT := dglGetProcAddress('glTextureParameterivEXT');
17765   glTextureImage1DEXT := dglGetProcAddress('glTextureImage1DEXT');
17766   glTextureImage2DEXT := dglGetProcAddress('glTextureImage2DEXT');
17767   glTextureSubImage1DEXT := dglGetProcAddress('glTextureSubImage1DEXT');
17768   glTextureSubImage2DEXT := dglGetProcAddress('glTextureSubImage2DEXT');
17769   glCopyTextureImage1DEXT := dglGetProcAddress('glCopyTextureImage1DEXT');
17770   glCopyTextureImage2DEXT := dglGetProcAddress('glCopyTextureImage2DEXT');
17771   glCopyTextureSubImage1DEXT := dglGetProcAddress('glCopyTextureSubImage1DEXT');
17772   glCopyTextureSubImage2DEXT := dglGetProcAddress('glCopyTextureSubImage2DEXT');
17773   glGetTextureImageEXT := dglGetProcAddress('glGetTextureImageEXT');
17774   glGetTextureParameterfvEXT := dglGetProcAddress('glGetTextureParameterfvEXT');
17775   glGetTextureParameterivEXT := dglGetProcAddress('glGetTextureParameterivEXT');
17776   glGetTextureLevelParameterfvEXT := dglGetProcAddress('glGetTextureLevelParameterfvEXT');
17777   glGetTextureLevelParameterivEXT := dglGetProcAddress('glGetTextureLevelParameterivEXT');
17778   glTextureImage3DEXT := dglGetProcAddress('glTextureImage3DEXT');
17779   glTextureSubImage3DEXT := dglGetProcAddress('glTextureSubImage3DEXT');
17780   glCopyTextureSubImage3DEXT := dglGetProcAddress('glCopyTextureSubImage3DEXT');
17781   glMultiTexParameterfEXT := dglGetProcAddress('glMultiTexParameterfEXT');
17782   glMultiTexParameterfvEXT := dglGetProcAddress('glMultiTexParameterfvEXT');
17783   glMultiTexParameteriEXT := dglGetProcAddress('glMultiTexParameteriEXT');
17784   glMultiTexParameterivEXT := dglGetProcAddress('glMultiTexParameterivEXT');
17785   glMultiTexImage1DEXT := dglGetProcAddress('glMultiTexImage1DEXT');
17786   glMultiTexImage2DEXT := dglGetProcAddress('glMultiTexImage2DEXT');
17787   glMultiTexSubImage1DEXT := dglGetProcAddress('glMultiTexSubImage1DEXT');
17788   glMultiTexSubImage2DEXT := dglGetProcAddress('glMultiTexSubImage2DEXT');
17789   glCopyMultiTexImage1DEXT := dglGetProcAddress('glCopyMultiTexImage1DEXT');
17790   glCopyMultiTexImage2DEXT := dglGetProcAddress('glCopyMultiTexImage2DEXT');
17791   glCopyMultiTexSubImage1DEXT := dglGetProcAddress('glCopyMultiTexSubImage1DEXT');
17792   glCopyMultiTexSubImage2DEXT := dglGetProcAddress('glCopyMultiTexSubImage2DEXT');
17793   glGetMultiTexImageEXT := dglGetProcAddress('glGetMultiTexImageEXT');
17794   glGetMultiTexParameterfvEXT := dglGetProcAddress('glGetMultiTexParameterfvEXT');
17795   glGetMultiTexParameterivEXT := dglGetProcAddress('glGetMultiTexParameterivEXT');
17796   glGetMultiTexLevelParameterfvEXT := dglGetProcAddress('glGetMultiTexLevelParameterfvEXT');
17797   glGetMultiTexLevelParameterivEXT := dglGetProcAddress('glGetMultiTexLevelParameterivEXT');
17798   glMultiTexImage3DEXT := dglGetProcAddress('glMultiTexImage3DEXT');
17799   glMultiTexSubImage3DEXT := dglGetProcAddress('glMultiTexSubImage3DEXT');
17800   glCopyMultiTexSubImage3DEXT := dglGetProcAddress('glCopyMultiTexSubImage3DEXT');
17801   glBindMultiTextureEXT := dglGetProcAddress('glBindMultiTextureEXT');
17802   glEnableClientStateIndexedEXT := dglGetProcAddress('glEnableClientStateIndexedEXT');
17803   glDisableClientStateIndexedEXT := dglGetProcAddress('glDisableClientStateIndexedEXT');
17804   glMultiTexCoordPointerEXT := dglGetProcAddress('glMultiTexCoordPointerEXT');
17805   glMultiTexEnvfEXT := dglGetProcAddress('glMultiTexEnvfEXT');
17806   glMultiTexEnvfvEXT := dglGetProcAddress('glMultiTexEnvfvEXT');
17807   glMultiTexEnviEXT := dglGetProcAddress('glMultiTexEnviEXT');
17808   glMultiTexEnvivEXT := dglGetProcAddress('glMultiTexEnvivEXT');
17809   glMultiTexGendEXT := dglGetProcAddress('glMultiTexGendEXT');
17810   glMultiTexGendvEXT := dglGetProcAddress('glMultiTexGendvEXT');
17811   glMultiTexGenfEXT := dglGetProcAddress('glMultiTexGenfEXT');
17812   glMultiTexGenfvEXT := dglGetProcAddress('glMultiTexGenfvEXT');
17813   glMultiTexGeniEXT := dglGetProcAddress('glMultiTexGeniEXT');
17814   glMultiTexGenivEXT := dglGetProcAddress('glMultiTexGenivEXT');
17815   glGetMultiTexEnvfvEXT := dglGetProcAddress('glGetMultiTexEnvfvEXT');
17816   glGetMultiTexEnvivEXT := dglGetProcAddress('glGetMultiTexEnvivEXT');
17817   glGetMultiTexGendvEXT := dglGetProcAddress('glGetMultiTexGendvEXT');
17818   glGetMultiTexGenfvEXT := dglGetProcAddress('glGetMultiTexGenfvEXT');
17819   glGetMultiTexGenivEXT := dglGetProcAddress('glGetMultiTexGenivEXT');
17820   glGetFloatIndexedvEXT := dglGetProcAddress('glGetFloatIndexedvEXT');
17821   glGetDoubleIndexedvEXT := dglGetProcAddress('glGetDoubleIndexedvEXT');
17822   glGetPointerIndexedvEXT := dglGetProcAddress('glGetPointerIndexedvEXT');
17823   glCompressedTextureImage3DEXT := dglGetProcAddress('glCompressedTextureImage3DEXT');
17824   glCompressedTextureImage2DEXT := dglGetProcAddress('glCompressedTextureImage2DEXT');
17825   glCompressedTextureImage1DEXT := dglGetProcAddress('glCompressedTextureImage1DEXT');
17826   glCompressedTextureSubImage3DEXT := dglGetProcAddress('glCompressedTextureSubImage3DEXT');
17827   glCompressedTextureSubImage2DEXT := dglGetProcAddress('glCompressedTextureSubImage2DEXT');
17828   glCompressedTextureSubImage1DEXT := dglGetProcAddress('glCompressedTextureSubImage1DEXT');
17829   glGetCompressedTextureImageEXT := dglGetProcAddress('glGetCompressedTextureImageEXT');
17830   glCompressedMultiTexImage3DEXT := dglGetProcAddress('glCompressedMultiTexImage3DEXT');
17831   glCompressedMultiTexImage2DEXT := dglGetProcAddress('glCompressedMultiTexImage2DEXT');
17832   glCompressedMultiTexImage1DEXT := dglGetProcAddress('glCompressedMultiTexImage1DEXT');
17833   glCompressedMultiTexSubImage3DEXT := dglGetProcAddress('glCompressedMultiTexSubImage3DEXT');
17834   glCompressedMultiTexSubImage2DEXT := dglGetProcAddress('glCompressedMultiTexSubImage2DEXT');
17835   glCompressedMultiTexSubImage1DEXT := dglGetProcAddress('glCompressedMultiTexSubImage1DEXT');
17836   glGetCompressedMultiTexImageEXT := dglGetProcAddress('glGetCompressedMultiTexImageEXT');
17837   glNamedProgramStringEXT := dglGetProcAddress('glNamedProgramStringEXT');
17838   glNamedProgramLocalParameter4dEXT := dglGetProcAddress('glNamedProgramLocalParameter4dEXT');
17839   glNamedProgramLocalParameter4dvEXT := dglGetProcAddress('glNamedProgramLocalParameter4dvEXT');
17840   glNamedProgramLocalParameter4fEXT := dglGetProcAddress('glNamedProgramLocalParameter4fEXT');
17841   glNamedProgramLocalParameter4fvEXT := dglGetProcAddress('glNamedProgramLocalParameter4fvEXT');
17842   glGetNamedProgramLocalParameterdvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterdvEXT');
17843   glGetNamedProgramLocalParameterfvEXT := dglGetProcAddress('glGetNamedProgramLocalParameterfvEXT');
17844   glGetNamedProgramivEXT := dglGetProcAddress('glGetNamedProgramivEXT');
17845   glGetNamedProgramStringEXT := dglGetProcAddress('glGetNamedProgramStringEXT');
17846   glNamedProgramLocalParameters4fvEXT := dglGetProcAddress('glNamedProgramLocalParameters4fvEXT');
17847   glNamedProgramLocalParameterI4iEXT := dglGetProcAddress('glNamedProgramLocalParameterI4iEXT');
17848   glNamedProgramLocalParameterI4ivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4ivEXT');
17849   glNamedProgramLocalParametersI4ivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4ivEXT');
17850   glNamedProgramLocalParameterI4uiEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uiEXT');
17851   glNamedProgramLocalParameterI4uivEXT := dglGetProcAddress('glNamedProgramLocalParameterI4uivEXT');
17852   glNamedProgramLocalParametersI4uivEXT := dglGetProcAddress('glNamedProgramLocalParametersI4uivEXT');
17853   glGetNamedProgramLocalParameterIivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIivEXT');
17854   glGetNamedProgramLocalParameterIuivEXT := dglGetProcAddress('glGetNamedProgramLocalParameterIuivEXT');
17855   glTextureParameterIivEXT := dglGetProcAddress('glTextureParameterIivEXT');
17856   glTextureParameterIuivEXT := dglGetProcAddress('glTextureParameterIuivEXT');
17857   glGetTextureParameterIivEXT := dglGetProcAddress('glGetTextureParameterIivEXT');
17858   glGetTextureParameterIuivEXT := dglGetProcAddress('glGetTextureParameterIuivEXT');
17859   glMultiTexParameterIivEXT := dglGetProcAddress('glMultiTexParameterIivEXT');
17860   glMultiTexParameterIuivEXT := dglGetProcAddress('glMultiTexParameterIuivEXT');
17861   glGetMultiTexParameterIivEXT := dglGetProcAddress('glGetMultiTexParameterIivEXT');
17862   glGetMultiTexParameterIuivEXT := dglGetProcAddress('glGetMultiTexParameterIuivEXT');
17863   glProgramUniform1fEXT := dglGetProcAddress('glProgramUniform1fEXT');
17864   glProgramUniform2fEXT := dglGetProcAddress('glProgramUniform2fEXT');
17865   glProgramUniform3fEXT := dglGetProcAddress('glProgramUniform3fEXT');
17866   glProgramUniform4fEXT := dglGetProcAddress('glProgramUniform4fEXT');
17867   glProgramUniform1iEXT := dglGetProcAddress('glProgramUniform1iEXT');
17868   glProgramUniform2iEXT := dglGetProcAddress('glProgramUniform2iEXT');
17869   glProgramUniform3iEXT := dglGetProcAddress('glProgramUniform3iEXT');
17870   glProgramUniform4iEXT := dglGetProcAddress('glProgramUniform4iEXT');
17871   glProgramUniform1fvEXT := dglGetProcAddress('glProgramUniform1fvEXT');
17872   glProgramUniform2fvEXT := dglGetProcAddress('glProgramUniform2fvEXT');
17873   glProgramUniform3fvEXT := dglGetProcAddress('glProgramUniform3fvEXT');
17874   glProgramUniform4fvEXT := dglGetProcAddress('glProgramUniform4fvEXT');
17875   glProgramUniform1ivEXT := dglGetProcAddress('glProgramUniform1ivEXT');
17876   glProgramUniform2ivEXT := dglGetProcAddress('glProgramUniform2ivEXT');
17877   glProgramUniform3ivEXT := dglGetProcAddress('glProgramUniform3ivEXT');
17878   glProgramUniform4ivEXT := dglGetProcAddress('glProgramUniform4ivEXT');
17879   glProgramUniformMatrix2fvEXT := dglGetProcAddress('glProgramUniformMatrix2fvEXT');
17880   glProgramUniformMatrix3fvEXT := dglGetProcAddress('glProgramUniformMatrix3fvEXT');
17881   glProgramUniformMatrix4fvEXT := dglGetProcAddress('glProgramUniformMatrix4fvEXT');
17882   glProgramUniformMatrix2x3fvEXT := dglGetProcAddress('glProgramUniformMatrix2x3fvEXT');
17883   glProgramUniformMatrix3x2fvEXT := dglGetProcAddress('glProgramUniformMatrix3x2fvEXT');
17884   glProgramUniformMatrix2x4fvEXT := dglGetProcAddress('glProgramUniformMatrix2x4fvEXT');
17885   glProgramUniformMatrix4x2fvEXT := dglGetProcAddress('glProgramUniformMatrix4x2fvEXT');
17886   glProgramUniformMatrix3x4fvEXT := dglGetProcAddress('glProgramUniformMatrix3x4fvEXT');
17887   glProgramUniformMatrix4x3fvEXT := dglGetProcAddress('glProgramUniformMatrix4x3fvEXT');
17888   glProgramUniform1uiEXT := dglGetProcAddress('glProgramUniform1uiEXT');
17889   glProgramUniform2uiEXT := dglGetProcAddress('glProgramUniform2uiEXT');
17890   glProgramUniform3uiEXT := dglGetProcAddress('glProgramUniform3uiEXT');
17891   glProgramUniform4uiEXT := dglGetProcAddress('glProgramUniform4uiEXT');
17892   glProgramUniform1uivEXT := dglGetProcAddress('glProgramUniform1uivEXT');
17893   glProgramUniform2uivEXT := dglGetProcAddress('glProgramUniform2uivEXT');
17894   glProgramUniform3uivEXT := dglGetProcAddress('glProgramUniform3uivEXT');
17895   glProgramUniform4uivEXT := dglGetProcAddress('glProgramUniform4uivEXT');
17896   glNamedBufferDataEXT := dglGetProcAddress('glNamedBufferDataEXT');
17897   glNamedBufferSubDataEXT := dglGetProcAddress('glNamedBufferSubDataEXT');
17898   glMapNamedBufferEXT := dglGetProcAddress('glMapNamedBufferEXT');
17899   glUnmapNamedBufferEXT := dglGetProcAddress('glUnmapNamedBufferEXT');
17900   glMapNamedBufferRangeEXT := dglGetProcAddress('glMapNamedBufferRangeEXT');
17901   glFlushMappedNamedBufferRangeEXT := dglGetProcAddress('glFlushMappedNamedBufferRangeEXT');
17902   glNamedCopyBufferSubDataEXT := dglGetProcAddress('glNamedCopyBufferSubDataEXT');
17903   glGetNamedBufferParameterivEXT := dglGetProcAddress('glGetNamedBufferParameterivEXT');
17904   glGetNamedBufferPointervEXT := dglGetProcAddress('glGetNamedBufferPointervEXT');
17905   glGetNamedBufferSubDataEXT := dglGetProcAddress('glGetNamedBufferSubDataEXT');
17906   glTextureBufferEXT := dglGetProcAddress('glTextureBufferEXT');
17907   glMultiTexBufferEXT := dglGetProcAddress('glMultiTexBufferEXT');
17908   glNamedRenderbufferStorageEXT := dglGetProcAddress('glNamedRenderbufferStorageEXT');
17909   glGetNamedRenderbufferParameterivEXT := dglGetProcAddress('glGetNamedRenderbufferParameterivEXT');
17910   glCheckNamedFramebufferStatusEXT := dglGetProcAddress('glCheckNamedFramebufferStatusEXT');
17911   glNamedFramebufferTexture1DEXT := dglGetProcAddress('glNamedFramebufferTexture1DEXT');
17912   glNamedFramebufferTexture2DEXT := dglGetProcAddress('glNamedFramebufferTexture2DEXT');
17913   glNamedFramebufferTexture3DEXT := dglGetProcAddress('glNamedFramebufferTexture3DEXT');
17914   glNamedFramebufferRenderbufferEXT := dglGetProcAddress('glNamedFramebufferRenderbufferEXT');
17915   glGetNamedFramebufferAttachmentParameterivEXT := dglGetProcAddress('glGetNamedFramebufferAttachmentParameterivEXT');
17916   glGenerateTextureMipmapEXT := dglGetProcAddress('glGenerateTextureMipmapEXT');
17917   glGenerateMultiTexMipmapEXT := dglGetProcAddress('glGenerateMultiTexMipmapEXT');
17918   glFramebufferDrawBufferEXT := dglGetProcAddress('glFramebufferDrawBufferEXT');
17919   glFramebufferDrawBuffersEXT := dglGetProcAddress('glFramebufferDrawBuffersEXT');
17920   glFramebufferReadBufferEXT := dglGetProcAddress('glFramebufferReadBufferEXT');
17921   glGetFramebufferParameterivEXT := dglGetProcAddress('glGetFramebufferParameterivEXT');
17922   glNamedRenderbufferStorageMultisampleEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleEXT');
17923   glNamedRenderbufferStorageMultisampleCoverageEXT := dglGetProcAddress('glNamedRenderbufferStorageMultisampleCoverageEXT');
17924   glNamedFramebufferTextureEXT := dglGetProcAddress('glNamedFramebufferTextureEXT');
17925   glNamedFramebufferTextureLayerEXT := dglGetProcAddress('glNamedFramebufferTextureLayerEXT');
17926   glNamedFramebufferTextureFaceEXT := dglGetProcAddress('glNamedFramebufferTextureFaceEXT');
17927   glTextureRenderbufferEXT := dglGetProcAddress('glTextureRenderbufferEXT');
17928   glMultiTexRenderbufferEXT := dglGetProcAddress('glMultiTexRenderbufferEXT');
17929   glProgramUniform1dEXT := dglGetProcAddress('glProgramUniform1dEXT');
17930   glProgramUniform2dEXT := dglGetProcAddress('glProgramUniform2dEXT');
17931   glProgramUniform3dEXT := dglGetProcAddress('glProgramUniform3dEXT');
17932   glProgramUniform4dEXT := dglGetProcAddress('glProgramUniform4dEXT');
17933   glProgramUniform1dvEXT := dglGetProcAddress('glProgramUniform1dvEXT');
17934   glProgramUniform2dvEXT := dglGetProcAddress('glProgramUniform2dvEXT');
17935   glProgramUniform3dvEXT := dglGetProcAddress('glProgramUniform3dvEXT');
17936   glProgramUniform4dvEXT := dglGetProcAddress('glProgramUniform4dvEXT');
17937   glProgramUniformMatrix2dvEXT := dglGetProcAddress('glProgramUniformMatrix2dvEXT');
17938   glProgramUniformMatrix3dvEXT := dglGetProcAddress('glProgramUniformMatrix3dvEXT');
17939   glProgramUniformMatrix4dvEXT := dglGetProcAddress('glProgramUniformMatrix4dvEXT');
17940   glProgramUniformMatrix2x3dvEXT := dglGetProcAddress('glProgramUniformMatrix2x3dvEXT');
17941   glProgramUniformMatrix2x4dvEXT := dglGetProcAddress('glProgramUniformMatrix2x4dvEXT');
17942   glProgramUniformMatrix3x2dvEXT := dglGetProcAddress('glProgramUniformMatrix3x2dvEXT');
17943   glProgramUniformMatrix3x4dvEXT := dglGetProcAddress('glProgramUniformMatrix3x4dvEXT');
17944   glProgramUniformMatrix4x2dvEXT := dglGetProcAddress('glProgramUniformMatrix4x2dvEXT');
17945   glProgramUniformMatrix4x3dvEXT := dglGetProcAddress('glProgramUniformMatrix4x3dvEXT');
17946 end;
17947
17948 procedure Read_GL_EXT_separate_shader_objects;
17949 begin
17950   glUseShaderProgramEXT := dglGetProcAddress('glUseShaderProgramEXT');
17951   glActiveProgramEXT := dglGetProcAddress('glActiveProgramEXT');
17952   glCreateShaderProgramEXT := dglGetProcAddress('glCreateShaderProgramEXT');
17953 end;
17954
17955 procedure Read_GL_EXT_shader_image_load_store;
17956 begin
17957   glBindImageTextureEXT := dglGetProcAddress('glBindImageTextureEXT');
17958   glMemoryBarrierEXT := dglGetProcAddress('glMemoryBarrierEXT');
17959 end;
17960
17961 procedure Read_GL_EXT_vertex_attrib_64bit;
17962 begin
17963   glVertexAttribL1dEXT := dglGetProcAddress('glVertexAttribL1dEXT');
17964   glVertexAttribL2dEXT := dglGetProcAddress('glVertexAttribL2dEXT');
17965   glVertexAttribL3dEXT := dglGetProcAddress('glVertexAttribL3dEXT');
17966   glVertexAttribL4dEXT := dglGetProcAddress('glVertexAttribL4dEXT');
17967   glVertexAttribL1dvEXT := dglGetProcAddress('glVertexAttribL1dvEXT');
17968   glVertexAttribL2dvEXT := dglGetProcAddress('glVertexAttribL2dvEXT');
17969   glVertexAttribL3dvEXT := dglGetProcAddress('glVertexAttribL3dvEXT');
17970   glVertexAttribL4dvEXT := dglGetProcAddress('glVertexAttribL4dvEXT');
17971   glVertexAttribLPointerEXT := dglGetProcAddress('glVertexAttribLPointerEXT');
17972   glGetVertexAttribLdvEXT := dglGetProcAddress('glGetVertexAttribLdvEXT');
17973   glVertexArrayVertexAttribLOffsetEXT := dglGetProcAddress('glVertexArrayVertexAttribLOffsetEXT');
17974 end;
17975
17976 procedure Read_GL_HP_image_transform;
17977 begin
17978   glImageTransformParameteriHP := dglGetProcAddress('glImageTransformParameteriHP');
17979   glImageTransformParameterfHP := dglGetProcAddress('glImageTransformParameterfHP');
17980   glImageTransformParameterivHP := dglGetProcAddress('glImageTransformParameterivHP');
17981   glImageTransformParameterfvHP := dglGetProcAddress('glImageTransformParameterfvHP');
17982   glGetImageTransformParameterivHP := dglGetProcAddress('glGetImageTransformParameterivHP');
17983   glGetImageTransformParameterfvHP := dglGetProcAddress('glGetImageTransformParameterfvHP');
17984 end;
17985
17986 procedure Read_GL_IBM_multimode_draw_arrays;
17987 begin
17988   glMultiModeDrawArraysIBM := dglGetProcAddress('glMultiModeDrawArraysIBM');
17989   glMultiModeDrawElementsIBM := dglGetProcAddress('glMultiModeDrawElementsIBM');
17990 end;
17991
17992 procedure Read_GL_IBM_vertex_array_lists;
17993 begin
17994   glColorPointerListIBM := dglGetProcAddress('glColorPointerListIBM');
17995   glSecondaryColorPointerListIBM := dglGetProcAddress('glSecondaryColorPointerListIBM');
17996   glEdgeFlagPointerListIBM := dglGetProcAddress('glEdgeFlagPointerListIBM');
17997   glFogCoordPointerListIBM := dglGetProcAddress('glFogCoordPointerListIBM');
17998   glIndexPointerListIBM := dglGetProcAddress('glIndexPointerListIBM');
17999   glNormalPointerListIBM := dglGetProcAddress('glNormalPointerListIBM');
18000   glTexCoordPointerListIBM := dglGetProcAddress('glTexCoordPointerListIBM');
18001   glVertexPointerListIBM := dglGetProcAddress('glVertexPointerListIBM');
18002 end;
18003
18004 procedure Read_GL_INGR_blend_func_separate;
18005 begin
18006   glBlendFuncSeparateINGR := dglGetProcAddress('glBlendFuncSeparateINGR');
18007 end;
18008
18009 procedure Read_GL_INTEL_parallel_arrays;
18010 begin
18011   glVertexPointervINTEL := dglGetProcAddress('glVertexPointervINTEL');
18012   glNormalPointervINTEL := dglGetProcAddress('glNormalPointervINTEL');
18013   glColorPointervINTEL := dglGetProcAddress('glColorPointervINTEL');
18014   glTexCoordPointervINTEL := dglGetProcAddress('glTexCoordPointervINTEL');
18015 end;
18016
18017 procedure Read_GL_MESA_resize_buffers;
18018 begin
18019   glResizeBuffersMESA := dglGetProcAddress('glResizeBuffersMESA');
18020 end;
18021
18022 procedure Read_GL_MESA_window_pos;
18023 begin
18024   glWindowPos2dMESA := dglGetProcAddress('glWindowPos2dMESA');
18025   glWindowPos2dvMESA := dglGetProcAddress('glWindowPos2dvMESA');
18026   glWindowPos2fMESA := dglGetProcAddress('glWindowPos2fMESA');
18027   glWindowPos2fvMESA := dglGetProcAddress('glWindowPos2fvMESA');
18028   glWindowPos2iMESA := dglGetProcAddress('glWindowPos2iMESA');
18029   glWindowPos2ivMESA := dglGetProcAddress('glWindowPos2ivMESA');
18030   glWindowPos2sMESA := dglGetProcAddress('glWindowPos2sMESA');
18031   glWindowPos2svMESA := dglGetProcAddress('glWindowPos2svMESA');
18032   glWindowPos3dMESA := dglGetProcAddress('glWindowPos3dMESA');
18033   glWindowPos3dvMESA := dglGetProcAddress('glWindowPos3dvMESA');
18034   glWindowPos3fMESA := dglGetProcAddress('glWindowPos3fMESA');
18035   glWindowPos3fvMESA := dglGetProcAddress('glWindowPos3fvMESA');
18036   glWindowPos3iMESA := dglGetProcAddress('glWindowPos3iMESA');
18037   glWindowPos3ivMESA := dglGetProcAddress('glWindowPos3ivMESA');
18038   glWindowPos3sMESA := dglGetProcAddress('glWindowPos3sMESA');
18039   glWindowPos3svMESA := dglGetProcAddress('glWindowPos3svMESA');
18040   glWindowPos4dMESA := dglGetProcAddress('glWindowPos4dMESA');
18041   glWindowPos4dvMESA := dglGetProcAddress('glWindowPos4dvMESA');
18042   glWindowPos4fMESA := dglGetProcAddress('glWindowPos4fMESA');
18043   glWindowPos4fvMESA := dglGetProcAddress('glWindowPos4fvMESA');
18044   glWindowPos4iMESA := dglGetProcAddress('glWindowPos4iMESA');
18045   glWindowPos4ivMESA := dglGetProcAddress('glWindowPos4ivMESA');
18046   glWindowPos4sMESA := dglGetProcAddress('glWindowPos4sMESA');
18047   glWindowPos4svMESA := dglGetProcAddress('glWindowPos4svMESA');
18048 end;
18049
18050 procedure Read_GL_NV_evaluators;
18051 begin
18052   glMapControlPointsNV := dglGetProcAddress('glMapControlPointsNV');
18053   glMapParameterivNV := dglGetProcAddress('glMapParameterivNV');
18054   glMapParameterfvNV := dglGetProcAddress('glMapParameterfvNV');
18055   glGetMapControlPointsNV := dglGetProcAddress('glGetMapControlPointsNV');
18056   glGetMapParameterivNV := dglGetProcAddress('glGetMapParameterivNV');
18057   glGetMapParameterfvNV := dglGetProcAddress('glGetMapParameterfvNV');
18058   glGetMapAttribParameterivNV := dglGetProcAddress('glGetMapAttribParameterivNV');
18059   glGetMapAttribParameterfvNV := dglGetProcAddress('glGetMapAttribParameterfvNV');
18060   glEvalMapsNV := dglGetProcAddress('glEvalMapsNV');
18061 end;
18062
18063 procedure Read_GL_NV_fence;
18064 begin
18065   glDeleteFencesNV := dglGetProcAddress('glDeleteFencesNV');
18066   glGenFencesNV := dglGetProcAddress('glGenFencesNV');
18067   glIsFenceNV := dglGetProcAddress('glIsFenceNV');
18068   glTestFenceNV := dglGetProcAddress('glTestFenceNV');
18069   glGetFenceivNV := dglGetProcAddress('glGetFenceivNV');
18070   glFinishFenceNV := dglGetProcAddress('glFinishFenceNV');
18071   glSetFenceNV := dglGetProcAddress('glSetFenceNV');
18072 end;
18073
18074 procedure Read_GL_NV_fragment_program;
18075 begin
18076   glProgramNamedParameter4fNV := dglGetProcAddress('glProgramNamedParameter4fNV');
18077   glProgramNamedParameter4dNV := dglGetProcAddress('glProgramNamedParameter4dNV');
18078   glProgramNamedParameter4fvNV := dglGetProcAddress('glProgramNamedParameter4fvNV');
18079   glProgramNamedParameter4dvNV := dglGetProcAddress('glProgramNamedParameter4dvNV');
18080   glGetProgramNamedParameterfvNV := dglGetProcAddress('glGetProgramNamedParameterfvNV');
18081   glGetProgramNamedParameterdvNV := dglGetProcAddress('glGetProgramNamedParameterdvNV');
18082 end;
18083
18084 procedure Read_GL_NV_half_float;
18085 begin
18086   glVertex2hNV := dglGetProcAddress('glVertex2hNV');
18087   glVertex2hvNV := dglGetProcAddress('glVertex2hvNV');
18088   glVertex3hNV := dglGetProcAddress('glVertex3hNV');
18089   glVertex3hvNV := dglGetProcAddress('glVertex3hvNV');
18090   glVertex4hNV := dglGetProcAddress('glVertex4hNV');
18091   glVertex4hvNV := dglGetProcAddress('glVertex4hvNV');
18092   glNormal3hNV := dglGetProcAddress('glNormal3hNV');
18093   glNormal3hvNV := dglGetProcAddress('glNormal3hvNV');
18094   glColor3hNV := dglGetProcAddress('glColor3hNV');
18095   glColor3hvNV := dglGetProcAddress('glColor3hvNV');
18096   glColor4hNV := dglGetProcAddress('glColor4hNV');
18097   glColor4hvNV := dglGetProcAddress('glColor4hvNV');
18098   glTexCoord1hNV := dglGetProcAddress('glTexCoord1hNV');
18099   glTexCoord1hvNV := dglGetProcAddress('glTexCoord1hvNV');
18100   glTexCoord2hNV := dglGetProcAddress('glTexCoord2hNV');
18101   glTexCoord2hvNV := dglGetProcAddress('glTexCoord2hvNV');
18102   glTexCoord3hNV := dglGetProcAddress('glTexCoord3hNV');
18103   glTexCoord3hvNV := dglGetProcAddress('glTexCoord3hvNV');
18104   glTexCoord4hNV := dglGetProcAddress('glTexCoord4hNV');
18105   glTexCoord4hvNV := dglGetProcAddress('glTexCoord4hvNV');
18106   glMultiTexCoord1hNV := dglGetProcAddress('glMultiTexCoord1hNV');
18107   glMultiTexCoord1hvNV := dglGetProcAddress('glMultiTexCoord1hvNV');
18108   glMultiTexCoord2hNV := dglGetProcAddress('glMultiTexCoord2hNV');
18109   glMultiTexCoord2hvNV := dglGetProcAddress('glMultiTexCoord2hvNV');
18110   glMultiTexCoord3hNV := dglGetProcAddress('glMultiTexCoord3hNV');
18111   glMultiTexCoord3hvNV := dglGetProcAddress('glMultiTexCoord3hvNV');
18112   glMultiTexCoord4hNV := dglGetProcAddress('glMultiTexCoord4hNV');
18113   glMultiTexCoord4hvNV := dglGetProcAddress('glMultiTexCoord4hvNV');
18114   glFogCoordhNV := dglGetProcAddress('glFogCoordhNV');
18115   glFogCoordhvNV := dglGetProcAddress('glFogCoordhvNV');
18116   glSecondaryColor3hNV := dglGetProcAddress('glSecondaryColor3hNV');
18117   glSecondaryColor3hvNV := dglGetProcAddress('glSecondaryColor3hvNV');
18118   glVertexWeighthNV := dglGetProcAddress('glVertexWeighthNV');
18119   glVertexWeighthvNV := dglGetProcAddress('glVertexWeighthvNV');
18120   glVertexAttrib1hNV := dglGetProcAddress('glVertexAttrib1hNV');
18121   glVertexAttrib1hvNV := dglGetProcAddress('glVertexAttrib1hvNV');
18122   glVertexAttrib2hNV := dglGetProcAddress('glVertexAttrib2hNV');
18123   glVertexAttrib2hvNV := dglGetProcAddress('glVertexAttrib2hvNV');
18124   glVertexAttrib3hNV := dglGetProcAddress('glVertexAttrib3hNV');
18125   glVertexAttrib3hvNV := dglGetProcAddress('glVertexAttrib3hvNV');
18126   glVertexAttrib4hNV := dglGetProcAddress('glVertexAttrib4hNV');
18127   glVertexAttrib4hvNV := dglGetProcAddress('glVertexAttrib4hvNV');
18128   glVertexAttribs1hvNV := dglGetProcAddress('glVertexAttribs1hvNV');
18129   glVertexAttribs2hvNV := dglGetProcAddress('glVertexAttribs2hvNV');
18130   glVertexAttribs3hvNV := dglGetProcAddress('glVertexAttribs3hvNV');
18131   glVertexAttribs4hvNV := dglGetProcAddress('glVertexAttribs4hvNV');
18132 end;
18133
18134 procedure Read_GL_NV_occlusion_query;
18135 begin
18136   glGenOcclusionQueriesNV := dglGetProcAddress('glGenOcclusionQueriesNV');
18137   glDeleteOcclusionQueriesNV := dglGetProcAddress('glDeleteOcclusionQueriesNV');
18138   glIsOcclusionQueryNV := dglGetProcAddress('glIsOcclusionQueryNV');
18139   glBeginOcclusionQueryNV := dglGetProcAddress('glBeginOcclusionQueryNV');
18140   glEndOcclusionQueryNV := dglGetProcAddress('glEndOcclusionQueryNV');
18141   glGetOcclusionQueryivNV := dglGetProcAddress('glGetOcclusionQueryivNV');
18142   glGetOcclusionQueryuivNV := dglGetProcAddress('glGetOcclusionQueryuivNV');
18143 end;
18144
18145 procedure Read_GL_NV_pixel_data_range;
18146 begin
18147   glPixelDataRangeNV := dglGetProcAddress('glPixelDataRangeNV');
18148   glFlushPixelDataRangeNV := dglGetProcAddress('glFlushPixelDataRangeNV');
18149 end;
18150
18151 procedure Read_GL_NV_point_sprite;
18152 begin
18153   glPointParameteriNV := dglGetProcAddress('glPointParameteriNV');
18154   glPointParameterivNV := dglGetProcAddress('glPointParameterivNV');
18155 end;
18156
18157 procedure Read_GL_NV_primitive_restart;
18158 begin
18159   glPrimitiveRestartNV := dglGetProcAddress('glPrimitiveRestartNV');
18160   glPrimitiveRestartIndexNV := dglGetProcAddress('glPrimitiveRestartIndexNV');
18161 end;
18162
18163 procedure Read_GL_NV_register_combiners;
18164 begin
18165   glCombinerParameterfvNV := dglGetProcAddress('glCombinerParameterfvNV');
18166   glCombinerParameterfNV := dglGetProcAddress('glCombinerParameterfNV');
18167   glCombinerParameterivNV := dglGetProcAddress('glCombinerParameterivNV');
18168   glCombinerParameteriNV := dglGetProcAddress('glCombinerParameteriNV');
18169   glCombinerInputNV := dglGetProcAddress('glCombinerInputNV');
18170   glCombinerOutputNV := dglGetProcAddress('glCombinerOutputNV');
18171   glFinalCombinerInputNV := dglGetProcAddress('glFinalCombinerInputNV');
18172   glGetCombinerInputParameterfvNV := dglGetProcAddress('glGetCombinerInputParameterfvNV');
18173   glGetCombinerInputParameterivNV := dglGetProcAddress('glGetCombinerInputParameterivNV');
18174   glGetCombinerOutputParameterfvNV := dglGetProcAddress('glGetCombinerOutputParameterfvNV');
18175   glGetCombinerOutputParameterivNV := dglGetProcAddress('glGetCombinerOutputParameterivNV');
18176   glGetFinalCombinerInputParameterfvNV := dglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
18177   glGetFinalCombinerInputParameterivNV := dglGetProcAddress('glGetFinalCombinerInputParameterivNV');
18178 end;
18179
18180 procedure Read_GL_NV_register_combiners2;
18181 begin
18182   glCombinerStageParameterfvNV := dglGetProcAddress('glCombinerStageParameterfvNV');
18183   glGetCombinerStageParameterfvNV := dglGetProcAddress('glGetCombinerStageParameterfvNV');
18184 end;
18185
18186 procedure Read_GL_NV_vertex_array_range;
18187 begin
18188   glFlushVertexArrayRangeNV := dglGetProcAddress('glFlushVertexArrayRangeNV');
18189   glVertexArrayRangeNV := dglGetProcAddress('glVertexArrayRangeNV');
18190 end;
18191
18192 procedure Read_GL_NV_vertex_program;
18193 begin
18194   glAreProgramsResidentNV := dglGetProcAddress('glAreProgramsResidentNV');
18195   glBindProgramNV := dglGetProcAddress('glBindProgramNV');
18196   glDeleteProgramsNV := dglGetProcAddress('glDeleteProgramsNV');
18197   glExecuteProgramNV := dglGetProcAddress('glExecuteProgramNV');
18198   glGenProgramsNV := dglGetProcAddress('glGenProgramsNV');
18199   glGetProgramParameterdvNV := dglGetProcAddress('glGetProgramParameterdvNV');
18200   glGetProgramParameterfvNV := dglGetProcAddress('glGetProgramParameterfvNV');
18201   glGetProgramivNV := dglGetProcAddress('glGetProgramivNV');
18202   glGetProgramStringNV := dglGetProcAddress('glGetProgramStringNV');
18203   glGetTrackMatrixivNV := dglGetProcAddress('glGetTrackMatrixivNV');
18204   glGetVertexAttribdvNV := dglGetProcAddress('glGetVertexAttribdvNV');
18205   glGetVertexAttribfvNV := dglGetProcAddress('glGetVertexAttribfvNV');
18206   glGetVertexAttribivNV := dglGetProcAddress('glGetVertexAttribivNV');
18207   glGetVertexAttribPointervNV := dglGetProcAddress('glGetVertexAttribPointervNV');
18208   glIsProgramNV := dglGetProcAddress('glIsProgramNV');
18209   glLoadProgramNV := dglGetProcAddress('glLoadProgramNV');
18210   glProgramParameter4dNV := dglGetProcAddress('glProgramParameter4dNV');
18211   glProgramParameter4dvNV := dglGetProcAddress('glProgramParameter4dvNV');
18212   glProgramParameter4fNV := dglGetProcAddress('glProgramParameter4fNV');
18213   glProgramParameter4fvNV := dglGetProcAddress('glProgramParameter4fvNV');
18214   glProgramParameters4dvNV := dglGetProcAddress('glProgramParameters4dvNV');
18215   glProgramParameters4fvNV := dglGetProcAddress('glProgramParameters4fvNV');
18216   glRequestResidentProgramsNV := dglGetProcAddress('glRequestResidentProgramsNV');
18217   glTrackMatrixNV := dglGetProcAddress('glTrackMatrixNV');
18218   glVertexAttribPointerNV := dglGetProcAddress('glVertexAttribPointerNV');
18219   glVertexAttrib1dNV := dglGetProcAddress('glVertexAttrib1dNV');
18220   glVertexAttrib1dvNV := dglGetProcAddress('glVertexAttrib1dvNV');
18221   glVertexAttrib1fNV := dglGetProcAddress('glVertexAttrib1fNV');
18222   glVertexAttrib1fvNV := dglGetProcAddress('glVertexAttrib1fvNV');
18223   glVertexAttrib1sNV := dglGetProcAddress('glVertexAttrib1sNV');
18224   glVertexAttrib1svNV := dglGetProcAddress('glVertexAttrib1svNV');
18225   glVertexAttrib2dNV := dglGetProcAddress('glVertexAttrib2dNV');
18226   glVertexAttrib2dvNV := dglGetProcAddress('glVertexAttrib2dvNV');
18227   glVertexAttrib2fNV := dglGetProcAddress('glVertexAttrib2fNV');
18228   glVertexAttrib2fvNV := dglGetProcAddress('glVertexAttrib2fvNV');
18229   glVertexAttrib2sNV := dglGetProcAddress('glVertexAttrib2sNV');
18230   glVertexAttrib2svNV := dglGetProcAddress('glVertexAttrib2svNV');
18231   glVertexAttrib3dNV := dglGetProcAddress('glVertexAttrib3dNV');
18232   glVertexAttrib3dvNV := dglGetProcAddress('glVertexAttrib3dvNV');
18233   glVertexAttrib3fNV := dglGetProcAddress('glVertexAttrib3fNV');
18234   glVertexAttrib3fvNV := dglGetProcAddress('glVertexAttrib3fvNV');
18235   glVertexAttrib3sNV := dglGetProcAddress('glVertexAttrib3sNV');
18236   glVertexAttrib3svNV := dglGetProcAddress('glVertexAttrib3svNV');
18237   glVertexAttrib4dNV := dglGetProcAddress('glVertexAttrib4dNV');
18238   glVertexAttrib4dvNV := dglGetProcAddress('glVertexAttrib4dvNV');
18239   glVertexAttrib4fNV := dglGetProcAddress('glVertexAttrib4fNV');
18240   glVertexAttrib4fvNV := dglGetProcAddress('glVertexAttrib4fvNV');
18241   glVertexAttrib4sNV := dglGetProcAddress('glVertexAttrib4sNV');
18242   glVertexAttrib4svNV := dglGetProcAddress('glVertexAttrib4svNV');
18243   glVertexAttrib4ubNV := dglGetProcAddress('glVertexAttrib4ubNV');
18244   glVertexAttrib4ubvNV := dglGetProcAddress('glVertexAttrib4ubvNV');
18245   glVertexAttribs1dvNV := dglGetProcAddress('glVertexAttribs1dvNV');
18246   glVertexAttribs1fvNV := dglGetProcAddress('glVertexAttribs1fvNV');
18247   glVertexAttribs1svNV := dglGetProcAddress('glVertexAttribs1svNV');
18248   glVertexAttribs2dvNV := dglGetProcAddress('glVertexAttribs2dvNV');
18249   glVertexAttribs2fvNV := dglGetProcAddress('glVertexAttribs2fvNV');
18250   glVertexAttribs2svNV := dglGetProcAddress('glVertexAttribs2svNV');
18251   glVertexAttribs3dvNV := dglGetProcAddress('glVertexAttribs3dvNV');
18252   glVertexAttribs3fvNV := dglGetProcAddress('glVertexAttribs3fvNV');
18253   glVertexAttribs3svNV := dglGetProcAddress('glVertexAttribs3svNV');
18254   glVertexAttribs4dvNV := dglGetProcAddress('glVertexAttribs4dvNV');
18255   glVertexAttribs4fvNV := dglGetProcAddress('glVertexAttribs4fvNV');
18256   glVertexAttribs4svNV := dglGetProcAddress('glVertexAttribs4svNV');
18257   glVertexAttribs4ubvNV := dglGetProcAddress('glVertexAttribs4ubvNV');
18258 end;
18259
18260 procedure Read_GL_NV_depth_buffer_float;
18261 begin
18262   glDepthRangedNV := dglGetProcAddress('glDepthRangedNV');
18263   glClearDepthdNV := dglGetProcAddress('glClearDepthdNV');
18264   glDepthBoundsdNV := dglGetProcAddress('glDepthBoundsdNV');
18265 end;
18266
18267 procedure Read_GL_NV_framebuffer_multisample_coverage;
18268 begin
18269   glRenderbufferStorageMultsampleCoverageNV := dglGetProcAddress('glRenderbufferStorageMultsampleCoverageNV');
18270 end;
18271
18272 procedure Read_GL_NV_geometry_program4;
18273 begin
18274   glProgramVertexLimitNV := dglGetProcAddress('glProgramVertexLimitNV');
18275 end;
18276
18277 procedure Read_GL_NV_gpu_program4;
18278 begin
18279   glProgramLocalParameterI4iNV := dglGetProcAddress('glProgramLocalParameterI4iNV');
18280   glProgramLocalParameterI4ivNV := dglGetProcAddress('glProgramLocalParameterI4ivNV');
18281   glProgramLocalParametersI4ivNV := dglGetProcAddress('glProgramLocalParametersI4ivNV');
18282   glProgramLocalParameterI4uiNV := dglGetProcAddress('glProgramLocalParameterI4uiNV');
18283   glProgramLocalParameterI4uivNV := dglGetProcAddress('glProgramLocalParameterI4uivNV');
18284   glProgramLocalParametersI4uivNV := dglGetProcAddress('glProgramLocalParametersI4uivNV');
18285   glProgramEnvParameterI4iNV := dglGetProcAddress('glProgramEnvParameterI4iNV');
18286   glProgramEnvParameterI4ivNV := dglGetProcAddress('glProgramEnvParameterI4ivNV');
18287   glProgramEnvParametersI4ivNV := dglGetProcAddress('glProgramEnvParametersI4ivNV');
18288   glProgramEnvParameterI4uiNV := dglGetProcAddress('glProgramEnvParameterI4uiNV');
18289   glProgramEnvParameterI4uivNV := dglGetProcAddress('glProgramEnvParameterI4uivNV');
18290   glProgramEnvParametersI4uivNV := dglGetProcAddress('glProgramEnvParametersI4uivNV');
18291   glGetProgramLocalParameterIivNV := dglGetProcAddress('glGetProgramLocalParameterIivNV');
18292   glGetProgramLocalParameterIuivNV := dglGetProcAddress('glGetProgramLocalParameterIuivNV');
18293   glGetProgramEnvParameterIivNV := dglGetProcAddress('glGetProgramEnvParameterIivNV');
18294   glGetProgramEnvParameterIuivNV := dglGetProcAddress('glGetProgramEnvParameterIuivNV');
18295 end;
18296
18297 procedure Read_GL_NV_parameter_buffer_object;
18298 begin
18299   glProgramBufferParametersfvNV := dglGetProcAddress('glProgramBufferParametersfvNV');
18300   glProgramBufferParametersIivNV := dglGetProcAddress('glProgramBufferParametersIivNV');
18301   glProgramBufferParametersIuivNV := dglGetProcAddress('glProgramBufferParametersIuivNV');
18302 end;
18303
18304 procedure Read_GL_NV_transform_feedback;
18305 begin
18306   glBeginTransformFeedbackNV := dglGetProcAddress('glBeginTransformFeedbackNV');
18307   glEndTransformFeedbackNV := dglGetProcAddress('glEndTransformFeedbackNV');
18308   glTransformFeedbackAttribsNV := dglGetProcAddress('glTransformFeedbackAttribsNV');
18309   glBindBufferRangeNV := dglGetProcAddress('glBindBufferRangeNV');
18310   glBindBufferOffsetNV := dglGetProcAddress('glBindBufferOffsetNV');
18311   glBindBufferBaseNV := dglGetProcAddress('glBindBufferBaseNV');
18312   glTransformFeedbackVaryingsNV := dglGetProcAddress('glTransformFeedbackVaryingsNV');
18313   glActiveVaryingNV := dglGetProcAddress('glActiveVaryingNV');
18314   glGetVaryingLocationNV := dglGetProcAddress('glGetVaryingLocationNV');
18315   glGetActiveVaryingNV := dglGetProcAddress('glGetActiveVaryingNV');
18316   glGetTransformFeedbackVaryingNV := dglGetProcAddress('glGetTransformFeedbackVaryingNV');
18317   glTransformFeedbackStreamAttribsNV := dglGetProcAddress('glTransformFeedbackStreamAttribsNV');
18318 end;
18319
18320 procedure Read_GL_NV_conditional_render;
18321 begin
18322   glBeginConditionalRenderNV := dglGetProcAddress('glBeginConditionalRenderNV');
18323   glEndConditionalRenderNV := dglGetProcAddress('glEndConditionalRenderNV');
18324 end;
18325
18326 procedure Read_GL_NV_present_video;
18327 begin
18328   glPresentFrameKeyedNV := dglGetProcAddress('glPresentFrameKeyedNV');
18329   glPresentFrameDualFillNV := dglGetProcAddress('glPresentFrameDualFillNV');
18330   glGetVideoivNV := dglGetProcAddress('glGetVideoivNV');
18331   glGetVideouivNV := dglGetProcAddress('glGetVideouivNV');
18332   glGetVideoi64vNV := dglGetProcAddress('glGetVideoi64vNV');
18333   glGetVideoui64vNV := dglGetProcAddress('glGetVideoui64vNV');
18334 //  glVideoParameterivNV := dglGetProcAddress('glVideoParameterivNV');
18335 end;
18336
18337 procedure Read_GL_NV_explicit_multisample;
18338 begin
18339   glGetMultisamplefvNV := dglGetProcAddress('glGetMultisamplefvNV');
18340   glSampleMaskIndexedNV := dglGetProcAddress('glSampleMaskIndexedNV');
18341   glTexRenderbufferNV := dglGetProcAddress('glTexRenderbufferNV');
18342 end;
18343
18344 procedure Read_GL_NV_transform_feedback2;
18345 begin
18346   glBindTransformFeedbackNV := dglGetProcAddress('glBindTransformFeedbackNV');
18347   glDeleteTransformFeedbacksNV := dglGetProcAddress('glDeleteTransformFeedbacksNV');
18348   glGenTransformFeedbacksNV := dglGetProcAddress('glGenTransformFeedbacksNV');
18349   glIsTransformFeedbackNV := dglGetProcAddress('glIsTransformFeedbackNV');
18350   glPauseTransformFeedbackNV := dglGetProcAddress('glPauseTransformFeedbackNV');
18351   glResumeTransformFeedbackNV := dglGetProcAddress('glResumeTransformFeedbackNV');
18352   glDrawTransformFeedbackNV := dglGetProcAddress('glDrawTransformFeedbackNV');
18353 end;
18354
18355 procedure Read_GL_NV_video_capture;
18356 begin
18357   glBeginVideoCaptureNV := dglGetProcAddress('glBeginVideoCaptureNV');
18358   glBindVideoCaptureStreamBufferNV := dglGetProcAddress('glBindVideoCaptureStreamBufferNV');
18359   glBindVideoCaptureStreamTextureNV := dglGetProcAddress('glBindVideoCaptureStreamTextureNV');
18360   glEndVideoCaptureNV := dglGetProcAddress('glEndVideoCaptureNV');
18361   glGetVideoCaptureivNV := dglGetProcAddress('glGetVideoCaptureivNV');
18362   glGetVideoCaptureStreamivNV := dglGetProcAddress('glGetVideoCaptureStreamivNV');
18363   glGetVideoCaptureStreamfvNV := dglGetProcAddress('glGetVideoCaptureStreamfvNV');
18364   glGetVideoCaptureStreamdvNV := dglGetProcAddress('glGetVideoCaptureStreamdvNV');
18365   glVideoCaptureNV := dglGetProcAddress('glVideoCaptureNV');
18366   glVideoCaptureStreamParameterivNV := dglGetProcAddress('glVideoCaptureStreamParameterivNV');
18367   glVideoCaptureStreamParameterfvNV := dglGetProcAddress('glVideoCaptureStreamParameterfvNV');
18368   glVideoCaptureStreamParameterdvNV := dglGetProcAddress('glVideoCaptureStreamParameterdvNV');
18369 end;
18370
18371 procedure Read_GL_NV_copy_image;
18372 begin
18373   glCopyImageSubDataNV := dglGetProcAddress('glCopyImageSubDataNV');
18374 end;
18375
18376 procedure Read_GL_NV_shader_buffer_load;
18377 begin
18378   glMakeBufferResidentNV := dglGetProcAddress('glMakeBufferResidentNV');
18379   glMakeBufferNonResidentNV := dglGetProcAddress('glMakeBufferNonResidentNV');
18380   glIsBufferResidentNV := dglGetProcAddress('glIsBufferResidentNV');
18381   glMakeNamedBufferResidentNV := dglGetProcAddress('glMakeNamedBufferResidentNV');
18382   glMakeNamedBufferNonResidentNV := dglGetProcAddress('glMakeNamedBufferNonResidentNV');
18383   glIsNamedBufferResidentNV := dglGetProcAddress('glIsNamedBufferResidentNV');
18384   glGetBufferParameterui64vNV := dglGetProcAddress('glGetBufferParameterui64vNV');
18385   glGetNamedBufferParameterui64vNV := dglGetProcAddress('glGetNamedBufferParameterui64vNV');
18386   glGetIntegerui64vNV := dglGetProcAddress('glGetIntegerui64vNV');
18387   glUniformui64NV := dglGetProcAddress('glUniformui64NV');
18388   glUniformui64vNV := dglGetProcAddress('glUniformui64vNV');
18389   glGetUniformui64vNV := dglGetProcAddress('glGetUniformui64vNV');
18390   glProgramUniformui64NV := dglGetProcAddress('glProgramUniformui64NV');
18391   glProgramUniformui64vNV := dglGetProcAddress('glProgramUniformui64vNV');
18392 end;
18393
18394 procedure Read_GL_NV_vertex_buffer_unified_memory;
18395 begin
18396   glBufferAddressRangeNV := dglGetProcAddress('glBufferAddressRangeNV');
18397   glVertexFormatNV := dglGetProcAddress('glVertexFormatNV');
18398   glNormalFormatNV := dglGetProcAddress('glNormalFormatNV');
18399   glColorFormatNV := dglGetProcAddress('glColorFormatNV');
18400   glIndexFormatNV := dglGetProcAddress('glIndexFormatNV');
18401   glTexCoordFormatNV := dglGetProcAddress('glTexCoordFormatNV');
18402   glEdgeFlagFormatNV := dglGetProcAddress('glEdgeFlagFormatNV');
18403   glSecondaryColorFormatNV := dglGetProcAddress('glSecondaryColorFormatNV');
18404   glFogCoordFormatNV := dglGetProcAddress('glFogCoordFormatNV');
18405   glVertexAttribFormatNV := dglGetProcAddress('glVertexAttribFormatNV');
18406   glVertexAttribIFormatNV := dglGetProcAddress('glVertexAttribIFormatNV');
18407   glGetIntegerui64i_vNV := dglGetProcAddress('glGetIntegerui64i_vNV');
18408 end;
18409
18410 procedure Read_GL_NV_gpu_program5;
18411 begin
18412   glProgramSubroutineParametersuivNV := dglGetProcAddress('glProgramSubroutineParametersuivNV');
18413   glGetProgramSubroutineParameteruivNV := dglGetProcAddress('glGetProgramSubroutineParameteruivNV');
18414 end;
18415
18416 procedure Read_GL_NV_gpu_shader5;
18417 begin
18418   glUniform1i64NV := dglGetProcAddress('glUniform1i64NV');
18419   glUniform2i64NV := dglGetProcAddress('glUniform2i64NV');
18420   glUniform3i64NV := dglGetProcAddress('glUniform3i64NV');
18421   glUniform4i64NV := dglGetProcAddress('glUniform4i64NV');
18422   glUniform1i64vNV := dglGetProcAddress('glUniform1i64vNV');
18423   glUniform2i64vNV := dglGetProcAddress('glUniform2i64vNV');
18424   glUniform3i64vNV := dglGetProcAddress('glUniform3i64vNV');
18425   glUniform4i64vNV := dglGetProcAddress('glUniform4i64vNV');
18426   glUniform1ui64NV := dglGetProcAddress('glUniform1ui64NV');
18427   glUniform2ui64NV := dglGetProcAddress('glUniform2ui64NV');
18428   glUniform3ui64NV := dglGetProcAddress('glUniform3ui64NV');
18429   glUniform4ui64NV := dglGetProcAddress('glUniform4ui64NV');
18430   glUniform1ui64vNV := dglGetProcAddress('glUniform1ui64vNV');
18431   glUniform2ui64vNV := dglGetProcAddress('glUniform2ui64vNV');
18432   glUniform3ui64vNV := dglGetProcAddress('glUniform3ui64vNV');
18433   glUniform4ui64vNV := dglGetProcAddress('glUniform4ui64vNV');
18434   glGetUniformi64vNV := dglGetProcAddress('glGetUniformi64vNV');
18435   glProgramUniform1i64NV := dglGetProcAddress('glProgramUniform1i64NV');
18436   glProgramUniform2i64NV := dglGetProcAddress('glProgramUniform2i64NV');
18437   glProgramUniform3i64NV := dglGetProcAddress('glProgramUniform3i64NV');
18438   glProgramUniform4i64NV := dglGetProcAddress('glProgramUniform4i64NV');
18439   glProgramUniform1i64vNV := dglGetProcAddress('glProgramUniform1i64vNV');
18440   glProgramUniform2i64vNV := dglGetProcAddress('glProgramUniform2i64vNV');
18441   glProgramUniform3i64vNV := dglGetProcAddress('glProgramUniform3i64vNV');
18442   glProgramUniform4i64vNV := dglGetProcAddress('glProgramUniform4i64vNV');
18443   glProgramUniform1ui64NV := dglGetProcAddress('glProgramUniform1ui64NV');
18444   glProgramUniform2ui64NV := dglGetProcAddress('glProgramUniform2ui64NV');
18445   glProgramUniform3ui64NV := dglGetProcAddress('glProgramUniform3ui64NV');
18446   glProgramUniform4ui64NV := dglGetProcAddress('glProgramUniform4ui64NV');
18447   glProgramUniform1ui64vNV := dglGetProcAddress('glProgramUniform1ui64vNV');
18448   glProgramUniform2ui64vNV := dglGetProcAddress('glProgramUniform2ui64vNV');
18449   glProgramUniform3ui64vNV := dglGetProcAddress('glProgramUniform3ui64vNV');
18450   glProgramUniform4ui64vNV := dglGetProcAddress('glProgramUniform4ui64vNV');
18451 end;
18452
18453 procedure Read_GL_NV_vertex_attrib_integer_64bit;
18454 begin
18455   glVertexAttribL1i64NV := dglGetProcAddress('glVertexAttribL1i64NV');
18456   glVertexAttribL2i64NV := dglGetProcAddress('glVertexAttribL2i64NV');
18457   glVertexAttribL3i64NV := dglGetProcAddress('glVertexAttribL3i64NV');
18458   glVertexAttribL4i64NV := dglGetProcAddress('glVertexAttribL4i64NV');
18459   glVertexAttribL1i64vNV := dglGetProcAddress('glVertexAttribL1i64vNV');
18460   glVertexAttribL2i64vNV := dglGetProcAddress('glVertexAttribL2i64vNV');
18461   glVertexAttribL3i64vNV := dglGetProcAddress('glVertexAttribL3i64vNV');
18462   glVertexAttribL4i64vNV := dglGetProcAddress('glVertexAttribL4i64vNV');
18463   glVertexAttribL1ui64NV := dglGetProcAddress('glVertexAttribL1ui64NV');
18464   glVertexAttribL2ui64NV := dglGetProcAddress('glVertexAttribL2ui64NV');
18465   glVertexAttribL3ui64NV := dglGetProcAddress('glVertexAttribL3ui64NV');
18466   glVertexAttribL4ui64NV := dglGetProcAddress('glVertexAttribL4ui64NV');
18467   glVertexAttribL1ui64vNV := dglGetProcAddress('glVertexAttribL1ui64vNV');
18468   glVertexAttribL2ui64vNV := dglGetProcAddress('glVertexAttribL2ui64vNV');
18469   glVertexAttribL3ui64vNV := dglGetProcAddress('glVertexAttribL3ui64vNV');
18470   glVertexAttribL4ui64vNV := dglGetProcAddress('glVertexAttribL4ui64vNV');
18471   glGetVertexAttribLi64vNV := dglGetProcAddress('glGetVertexAttribLi64vNV');
18472   glGetVertexAttribLui64vNV := dglGetProcAddress('glGetVertexAttribLui64vNV');
18473   glVertexAttribLFormatNV := dglGetProcAddress('glVertexAttribLFormatNV');
18474 end;
18475
18476 procedure Read_GL_NV_vdpau_interop;
18477 begin
18478   glVDPAUInitNV := dglGetProcAddress('glVDPAUInitNV');
18479   glVDPAUFiniNV := dglGetProcAddress('glVDPAUFiniNV');
18480   glVDPAURegisterVideoSurfaceNV := dglGetProcAddress('glVDPAURegisterVideoSurfaceNV');
18481   glVDPAURegisterOutputSurfaceNV := dglGetProcAddress('glVDPAURegisterOutputSurfaceNV');
18482   glVDPAUIsSurfaceNV := dglGetProcAddress('glVDPAUIsSurfaceNV');
18483   glVDPAUUnregisterSurfaceNV := dglGetProcAddress('glVDPAUUnregisterSurfaceNV');
18484   glVDPAUGetSurfaceivNV := dglGetProcAddress('glVDPAUGetSurfaceivNV');
18485   glVDPAUSurfaceAccessNV := dglGetProcAddress('glVDPAUSurfaceAccessNV');
18486   glVDPAUMapSurfacesNV := dglGetProcAddress('glVDPAUMapSurfacesNV');
18487   glVDPAUUnmapSurfacesNV := dglGetProcAddress('glVDPAUUnmapSurfacesNV');
18488 end;
18489
18490 procedure Read_GL_NV_texture_barrier;
18491 begin
18492   glTextureBarrierNV := dglGetProcAddress('glTextureBarrierNV');
18493 end;
18494
18495 procedure Read_GL_PGI_misc_hints;
18496 begin
18497   glHintPGI := dglGetProcAddress('glHintPGI');
18498 end;
18499
18500 procedure Read_GL_SGIS_detail_texture;
18501 begin
18502   glDetailTexFuncSGIS := dglGetProcAddress('glDetailTexFuncSGIS');
18503   glGetDetailTexFuncSGIS := dglGetProcAddress('glGetDetailTexFuncSGIS');
18504 end;
18505
18506 procedure Read_GL_SGIS_fog_function;
18507 begin
18508   glFogFuncSGIS := dglGetProcAddress('glFogFuncSGIS');
18509   glGetFogFuncSGIS := dglGetProcAddress('glGetFogFuncSGIS');
18510 end;
18511
18512 procedure Read_GL_SGIS_multisample;
18513 begin
18514   glSampleMaskSGIS := dglGetProcAddress('glSampleMaskSGIS');
18515   glSamplePatternSGIS := dglGetProcAddress('glSamplePatternSGIS');
18516 end;
18517
18518 procedure Read_GL_SGIS_pixel_texture;
18519 begin
18520   glPixelTexGenParameteriSGIS := dglGetProcAddress('glPixelTexGenParameteriSGIS');
18521   glPixelTexGenParameterivSGIS := dglGetProcAddress('glPixelTexGenParameterivSGIS');
18522   glPixelTexGenParameterfSGIS := dglGetProcAddress('glPixelTexGenParameterfSGIS');
18523   glPixelTexGenParameterfvSGIS := dglGetProcAddress('glPixelTexGenParameterfvSGIS');
18524   glGetPixelTexGenParameterivSGIS := dglGetProcAddress('glGetPixelTexGenParameterivSGIS');
18525   glGetPixelTexGenParameterfvSGIS := dglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
18526 end;
18527
18528 procedure Read_GL_SGIS_point_parameters;
18529 begin
18530   glPointParameterfSGIS := dglGetProcAddress('glPointParameterfSGIS');
18531   glPointParameterfvSGIS := dglGetProcAddress('glPointParameterfvSGIS');
18532 end;
18533
18534 procedure Read_GL_SGIS_sharpen_texture;
18535 begin
18536   glSharpenTexFuncSGIS := dglGetProcAddress('glSharpenTexFuncSGIS');
18537   glGetSharpenTexFuncSGIS := dglGetProcAddress('glGetSharpenTexFuncSGIS');
18538 end;
18539
18540 procedure Read_GL_SGIS_texture4D;
18541 begin
18542   glTexImage4DSGIS := dglGetProcAddress('glTexImage4DSGIS');
18543   glTexSubImage4DSGIS := dglGetProcAddress('glTexSubImage4DSGIS');
18544 end;
18545
18546 procedure Read_GL_SGIS_texture_color_mask;
18547 begin
18548   glTextureColorMaskSGIS := dglGetProcAddress('glTextureColorMaskSGIS');
18549 end;
18550
18551 procedure Read_GL_SGIS_texture_filter4;
18552 begin
18553   glGetTexFilterFuncSGIS := dglGetProcAddress('glGetTexFilterFuncSGIS');
18554   glTexFilterFuncSGIS := dglGetProcAddress('glTexFilterFuncSGIS');
18555 end;
18556
18557 procedure Read_GL_SGIX_async;
18558 begin
18559   glAsyncMarkerSGIX := dglGetProcAddress('glAsyncMarkerSGIX');
18560   glFinishAsyncSGIX := dglGetProcAddress('glFinishAsyncSGIX');
18561   glPollAsyncSGIX := dglGetProcAddress('glPollAsyncSGIX');
18562   glGenAsyncMarkersSGIX := dglGetProcAddress('glGenAsyncMarkersSGIX');
18563   glDeleteAsyncMarkersSGIX := dglGetProcAddress('glDeleteAsyncMarkersSGIX');
18564   glIsAsyncMarkerSGIX := dglGetProcAddress('glIsAsyncMarkerSGIX');
18565 end;
18566
18567 procedure Read_GL_SGIX_flush_raster;
18568 begin
18569   glFlushRasterSGIX := dglGetProcAddress('glFlushRasterSGIX');
18570 end;
18571
18572 procedure Read_GL_SGIX_fragment_lighting;
18573 begin
18574   glFragmentColorMaterialSGIX := dglGetProcAddress('glFragmentColorMaterialSGIX');
18575   glFragmentLightfSGIX := dglGetProcAddress('glFragmentLightfSGIX');
18576   glFragmentLightfvSGIX := dglGetProcAddress('glFragmentLightfvSGIX');
18577   glFragmentLightiSGIX := dglGetProcAddress('glFragmentLightiSGIX');
18578   glFragmentLightivSGIX := dglGetProcAddress('glFragmentLightivSGIX');
18579   glFragmentLightModelfSGIX := dglGetProcAddress('glFragmentLightModelfSGIX');
18580   glFragmentLightModelfvSGIX := dglGetProcAddress('glFragmentLightModelfvSGIX');
18581   glFragmentLightModeliSGIX := dglGetProcAddress('glFragmentLightModeliSGIX');
18582   glFragmentLightModelivSGIX := dglGetProcAddress('glFragmentLightModelivSGIX');
18583   glFragmentMaterialfSGIX := dglGetProcAddress('glFragmentMaterialfSGIX');
18584   glFragmentMaterialfvSGIX := dglGetProcAddress('glFragmentMaterialfvSGIX');
18585   glFragmentMaterialiSGIX := dglGetProcAddress('glFragmentMaterialiSGIX');
18586   glFragmentMaterialivSGIX := dglGetProcAddress('glFragmentMaterialivSGIX');
18587   glGetFragmentLightfvSGIX := dglGetProcAddress('glGetFragmentLightfvSGIX');
18588   glGetFragmentLightivSGIX := dglGetProcAddress('glGetFragmentLightivSGIX');
18589   glGetFragmentMaterialfvSGIX := dglGetProcAddress('glGetFragmentMaterialfvSGIX');
18590   glGetFragmentMaterialivSGIX := dglGetProcAddress('glGetFragmentMaterialivSGIX');
18591   glLightEnviSGIX := dglGetProcAddress('glLightEnviSGIX');
18592 end;
18593
18594 procedure Read_GL_SGIX_framezoom;
18595 begin
18596   glFrameZoomSGIX := dglGetProcAddress('glFrameZoomSGIX');
18597 end;
18598
18599 procedure Read_GL_SGIX_igloo_interface;
18600 begin
18601   glIglooInterfaceSGIX := dglGetProcAddress('glIglooInterfaceSGIX');
18602 end;
18603
18604 procedure Read_GL_SGIX_instruments;
18605 begin
18606   glGetInstrumentsSGIX := dglGetProcAddress('glGetInstrumentsSGIX');
18607   glInstrumentsBufferSGIX := dglGetProcAddress('glInstrumentsBufferSGIX');
18608   glPollInstrumentsSGIX := dglGetProcAddress('glPollInstrumentsSGIX');
18609   glReadInstrumentsSGIX := dglGetProcAddress('glReadInstrumentsSGIX');
18610   glStartInstrumentsSGIX := dglGetProcAddress('glStartInstrumentsSGIX');
18611   glStopInstrumentsSGIX := dglGetProcAddress('glStopInstrumentsSGIX');
18612 end;
18613
18614 procedure Read_GL_SGIX_list_priority;
18615 begin
18616   glGetListParameterfvSGIX := dglGetProcAddress('glGetListParameterfvSGIX');
18617   glGetListParameterivSGIX := dglGetProcAddress('glGetListParameterivSGIX');
18618   glListParameterfSGIX := dglGetProcAddress('glListParameterfSGIX');
18619   glListParameterfvSGIX := dglGetProcAddress('glListParameterfvSGIX');
18620   glListParameteriSGIX := dglGetProcAddress('glListParameteriSGIX');
18621   glListParameterivSGIX := dglGetProcAddress('glListParameterivSGIX');
18622 end;
18623
18624 procedure Read_GL_SGIX_pixel_texture;
18625 begin
18626   glPixelTexGenSGIX := dglGetProcAddress('glPixelTexGenSGIX');
18627 end;
18628
18629 procedure Read_GL_SGIX_polynomial_ffd;
18630 begin
18631   glDeformationMap3dSGIX := dglGetProcAddress('glDeformationMap3dSGIX');
18632   glDeformationMap3fSGIX := dglGetProcAddress('glDeformationMap3fSGIX');
18633   glDeformSGIX := dglGetProcAddress('glDeformSGIX');
18634   glLoadIdentityDeformationMapSGIX := dglGetProcAddress('glLoadIdentityDeformationMapSGIX');
18635 end;
18636
18637 procedure Read_GL_SGIX_reference_plane;
18638 begin
18639   glReferencePlaneSGIX := dglGetProcAddress('glReferencePlaneSGIX');
18640 end;
18641
18642 procedure Read_GL_SGIX_sprite;
18643 begin
18644   glSpriteParameterfSGIX := dglGetProcAddress('glSpriteParameterfSGIX');
18645   glSpriteParameterfvSGIX := dglGetProcAddress('glSpriteParameterfvSGIX');
18646   glSpriteParameteriSGIX := dglGetProcAddress('glSpriteParameteriSGIX');
18647   glSpriteParameterivSGIX := dglGetProcAddress('glSpriteParameterivSGIX');
18648 end;
18649
18650 procedure Read_GL_SGIX_tag_sample_buffer;
18651 begin
18652   glTagSampleBufferSGIX := dglGetProcAddress('glTagSampleBufferSGIX');
18653 end;
18654
18655 procedure Read_GL_SGI_color_table;
18656 begin
18657   glColorTableSGI := dglGetProcAddress('glColorTableSGI');
18658   glColorTableParameterfvSGI := dglGetProcAddress('glColorTableParameterfvSGI');
18659   glColorTableParameterivSGI := dglGetProcAddress('glColorTableParameterivSGI');
18660   glCopyColorTableSGI := dglGetProcAddress('glCopyColorTableSGI');
18661   glGetColorTableSGI := dglGetProcAddress('glGetColorTableSGI');
18662   glGetColorTableParameterfvSGI := dglGetProcAddress('glGetColorTableParameterfvSGI');
18663   glGetColorTableParameterivSGI := dglGetProcAddress('glGetColorTableParameterivSGI');
18664 end;
18665
18666 procedure Read_GL_SUNX_constant_data;
18667 begin
18668   glFinishTextureSUNX := dglGetProcAddress('glFinishTextureSUNX');
18669 end;
18670
18671 procedure Read_GL_SUN_global_alpha;
18672 begin
18673   glGlobalAlphaFactorbSUN := dglGetProcAddress('glGlobalAlphaFactorbSUN');
18674   glGlobalAlphaFactorsSUN := dglGetProcAddress('glGlobalAlphaFactorsSUN');
18675   glGlobalAlphaFactoriSUN := dglGetProcAddress('glGlobalAlphaFactoriSUN');
18676   glGlobalAlphaFactorfSUN := dglGetProcAddress('glGlobalAlphaFactorfSUN');
18677   glGlobalAlphaFactordSUN := dglGetProcAddress('glGlobalAlphaFactordSUN');
18678   glGlobalAlphaFactorubSUN := dglGetProcAddress('glGlobalAlphaFactorubSUN');
18679   glGlobalAlphaFactorusSUN := dglGetProcAddress('glGlobalAlphaFactorusSUN');
18680   glGlobalAlphaFactoruiSUN := dglGetProcAddress('glGlobalAlphaFactoruiSUN');
18681 end;
18682
18683 procedure Read_GL_SUN_mesh_array;
18684 begin
18685   glDrawMeshArraysSUN := dglGetProcAddress('glDrawMeshArraysSUN');
18686 end;
18687
18688 procedure Read_GL_SUN_triangle_list;
18689 begin
18690   glReplacementCodeuiSUN := dglGetProcAddress('glReplacementCodeuiSUN');
18691   glReplacementCodeusSUN := dglGetProcAddress('glReplacementCodeusSUN');
18692   glReplacementCodeubSUN := dglGetProcAddress('glReplacementCodeubSUN');
18693   glReplacementCodeuivSUN := dglGetProcAddress('glReplacementCodeuivSUN');
18694   glReplacementCodeusvSUN := dglGetProcAddress('glReplacementCodeusvSUN');
18695   glReplacementCodeubvSUN := dglGetProcAddress('glReplacementCodeubvSUN');
18696   glReplacementCodePointerSUN := dglGetProcAddress('glReplacementCodePointerSUN');
18697 end;
18698
18699 procedure Read_GL_SUN_vertex;
18700 begin
18701   glColor4ubVertex2fSUN := dglGetProcAddress('glColor4ubVertex2fSUN');
18702   glColor4ubVertex2fvSUN := dglGetProcAddress('glColor4ubVertex2fvSUN');
18703   glColor4ubVertex3fSUN := dglGetProcAddress('glColor4ubVertex3fSUN');
18704   glColor4ubVertex3fvSUN := dglGetProcAddress('glColor4ubVertex3fvSUN');
18705   glColor3fVertex3fSUN := dglGetProcAddress('glColor3fVertex3fSUN');
18706   glColor3fVertex3fvSUN := dglGetProcAddress('glColor3fVertex3fvSUN');
18707   glNormal3fVertex3fSUN := dglGetProcAddress('glNormal3fVertex3fSUN');
18708   glNormal3fVertex3fvSUN := dglGetProcAddress('glNormal3fVertex3fvSUN');
18709   glColor4fNormal3fVertex3fSUN := dglGetProcAddress('glColor4fNormal3fVertex3fSUN');
18710   glColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
18711   glTexCoord2fVertex3fSUN := dglGetProcAddress('glTexCoord2fVertex3fSUN');
18712   glTexCoord2fVertex3fvSUN := dglGetProcAddress('glTexCoord2fVertex3fvSUN');
18713   glTexCoord4fVertex4fSUN := dglGetProcAddress('glTexCoord4fVertex4fSUN');
18714   glTexCoord4fVertex4fvSUN := dglGetProcAddress('glTexCoord4fVertex4fvSUN');
18715   glTexCoord2fColor4ubVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
18716   glTexCoord2fColor4ubVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
18717   glTexCoord2fColor3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
18718   glTexCoord2fColor3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
18719   glTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
18720   glTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
18721   glTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
18722   glTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
18723   glTexCoord4fColor4fNormal3fVertex4fSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
18724   glTexCoord4fColor4fNormal3fVertex4fvSUN := dglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
18725   glReplacementCodeuiVertex3fSUN := dglGetProcAddress('glReplacementCodeuiVertex3fSUN');
18726   glReplacementCodeuiVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
18727   glReplacementCodeuiColor4ubVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
18728   glReplacementCodeuiColor4ubVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
18729   glReplacementCodeuiColor3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
18730   glReplacementCodeuiColor3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
18731   glReplacementCodeuiNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
18732   glReplacementCodeuiNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
18733   glReplacementCodeuiColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
18734   glReplacementCodeuiColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
18735   glReplacementCodeuiTexCoord2fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
18736   glReplacementCodeuiTexCoord2fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
18737   glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
18738   glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
18739   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
18740   glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := dglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
18741 end;
18742
18743 {$IFDEF DGL_WIN}
18744 procedure Read_WGL_ARB_buffer_region;
18745 begin
18746   wglCreateBufferRegionARB := dglGetProcAddress('wglCreateBufferRegionARB');
18747   wglDeleteBufferRegionARB := dglGetProcAddress('wglDeleteBufferRegionARB');
18748   wglSaveBufferRegionARB := dglGetProcAddress('wglSaveBufferRegionARB');
18749   wglRestoreBufferRegionARB := dglGetProcAddress('wglRestoreBufferRegionARB');
18750 end;
18751
18752 procedure Read_WGL_ARB_extensions_string;
18753 begin
18754   wglGetExtensionsStringARB := dglGetProcAddress('wglGetExtensionsStringARB');
18755 end;
18756
18757 procedure Read_WGL_ARB_make_current_read;
18758 begin
18759   wglMakeContextCurrentARB := dglGetProcAddress('wglMakeContextCurrentARB');
18760   wglGetCurrentReadDCARB := dglGetProcAddress('wglGetCurrentReadDCARB');
18761 end;
18762
18763 procedure Read_WGL_ARB_pbuffer;
18764 begin
18765   wglCreatePbufferARB := dglGetProcAddress('wglCreatePbufferARB');
18766   wglGetPbufferDCARB := dglGetProcAddress('wglGetPbufferDCARB');
18767   wglReleasePbufferDCARB := dglGetProcAddress('wglReleasePbufferDCARB');
18768   wglDestroyPbufferARB := dglGetProcAddress('wglDestroyPbufferARB');
18769   wglQueryPbufferARB := dglGetProcAddress('wglQueryPbufferARB');
18770 end;
18771
18772 procedure Read_WGL_ARB_pixel_format;
18773 begin
18774   wglGetPixelFormatAttribivARB := dglGetProcAddress('wglGetPixelFormatAttribivARB');
18775   wglGetPixelFormatAttribfvARB := dglGetProcAddress('wglGetPixelFormatAttribfvARB');
18776   wglChoosePixelFormatARB := dglGetProcAddress('wglChoosePixelFormatARB');
18777 end;
18778
18779 procedure Read_WGL_ARB_pixel_format_float;
18780 begin
18781   wglClampColorARB := dglGetProcAddress('wglClampColorARB');
18782 end;
18783
18784 procedure Read_WGL_ARB_render_texture;
18785 begin
18786   wglBindTexImageARB := dglGetProcAddress('wglBindTexImageARB');
18787   wglReleaseTexImageARB := dglGetProcAddress('wglReleaseTexImageARB');
18788   wglSetPbufferAttribARB := dglGetProcAddress('wglSetPbufferAttribARB');
18789 end;
18790
18791 procedure Read_WGL_ARB_create_context;
18792 begin
18793   wglCreateContextAttribsARB := dglGetProcAddress('wglCreateContextAttribsARB');
18794 end;
18795
18796 procedure Read_WGL_AMD_gpu_association;
18797 begin
18798   wglGetGPUIDsAMD := dglGetProcAddress('wglGetGPUIDsAMD');
18799   wglGetGPUInfoAMD := dglGetProcAddress('wglGetGPUInfoAMD');
18800   wglGetContextGPUIDAMD := dglGetProcAddress('wglGetContextGPUIDAMD');
18801   wglCreateAssociatedContextAMD := dglGetProcAddress('wglCreateAssociatedContextAMD');
18802   wglCreateAssociatedContextAttribsAMD := dglGetProcAddress('wglCreateAssociatedContextAttribsAMD');
18803   wglDeleteAssociatedContextAMD := dglGetProcAddress('wglDeleteAssociatedContextAMD');
18804   wglMakeAssociatedContextCurrentAMD := dglGetProcAddress('wglMakeAssociatedContextCurrentAMD');
18805   wglGetCurrentAssociatedContextAMD := dglGetProcAddress('wglGetCurrentAssociatedContextAMD');
18806   wglBlitContextFramebufferAMD := dglGetProcAddress('wglBlitContextFramebufferAMD');
18807 end;
18808
18809 procedure Read_WGL_EXT_display_color_table;
18810 begin
18811   wglCreateDisplayColorTableEXT := dglGetProcAddress('wglCreateDisplayColorTableEXT');
18812   wglLoadDisplayColorTableEXT := dglGetProcAddress('wglLoadDisplayColorTableEXT');
18813   wglBindDisplayColorTableEXT := dglGetProcAddress('wglBindDisplayColorTableEXT');
18814   wglDestroyDisplayColorTableEXT := dglGetProcAddress('wglDestroyDisplayColorTableEXT');
18815 end;
18816
18817 procedure Read_WGL_EXT_extensions_string;
18818 begin
18819   wglGetExtensionsStringEXT := dglGetProcAddress('wglGetExtensionsStringEXT');
18820 end;
18821
18822 procedure Read_WGL_EXT_make_current_read;
18823 begin
18824   wglMakeContextCurrentEXT := dglGetProcAddress('wglMakeContextCurrentEXT');
18825   wglGetCurrentReadDCEXT := dglGetProcAddress('wglGetCurrentReadDCEXT');
18826 end;
18827
18828 procedure Read_WGL_EXT_pbuffer;
18829 begin
18830   wglCreatePbufferEXT := dglGetProcAddress('wglCreatePbufferEXT');
18831   wglGetPbufferDCEXT := dglGetProcAddress('wglGetPbufferDCEXT');
18832   wglReleasePbufferDCEXT := dglGetProcAddress('wglReleasePbufferDCEXT');
18833   wglDestroyPbufferEXT := dglGetProcAddress('wglDestroyPbufferEXT');
18834   wglQueryPbufferEXT := dglGetProcAddress('wglQueryPbufferEXT');
18835 end;
18836
18837 procedure Read_WGL_EXT_pixel_format;
18838 begin
18839   wglGetPixelFormatAttribivEXT := dglGetProcAddress('wglGetPixelFormatAttribivEXT');
18840   wglGetPixelFormatAttribfvEXT := dglGetProcAddress('wglGetPixelFormatAttribfvEXT');
18841   wglChoosePixelFormatEXT := dglGetProcAddress('wglChoosePixelFormatEXT');
18842 end;
18843
18844 procedure Read_WGL_EXT_swap_control;
18845 begin
18846   wglSwapIntervalEXT := dglGetProcAddress('wglSwapIntervalEXT');
18847   wglGetSwapIntervalEXT := dglGetProcAddress('wglGetSwapIntervalEXT');
18848 end;
18849
18850 procedure Read_WGL_I3D_digital_video_control;
18851 begin
18852   wglGetDigitalVideoParametersI3D := dglGetProcAddress('wglGetDigitalVideoParametersI3D');
18853   wglSetDigitalVideoParametersI3D := dglGetProcAddress('wglSetDigitalVideoParametersI3D');
18854 end;
18855
18856 procedure Read_WGL_I3D_gamma;
18857 begin
18858   wglGetGammaTableParametersI3D := dglGetProcAddress('wglGetGammaTableParametersI3D');
18859   wglSetGammaTableParametersI3D := dglGetProcAddress('wglSetGammaTableParametersI3D');
18860   wglGetGammaTableI3D := dglGetProcAddress('wglGetGammaTableI3D');
18861   wglSetGammaTableI3D := dglGetProcAddress('wglSetGammaTableI3D');
18862 end;
18863
18864 procedure Read_WGL_I3D_genlock;
18865 begin
18866   wglEnableGenlockI3D := dglGetProcAddress('wglEnableGenlockI3D');
18867   wglDisableGenlockI3D := dglGetProcAddress('wglDisableGenlockI3D');
18868   wglIsEnabledGenlockI3D := dglGetProcAddress('wglIsEnabledGenlockI3D');
18869   wglGenlockSourceI3D := dglGetProcAddress('wglGenlockSourceI3D');
18870   wglGetGenlockSourceI3D := dglGetProcAddress('wglGetGenlockSourceI3D');
18871   wglGenlockSourceEdgeI3D := dglGetProcAddress('wglGenlockSourceEdgeI3D');
18872   wglGetGenlockSourceEdgeI3D := dglGetProcAddress('wglGetGenlockSourceEdgeI3D');
18873   wglGenlockSampleRateI3D := dglGetProcAddress('wglGenlockSampleRateI3D');
18874   wglGetGenlockSampleRateI3D := dglGetProcAddress('wglGetGenlockSampleRateI3D');
18875   wglGenlockSourceDelayI3D := dglGetProcAddress('wglGenlockSourceDelayI3D');
18876   wglGetGenlockSourceDelayI3D := dglGetProcAddress('wglGetGenlockSourceDelayI3D');
18877   wglQueryGenlockMaxSourceDelayI3D := dglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
18878 end;
18879
18880 procedure Read_WGL_I3D_image_buffer;
18881 begin
18882   wglCreateImageBufferI3D := dglGetProcAddress('wglCreateImageBufferI3D');
18883   wglDestroyImageBufferI3D := dglGetProcAddress('wglDestroyImageBufferI3D');
18884   wglAssociateImageBufferEventsI3D := dglGetProcAddress('wglAssociateImageBufferEventsI3D');
18885   wglReleaseImageBufferEventsI3D := dglGetProcAddress('wglReleaseImageBufferEventsI3D');
18886 end;
18887
18888 procedure Read_WGL_I3D_swap_frame_lock;
18889 begin
18890   wglEnableFrameLockI3D := dglGetProcAddress('wglEnableFrameLockI3D');
18891   wglDisableFrameLockI3D := dglGetProcAddress('wglDisableFrameLockI3D');
18892   wglIsEnabledFrameLockI3D := dglGetProcAddress('wglIsEnabledFrameLockI3D');
18893   wglQueryFrameLockMasterI3D := dglGetProcAddress('wglQueryFrameLockMasterI3D');
18894 end;
18895
18896 procedure Read_WGL_I3D_swap_frame_usage;
18897 begin
18898   wglGetFrameUsageI3D := dglGetProcAddress('wglGetFrameUsageI3D');
18899   wglBeginFrameTrackingI3D := dglGetProcAddress('wglBeginFrameTrackingI3D');
18900   wglEndFrameTrackingI3D := dglGetProcAddress('wglEndFrameTrackingI3D');
18901   wglQueryFrameTrackingI3D := dglGetProcAddress('wglQueryFrameTrackingI3D');
18902 end;
18903
18904 procedure Read_WGL_NV_vertex_array_range;
18905 begin
18906   wglAllocateMemoryNV := dglGetProcAddress('wglAllocateMemoryNV');
18907   wglFreeMemoryNV := dglGetProcAddress('wglFreeMemoryNV');
18908 end;
18909
18910 procedure Read_WGL_NV_present_video;
18911 begin
18912   wglEnumerateVideoDevicesNV := dglGetProcAddress('wglEnumerateVideoDevicesNV');
18913   wglBindVideoDeviceNV := dglGetProcAddress('wglBindVideoDeviceNV');
18914   wglQueryCurrentContextNV := dglGetProcAddress('wglQueryCurrentContextNV');
18915 end;
18916
18917 procedure Read_WGL_NV_video_output;
18918 begin
18919   wglGetVideoDeviceNV := dglGetProcAddress('wglGetVideoDeviceNV');
18920   wglReleaseVideoDeviceNV := dglGetProcAddress('wglReleaseVideoDeviceNV');
18921   wglBindVideoImageNV := dglGetProcAddress('wglBindVideoImageNV');
18922   wglReleaseVideoImageNV := dglGetProcAddress('wglReleaseVideoImageNV');
18923   wglSendPbufferToVideoNV := dglGetProcAddress('wglSendPbufferToVideoNV');
18924   wglGetVideoInfoNV := dglGetProcAddress('wglGetVideoInfoNV');
18925 end;
18926
18927 procedure Read_WGL_NV_swap_group;
18928 begin
18929   wglJoinSwapGroupNV := dglGetProcAddress('wglJoinSwapGroupNV');
18930   wglBindSwapBarrierNV := dglGetProcAddress('wglBindSwapBarrierNV');
18931   wglQuerySwapGroupNV := dglGetProcAddress('wglQuerySwapGroupNV');
18932   wglQueryMaxSwapGroupsNV := dglGetProcAddress('wglQueryMaxSwapGroupsNV');
18933   wglQueryFrameCountNV := dglGetProcAddress('wglQueryFrameCountNV');
18934   wglResetFrameCountNV := dglGetProcAddress('wglResetFrameCountNV');
18935 end;
18936
18937 procedure Read_WGL_NV_gpu_affinity;
18938 begin
18939   wglEnumGpusNV := dglGetProcAddress('wglEnumGpusNV');
18940   wglEnumGpuDevicesNV := dglGetProcAddress('wglEnumGpuDevicesNV');
18941   wglCreateAffinityDCNV := dglGetProcAddress('wglCreateAffinityDCNV');
18942   wglEnumGpusFromAffinityDCNV := dglGetProcAddress('wglEnumGpusFromAffinityDCNV');
18943   wglDeleteDCNV := dglGetProcAddress('wglDeleteDCNV');
18944 end;
18945
18946 procedure Read_WGL_NV_video_capture;
18947 begin
18948   wglBindVideoCaptureDeviceNV := dglGetProcAddress('wglBindVideoCaptureDeviceNV');
18949   wglEnumerateVideoCaptureDevicesNV := dglGetProcAddress('wglEnumerateVideoCaptureDevicesNV');
18950   wglLockVideoCaptureDeviceNV := dglGetProcAddress('wglLockVideoCaptureDeviceNV');
18951   wglQueryVideoCaptureDeviceNV := dglGetProcAddress('wglQueryVideoCaptureDeviceNV');
18952   wglReleaseVideoCaptureDeviceNV := dglGetProcAddress('wglReleaseVideoCaptureDeviceNV');
18953 end;
18954
18955 procedure Read_WGL_NV_copy_image;
18956 begin
18957   wglCopyImageSubDataNV := dglGetProcAddress('wglCopyImageSubDataNV');
18958 end;
18959
18960 procedure Read_WGL_NV_DX_interop;
18961 begin
18962   wglDXSetResourceShareHandleNV := dglGetProcAddress('wglDXSetResourceShareHandleNV');
18963   wglDXOpenDeviceNV := dglGetProcAddress('wglDXOpenDeviceNV');
18964   wglDXCloseDeviceNV := dglGetProcAddress('wglDXCloseDeviceNV');
18965   wglDXRegisterObjectNV := dglGetProcAddress('wglDXRegisterObjectNV');
18966   wglDXUnregisterObjectNV := dglGetProcAddress('wglDXUnregisterObjectNV');
18967   wglDXObjectAccessNV := dglGetProcAddress('wglDXObjectAccessNV');
18968   wglDXLockObjectsNV := dglGetProcAddress('wglDXLockObjectsNV');
18969   wglDXUnlockObjectsNV := dglGetProcAddress('wglDXUnlockObjectsNV');
18970 end;
18971
18972
18973 procedure Read_WGL_OML_sync_control;
18974 begin
18975   wglGetSyncValuesOML := dglGetProcAddress('wglGetSyncValuesOML');
18976   wglGetMscRateOML := dglGetProcAddress('wglGetMscRateOML');
18977   wglSwapBuffersMscOML := dglGetProcAddress('wglSwapBuffersMscOML');
18978   wglSwapLayerBuffersMscOML := dglGetProcAddress('wglSwapLayerBuffersMscOML');
18979   wglWaitForMscOML := dglGetProcAddress('wglWaitForMscOML');
18980   wglWaitForSbcOML := dglGetProcAddress('wglWaitForSbcOML');
18981 end;
18982
18983 procedure Read_WGL_3DL_stereo_control;
18984 begin
18985   wglSetStereoEmitterState3DL := dglGetProcAddress('wglSetStereoEmitterState3DL');
18986 end;
18987
18988 procedure Read_WIN_draw_range_elements;
18989 begin
18990   glDrawRangeElementsWIN := dglGetProcAddress('glDrawRangeElementsWIN');
18991 end;
18992
18993 procedure Read_WIN_swap_hint;
18994 begin
18995   glAddSwapHintRectWIN := dglGetProcAddress('glAddSwapHintRectWIN');
18996 end;
18997 {$ENDIF}
18998
18999
19000 procedure ReadExtensions;
19001 begin
19002   ReadOpenGLCore;
19003
19004   Read_GL_3DFX_tbuffer;
19005   Read_GL_APPLE_element_array;
19006   Read_GL_APPLE_fence;
19007   Read_GL_APPLE_vertex_array_object;
19008   Read_GL_APPLE_vertex_array_range;
19009   Read_GL_APPLE_texture_range;
19010   Read_GL_APPLE_vertex_program_evaluators;
19011   Read_GL_APPLE_object_purgeable;
19012   Read_GL_ARB_matrix_palette;
19013   Read_GL_ARB_multitexture;
19014   Read_GL_ARB_point_parameters;
19015   Read_GL_ARB_texture_compression;
19016   Read_GL_ARB_transpose_matrix;
19017   Read_GL_ARB_vertex_blend;
19018   Read_GL_ARB_vertex_buffer_object;
19019   Read_GL_ARB_vertex_program;
19020   Read_GL_ARB_window_pos;
19021   Read_GL_ARB_color_buffer_float;
19022   Read_GL_ARB_Shader_Objects;
19023   Read_GL_ARB_occlusion_query;
19024   Read_GL_ARB_draw_instanced;
19025   Read_GL_ARB_framebuffer_object;
19026   Read_GL_ARB_geometry_shader4;
19027   Read_GL_ARB_instanced_arrays;
19028   Read_GL_ARB_map_buffer_range;
19029   Read_GL_ARB_texture_buffer_object;
19030   Read_GL_ARB_vertex_array_object;
19031   Read_GL_ARB_uniform_buffer_object;
19032   Read_GL_ARB_copy_buffer;
19033   Read_GL_ARB_draw_elements_base_vertex;
19034   Read_GL_ARB_provoking_vertex;
19035   Read_GL_ARB_sync;
19036   Read_GL_ARB_texture_multisample;
19037   Read_GL_ARB_draw_buffers_blend;
19038   Read_GL_ARB_sample_shading;
19039   Read_GL_ARB_shading_language_include;
19040   Read_GL_ARB_sparse_texture;
19041   Read_GL_ARB_sparse_buffer;
19042   Read_GL_ARB_blend_func_extended;
19043   Read_GL_ARB_sampler_objects;
19044   Read_GL_ARB_timer_query;
19045   Read_GL_ARB_vertex_type_2_10_10_10_rev;
19046   Read_GL_ARB_draw_indirect;
19047   Read_GL_ARB_gpu_shader_fp64;
19048   Read_GL_ARB_shader_subroutine;
19049   Read_GL_ARB_tessellation_shader;
19050   Read_GL_ARB_transform_feedback2;
19051   Read_GL_ARB_transform_feedback3;
19052   Read_GL_ARB_ES2_compatibility;
19053   Read_GL_ARB_get_program_binary;
19054   Read_GL_ARB_separate_shader_objects;
19055   Read_GL_ARB_vertex_attrib_64bit;
19056   Read_GL_ARB_viewport_array;
19057   Read_GL_ARB_cl_event;
19058   Read_GL_ARB_debug_output;
19059   Read_GL_ARB_robustness;
19060   //
19061   Read_GL_ATI_draw_buffers;
19062   Read_GL_ATI_element_array;
19063   Read_GL_ATI_envmap_bumpmap;
19064   Read_GL_ATI_fragment_shader;
19065   Read_GL_ATI_map_object_buffer;
19066   Read_GL_ATI_pn_triangles;
19067   Read_GL_ATI_separate_stencil;
19068   Read_GL_ATI_vertex_array_object;
19069   Read_GL_ATI_vertex_attrib_array_object;
19070   Read_GL_ATI_vertex_streams;
19071   Read_GL_AMD_performance_monitor;
19072   Read_GL_AMD_vertex_shader_tesselator;
19073   Read_GL_AMD_draw_buffers_blend;
19074   Read_GL_AMD_name_gen_delete;
19075   Read_GL_AMD_debug_output;
19076   Read_GL_AMD_stencil_operation_extended;
19077   Read_GL_EXT_blend_color;
19078   Read_GL_EXT_blend_func_separate;
19079   Read_GL_EXT_blend_minmax;
19080   Read_GL_EXT_color_subtable;
19081   Read_GL_EXT_compiled_vertex_array;
19082   Read_GL_EXT_convolution;
19083   Read_GL_EXT_coordinate_frame;
19084   Read_GL_EXT_copy_texture;
19085   Read_GL_EXT_cull_vertex;
19086   Read_GL_EXT_draw_range_elements;
19087   Read_GL_EXT_fog_coord;
19088   Read_GL_EXT_framebuffer_object;
19089   Read_GL_EXT_histogram;
19090   Read_GL_EXT_index_func;
19091   Read_GL_EXT_index_material;
19092   Read_GL_EXT_multi_draw_arrays;
19093   Read_GL_EXT_multisample;
19094   Read_GL_EXT_paletted_texture;
19095   Read_GL_EXT_pixel_transform;
19096   Read_GL_EXT_point_parameters;
19097   Read_GL_EXT_polygon_offset;
19098   Read_GL_EXT_secondary_color;
19099   Read_GL_EXT_stencil_two_side;
19100   Read_GL_EXT_subtexture;
19101   Read_GL_EXT_texture3D;
19102   Read_GL_EXT_texture_object;
19103   Read_GL_EXT_texture_perturb_normal;
19104   Read_GL_EXT_vertex_array;
19105   Read_GL_EXT_vertex_shader;
19106   Read_GL_EXT_vertex_weighting;
19107   Read_GL_EXT_depth_bounds_test;
19108   Read_GL_EXT_blend_equation_separate;
19109   Read_GL_EXT_stencil_clear_tag;
19110   Read_GL_EXT_framebuffer_blit;
19111   Read_GL_EXT_framebuffer_multisample;
19112   Read_GL_EXT_timer_query;
19113   Read_GL_EXT_gpu_program_parameters;
19114   Read_GL_EXT_bindable_uniform;
19115   Read_GL_EXT_draw_buffers2;
19116   Read_GL_EXT_draw_instanced;
19117   Read_GL_EXT_geometry_shader4;
19118   Read_GL_EXT_gpu_shader4;
19119   Read_GL_EXT_texture_array;
19120   Read_GL_EXT_texture_buffer_object;
19121   Read_GL_EXT_texture_integer;
19122   Read_GL_EXT_transform_feedback;
19123   Read_GL_EXT_direct_state_access;
19124   Read_GL_EXT_separate_shader_objects;
19125   Read_GL_EXT_shader_image_load_store;
19126   Read_GL_EXT_vertex_attrib_64bit;
19127   Read_GL_HP_image_transform;
19128   Read_GL_IBM_multimode_draw_arrays;
19129   Read_GL_IBM_vertex_array_lists;
19130   Read_GL_INGR_blend_func_separate;
19131   Read_GL_INTEL_parallel_arrays;
19132   Read_GL_KHR_blend_equation_advanced;
19133   Read_GL_MESA_resize_buffers;
19134   Read_GL_MESA_window_pos;
19135   Read_GL_NV_evaluators;
19136   Read_GL_NV_fence;
19137   Read_GL_NV_fragment_program;
19138   Read_GL_NV_half_float;
19139   Read_GL_NV_occlusion_query;
19140   Read_GL_NV_pixel_data_range;
19141   Read_GL_NV_point_sprite;
19142   Read_GL_NV_primitive_restart;
19143   Read_GL_NV_register_combiners;
19144   Read_GL_NV_register_combiners2;
19145   Read_GL_NV_vertex_array_range;
19146   Read_GL_NV_vertex_program;
19147   Read_GL_NV_depth_buffer_float;
19148   Read_GL_NV_framebuffer_multisample_coverage;
19149   Read_GL_NV_geometry_program4;
19150   Read_GL_NV_gpu_program4;
19151   Read_GL_NV_parameter_buffer_object;
19152   Read_GL_NV_transform_feedback;
19153   Read_GL_NV_conditional_render;
19154   Read_GL_NV_present_video;
19155   Read_GL_NV_explicit_multisample;
19156   Read_GL_NV_transform_feedback2;
19157   Read_GL_NV_video_capture;
19158   Read_GL_NV_copy_image;
19159   Read_GL_NV_shader_buffer_load;
19160   Read_GL_NV_vertex_buffer_unified_memory;
19161   Read_GL_NV_gpu_program5;
19162   Read_GL_NV_gpu_shader5;
19163   Read_GL_NV_vertex_attrib_integer_64bit;
19164   Read_GL_NV_vdpau_interop;
19165   Read_GL_NV_texture_barrier;
19166   Read_GL_NV_path_rendering;
19167   Read_GL_NV_bindless_texture;
19168   Read_GL_PGI_misc_hints;
19169   Read_GL_SGIS_detail_texture;
19170   Read_GL_SGIS_fog_function;
19171   Read_GL_SGIS_multisample;
19172   Read_GL_SGIS_pixel_texture;
19173   Read_GL_SGIS_point_parameters;
19174   Read_GL_SGIS_sharpen_texture;
19175   Read_GL_SGIS_texture4D;
19176   Read_GL_SGIS_texture_color_mask;
19177   Read_GL_SGIS_texture_filter4;
19178   Read_GL_SGIX_async;
19179   Read_GL_SGIX_flush_raster;
19180   Read_GL_SGIX_fragment_lighting;
19181   Read_GL_SGIX_framezoom;
19182   Read_GL_SGIX_igloo_interface;
19183   Read_GL_SGIX_instruments;
19184   Read_GL_SGIX_list_priority;
19185   Read_GL_SGIX_pixel_texture;
19186   Read_GL_SGIX_polynomial_ffd;
19187   Read_GL_SGIX_reference_plane;
19188   Read_GL_SGIX_sprite;
19189   Read_GL_SGIX_tag_sample_buffer;
19190   Read_GL_SGI_color_table;
19191   Read_GL_SUNX_constant_data;
19192   Read_GL_SUN_global_alpha;
19193   Read_GL_SUN_mesh_array;
19194   Read_GL_SUN_triangle_list;
19195   Read_GL_SUN_vertex;
19196
19197 {$IFDEF DGL_WIN}
19198   Read_WGL_ARB_buffer_region;
19199   Read_WGL_ARB_extensions_string;
19200   Read_WGL_ARB_make_current_read;
19201   Read_WGL_ARB_pbuffer;
19202   Read_WGL_ARB_pixel_format;
19203   Read_WGL_ARB_pixel_format_float;
19204   Read_WGL_ARB_render_texture;
19205   Read_WGL_ARB_create_context;
19206   Read_WGL_AMD_gpu_association;
19207   Read_WGL_EXT_display_color_table;
19208   Read_WGL_EXT_extensions_string;
19209   Read_WGL_EXT_make_current_read;
19210   Read_WGL_EXT_pbuffer;
19211   Read_WGL_EXT_pixel_format;
19212   Read_WGL_EXT_swap_control;
19213   Read_WGL_I3D_digital_video_control;
19214   Read_WGL_I3D_gamma;
19215   Read_WGL_I3D_genlock;
19216   Read_WGL_I3D_image_buffer;
19217   Read_WGL_I3D_swap_frame_lock;
19218   Read_WGL_I3D_swap_frame_usage;
19219   Read_WGL_NV_vertex_array_range;
19220   Read_WGL_NV_present_video;
19221   Read_WGL_NV_video_output;
19222   Read_WGL_NV_swap_group;
19223   Read_WGL_NV_gpu_affinity;
19224   Read_WGL_NV_video_capture;
19225   Read_WGL_NV_copy_image;
19226   Read_WGL_NV_DX_interop;
19227   Read_WGL_OML_sync_control;
19228   Read_WGL_3DL_stereo_control;
19229
19230   Read_WIN_draw_range_elements;
19231   Read_WIN_swap_hint;
19232 {$ENDIF}
19233
19234   ExtensionsRead := True;
19235 end;
19236
19237 // =============================================================================
19238 //  ReadCoreVersion
19239 // =============================================================================
19240
19241 procedure ReadCoreVersion;
19242 var
19243   AnsiBuffer: AnsiString;
19244   Buffer: String;
19245   MajorVersion, MinorVersion: Integer;
19246
19247   procedure TrimAndSplitVersionString(Buffer: String; var Max, Min: Integer);
19248     // Peels out the X.Y form from the given Buffer which must contain a version string like "text Minor.Major.Build text"
19249     // at least however "Major.Minor".
19250   var
19251     Separator: Integer;
19252   begin
19253     try
19254       // There must be at least one dot to separate major and minor version number.
19255       Separator := Pos('.', Buffer);
19256       // At least one number must be before and one after the dot.
19257       if (Separator > 1) and (Separator < Length(Buffer)) and (AnsiChar(Buffer[Separator - 1]) in ['0'..'9']) and
19258       (AnsiChar(Buffer[Separator + 1]) in ['0'..'9']) then
19259       begin
19260         // OK, it's a valid version string. Now remove unnecessary parts.
19261         Dec(Separator);
19262         // Find last non-numeric character before version number.
19263         while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19264           Dec(Separator);
19265         // Delete leading characters which do not belong to the version string.
19266         Delete(Buffer, 1, Separator);
19267         Separator := Pos('.', Buffer) + 1;
19268         // Find first non-numeric character after version number
19269         while (Separator <= Length(Buffer)) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
19270           Inc(Separator);
19271         // delete trailing characters not belonging to the version string
19272         Delete(Buffer, Separator, 255);
19273         // Now translate the numbers.
19274         Separator := Pos('.', Buffer); // This is necessary because the buffer length might have changed.
19275         Max := StrToInt(Copy(Buffer, 1, Separator - 1));
19276         Min := StrToInt(Copy(Buffer, Separator + 1, 1));
19277       end
19278       else
19279         Abort;
19280     except
19281       Min := 0;
19282       Max := 0;
19283     end;
19284   end;
19285
19286
19287 begin
19288   // determine version of implementation
19289   // GL
19290   if not Assigned(@glGetString) then
19291     glGetString := dglGetProcAddress('glGetString');
19292
19293   AnsiBuffer := glGetString(GL_VERSION);
19294   Buffer := String(AnsiBuffer);
19295
19296   TrimAndSplitVersionString(Buffer, MajorVersion, MinorVersion);
19297
19298   GL_VERSION_1_0 := True;
19299   GL_VERSION_1_1 := False;
19300   GL_VERSION_1_2 := False;
19301   GL_VERSION_1_3 := False;
19302   GL_VERSION_1_4 := False;
19303   GL_VERSION_1_5 := False;
19304   GL_VERSION_2_0 := False;
19305   GL_VERSION_2_1 := False;
19306   GL_VERSION_3_0 := False;
19307   GL_VERSION_3_1 := False;
19308   GL_VERSION_3_2 := False;
19309   GL_VERSION_3_3 := False;
19310   GL_VERSION_4_0 := False;
19311   GL_VERSION_4_1 := False;
19312   GL_VERSION_4_2 := False;
19313   GL_VERSION_4_3 := False;
19314   GL_VERSION_4_4 := False;
19315   GL_VERSION_4_5 := False;
19316
19317   if MajorVersion = 1 then
19318   begin
19319     if MinorVersion >= 1 then
19320       GL_VERSION_1_1 := True;
19321     if MinorVersion >= 2 then
19322       GL_VERSION_1_2 := True;
19323     if MinorVersion >= 3 then
19324       GL_VERSION_1_3 := True;
19325     if MinorVersion >= 4 then
19326       GL_VERSION_1_4 := True;
19327     if MinorVersion >= 5 then
19328       GL_VERSION_1_5 := True;
19329   end;
19330
19331   if MajorVersion >= 2 then
19332   begin
19333     GL_VERSION_1_1 := True;
19334     GL_VERSION_1_2 := True;
19335     GL_VERSION_1_3 := True;
19336     GL_VERSION_1_4 := True;
19337     GL_VERSION_1_5 := True;
19338     GL_VERSION_2_0 := True;
19339
19340     if MinorVersion >= 1 then
19341       GL_VERSION_2_1 := True;
19342   end;
19343
19344   if MajorVersion >= 3 then
19345   begin
19346     GL_VERSION_2_1 := True;
19347     GL_VERSION_3_0 := True;
19348
19349     if MinorVersion >= 1 then
19350       GL_VERSION_3_1 := True;
19351     if MinorVersion >= 2 then
19352       GL_VERSION_3_2 := True;
19353     if MinorVersion >= 3 then
19354       GL_VERSION_3_3 := True;
19355   end;
19356
19357   if MajorVersion >= 4 then
19358   begin
19359     GL_VERSION_3_1 := True;
19360     GL_VERSION_3_2 := True;
19361     GL_VERSION_3_3 := True;
19362     GL_VERSION_4_0 := True;
19363
19364     if MinorVersion >= 1 then
19365       GL_VERSION_4_1 := True;
19366     if MinorVersion >= 2 then
19367       GL_VERSION_4_2 := True;
19368     if MinorVersion >= 3 then
19369       GL_VERSION_4_3 := True;
19370     if MinorVersion >= 4 then
19371       GL_VERSION_4_4 := True;
19372     if MinorVersion >= 4 then
19373       GL_VERSION_4_5:= True;
19374   end;
19375
19376   // GLU
19377   GLU_VERSION_1_1 := False;
19378   GLU_VERSION_1_2 := False;
19379   GLU_VERSION_1_3 := False;
19380
19381   if Assigned(gluGetString) then begin
19382     AnsiBuffer := gluGetString(GLU_VERSION);
19383     Buffer := String(AnsiBuffer);
19384
19385     TrimAndSplitVersionString(Buffer, Majorversion, MinorVersion);
19386
19387     GLU_VERSION_1_1 := True;
19388
19389     if MinorVersion >= 2 then
19390       GLU_VERSION_1_2 := True;
19391
19392     if MinorVersion >= 3 then
19393       GLU_VERSION_1_3 := True;
19394   end;
19395 end;
19396
19397
19398 // =============================================================================
19399 //  ReadImplementationProperties
19400 // =============================================================================
19401
19402 procedure ReadImplementationProperties;
19403 var
19404   Buffer: Ansistring;
19405 begin
19406   ReadCoreVersion;
19407
19408   // Check all extensions
19409   Buffer := Int_GetExtensionString;
19410
19411   // 3DFX
19412   GL_3DFX_multisample := Int_CheckExtension(Buffer, 'GL_3DFX_multisample');
19413   GL_3DFX_tbuffer := Int_CheckExtension(Buffer, 'GL_3DFX_tbuffer');
19414   GL_3DFX_texture_compression_FXT1 := Int_CheckExtension(Buffer, 'GL_3DFX_texture_compression_FXT1');
19415
19416   // APPLE
19417   GL_APPLE_client_storage := Int_CheckExtension(Buffer, 'GL_APPLE_client_storage');
19418   GL_APPLE_element_array := Int_CheckExtension(Buffer, 'GL_APPLE_element_array');
19419   GL_APPLE_fence := Int_CheckExtension(Buffer, 'GL_APPLE_fence');
19420   GL_APPLE_specular_vector := Int_CheckExtension(Buffer, 'GL_APPLE_specular_vector');
19421   GL_APPLE_transform_hint := Int_CheckExtension(Buffer, 'GL_APPLE_transform_hint');
19422   GL_APPLE_vertex_array_object := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_object');
19423   GL_APPLE_vertex_array_range := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_array_range');
19424   GL_APPLE_ycbcr_422 := Int_CheckExtension(Buffer, 'GL_APPLE_ycbcr_422');
19425   GL_APPLE_texture_range := Int_CheckExtension(Buffer, 'GL_APPLE_texture_range');
19426   GL_APPLE_float_pixels := Int_CheckExtension(Buffer, 'GL_APPLE_float_pixels');
19427   GL_APPLE_vertex_program_evaluators := Int_CheckExtension(Buffer, 'GL_APPLE_vertex_program_evaluators');
19428   GL_APPLE_aux_depth_stencil := Int_CheckExtension(Buffer, 'GL_APPLE_aux_depth_stencil');
19429   GL_APPLE_object_purgeable := Int_CheckExtension(Buffer, 'GL_APPLE_object_purgeable');
19430   GL_APPLE_row_bytes := Int_CheckExtension(Buffer, 'GL_APPLE_row_bytes');
19431   GL_APPLE_rgb_422 := Int_CheckExtension(Buffer, 'GL_APPLE_rgb_422');
19432
19433   // ARB
19434   GL_ARB_depth_texture := Int_CheckExtension(Buffer, 'GL_ARB_depth_texture');
19435   GL_ARB_fragment_program := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program');
19436   GL_ARB_imaging := Int_CheckExtension(Buffer, 'GL_ARB_imaging');
19437   GL_ARB_matrix_palette := Int_CheckExtension(Buffer, 'GL_ARB_matrix_palette');
19438   GL_ARB_multisample := Int_CheckExtension(Buffer, 'GL_ARB_multisample');
19439   GL_ARB_multitexture := Int_CheckExtension(Buffer, 'GL_ARB_multitexture');
19440   GL_ARB_point_parameters := Int_CheckExtension(Buffer, 'GL_ARB_point_parameters');
19441   GL_ARB_shadow := Int_CheckExtension(Buffer, 'GL_ARB_shadow');
19442   GL_ARB_shadow_ambient := Int_CheckExtension(Buffer, 'GL_ARB_shadow_ambient');
19443   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19444   GL_ARB_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_ARB_texture_border_clamp');
19445   GL_ARB_texture_compression := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression');
19446   GL_ARB_texture_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map');
19447   GL_ARB_texture_env_add := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_add');
19448   GL_ARB_texture_env_combine := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_combine');
19449   GL_ARB_texture_env_crossbar := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_crossbar');
19450   GL_ARB_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_ARB_texture_env_dot3');
19451   GL_ARB_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_ARB_texture_mirrored_repeat');
19452   GL_ARB_transpose_matrix := Int_CheckExtension(Buffer, 'GL_ARB_transpose_matrix');
19453   GL_ARB_vertex_blend := Int_CheckExtension(Buffer, 'GL_ARB_vertex_blend');
19454   GL_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_buffer_object');
19455   GL_ARB_vertex_program := Int_CheckExtension(Buffer, 'GL_ARB_vertex_program');
19456   GL_ARB_window_pos := Int_CheckExtension(Buffer, 'GL_ARB_window_pos');
19457   GL_ARB_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_shader_objects');
19458   GL_ARB_vertex_shader := Int_CheckExtension(Buffer, 'GL_ARB_vertex_shader');
19459   GL_ARB_fragment_shader := Int_CheckExtension(Buffer, 'GL_ARB_fragment_shader');
19460   GL_ARB_occlusion_query := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query');
19461   GL_ARB_shading_language_100 := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_100');
19462   GL_ARB_point_sprite := Int_CheckExtension(Buffer, 'GL_ARB_point_sprite');
19463   GL_ARB_texture_non_power_of_two := Int_CheckExtension(Buffer, 'GL_ARB_texture_non_power_of_two');
19464   GL_ARB_fragment_program_shadow := Int_CheckExtension(Buffer, 'GL_ARB_fragment_program_shadow');
19465   GL_ARB_draw_buffers := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers');
19466   GL_ARB_texture_rectangle := Int_CheckExtension(Buffer, 'GL_ARB_texture_rectangle');
19467   GL_ARB_color_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_color_buffer_float');
19468   GL_ARB_half_float_pixel := Int_CheckExtension(Buffer, 'GL_ARB_half_float_pixel');
19469   GL_ARB_texture_float := Int_CheckExtension(Buffer, 'GL_ARB_texture_float');
19470   GL_ARB_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_pixel_buffer_object');
19471   GL_ARB_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_ARB_depth_buffer_float');
19472   GL_ARB_draw_instanced := Int_CheckExtension(Buffer, 'GL_ARB_draw_instanced');
19473   GL_ARB_framebuffer_object := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_object');
19474   GL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_sRGB');
19475   GL_ARB_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_ARB_geometry_shader4');
19476   GL_ARB_half_float_vertex := Int_CheckExtension(Buffer, 'GL_ARB_half_float_vertex');
19477   GL_ARB_instanced_arrays := Int_CheckExtension(Buffer, 'GL_ARB_instanced_arrays');
19478   GL_ARB_map_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_range');
19479   GL_ARB_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object');
19480   GL_ARB_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_rgtc');
19481   GL_ARB_texture_rg := Int_CheckExtension(Buffer, 'GL_ARB_texture_rg');
19482   GL_ARB_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_object');
19483   GL_ARB_uniform_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_uniform_buffer_object');
19484   GL_ARB_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_compatibility');
19485   GL_ARB_copy_buffer := Int_CheckExtension(Buffer, 'GL_ARB_copy_buffer');
19486   GL_ARB_shader_texture_lod := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_lod');
19487   GL_ARB_depth_clamp := Int_CheckExtension(Buffer, 'GL_ARB_depth_clamp');
19488   GL_ARB_draw_elements_base_vertex := Int_CheckExtension(Buffer, 'GL_ARB_draw_elements_base_vertex');
19489   GL_ARB_fragment_coord_conventions := Int_CheckExtension(Buffer, 'GL_ARB_fragment_coord_conventions');
19490   GL_ARB_provoking_vertex := Int_CheckExtension(Buffer, 'GL_ARB_provoking_vertex');
19491   GL_ARB_seamless_cube_map := Int_CheckExtension(Buffer, 'GL_ARB_seamless_cube_map');
19492   GL_ARB_sync := Int_CheckExtension(Buffer, 'GL_ARB_sync');
19493   GL_ARB_texture_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_multisample');
19494   GL_ARB_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_ARB_vertex_array_bgra');
19495   GL_ARB_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_ARB_draw_buffers_blend');
19496   GL_ARB_sample_shading := Int_CheckExtension(Buffer, 'GL_ARB_sample_shading');
19497   GL_ARB_texture_cube_map_array := Int_CheckExtension(Buffer, 'GL_ARB_texture_cube_map_array');
19498   GL_ARB_texture_gather := Int_CheckExtension(Buffer, 'GL_ARB_texture_gather');
19499   GL_ARB_texture_query_lod := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_lod');
19500   GL_ARB_shading_language_include := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_include');
19501   GL_ARB_texture_compression_bptc := Int_CheckExtension(Buffer, 'GL_ARB_texture_compression_bptc');
19502   GL_ARB_blend_func_extended := Int_CheckExtension(Buffer, 'GL_ARB_blend_func_extended');
19503   GL_ARB_explicit_attrib_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_attrib_location');
19504   GL_ARB_occlusion_query2 := Int_CheckExtension(Buffer, 'GL_ARB_occlusion_query2');
19505   GL_ARB_sampler_objects := Int_CheckExtension(Buffer, 'GL_ARB_sampler_objects');
19506   GL_ARB_shader_bit_encoding := Int_CheckExtension(Buffer, 'GL_ARB_shader_bit_encoding');
19507   GL_ARB_texture_rgb10_a2ui := Int_CheckExtension(Buffer, 'GL_ARB_texture_rgb10_a2ui');
19508   GL_ARB_texture_swizzle := Int_CheckExtension(Buffer, 'GL_ARB_texture_swizzle');
19509   GL_ARB_timer_query := Int_CheckExtension(Buffer, 'GL_ARB_timer_query');
19510   GL_ARB_vertex_type_2_10_10_10_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_2_10_10_10_rev');
19511   GL_ARB_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_draw_indirect');
19512   GL_ARB_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader5');
19513   GL_ARB_gpu_shader_fp64 := Int_CheckExtension(Buffer, 'GL_ARB_gpu_shader_fp64');
19514   GL_ARB_shader_subroutine := Int_CheckExtension(Buffer, 'GL_ARB_shader_subroutine');
19515   GL_ARB_tessellation_shader := Int_CheckExtension(Buffer, 'GL_ARB_tessellation_shader');
19516   GL_ARB_texture_buffer_object_rgb32 := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_object_rgb32');
19517   GL_ARB_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback2');
19518   GL_ARB_transform_feedback3 := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback3');
19519   GL_ARB_ES2_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES2_compatibility');
19520   GL_ARB_get_program_binary := Int_CheckExtension(Buffer, 'GL_ARB_get_program_binary');
19521   GL_ARB_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_ARB_separate_shader_objects');
19522   GL_ARB_shader_precision := Int_CheckExtension(Buffer, 'GL_ARB_shader_precision');
19523   GL_ARB_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_64bit');
19524   GL_ARB_viewport_array := Int_CheckExtension(Buffer, 'GL_ARB_viewport_array');
19525
19526   // GL 4.2
19527   GL_ARB_base_instance := Int_CheckExtension(Buffer, 'GL_ARB_base_instance');
19528   GL_ARB_shading_language_420pack := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_420pack');
19529   GL_ARB_transform_feedback_instanced := Int_CheckExtension(Buffer, 'GL_ARB_transform_feedback_instanced');
19530   GL_ARB_compressed_texture_pixel_storage := Int_CheckExtension(Buffer, 'GL_ARB_compressed_texture_pixel_storage');
19531   GL_ARB_conservative_depth := Int_CheckExtension(Buffer, 'GL_ARB_conservative_depth');
19532   GL_ARB_internalformat_query := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query');
19533   GL_ARB_map_buffer_alignment := Int_CheckExtension(Buffer, 'GL_ARB_map_buffer_alignment');
19534   GL_ARB_shader_atomic_counters := Int_CheckExtension(Buffer, 'GL_ARB_shader_atomic_counters');
19535   GL_ARB_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_load_store');
19536   GL_ARB_shading_language_packing := Int_CheckExtension(Buffer, 'GL_ARB_shading_language_packing');
19537   GL_ARB_texture_storage := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage');
19538
19539   // GL 4.3
19540   GL_ARB_arrays_of_arrays := Int_CheckExtension(Buffer, 'GL_ARB_arrays_of_arrays');
19541   GL_ARB_fragment_layer_viewport := Int_CheckExtension(Buffer, 'GL_ARB_fragment_layer_viewport');
19542   GL_ARB_shader_image_size := Int_CheckExtension(Buffer, 'GL_ARB_shader_image_size');
19543   GL_ARB_ES3_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_compatibility');
19544   GL_ARB_clear_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_clear_buffer_object');
19545   GL_ARB_compute_shader := Int_CheckExtension(Buffer, 'GL_ARB_compute_shader');
19546   GL_ARB_copy_image := Int_CheckExtension(Buffer, 'GL_ARB_copy_image');
19547   GL_KHR_debug := Int_CheckExtension(Buffer, 'GL_KHR_debug');
19548   GL_ARB_explicit_uniform_location := Int_CheckExtension(Buffer, 'GL_ARB_explicit_uniform_location');
19549   GL_ARB_framebuffer_no_attachments := Int_CheckExtension(Buffer, 'GL_ARB_framebuffer_no_attachments');
19550   GL_ARB_internalformat_query2 := Int_CheckExtension(Buffer, 'GL_ARB_internalformat_query2');
19551   GL_ARB_invalidate_subdata := Int_CheckExtension(Buffer, 'GL_ARB_invalidate_subdata');
19552   GL_ARB_multi_draw_indirect := Int_CheckExtension(Buffer, 'GL_ARB_multi_draw_indirect');
19553   GL_ARB_program_interface_query := Int_CheckExtension(Buffer, 'GL_ARB_program_interface_query');
19554   GL_ARB_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_ARB_robust_buffer_access_behavior');
19555   GL_ARB_shader_storage_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_shader_storage_buffer_object');
19556   GL_ARB_stencil_texturing := Int_CheckExtension(Buffer, 'GL_ARB_stencil_texturing');
19557   GL_ARB_texture_buffer_range := Int_CheckExtension(Buffer, 'GL_ARB_texture_buffer_range');
19558   GL_ARB_texture_query_levels := Int_CheckExtension(Buffer, 'GL_ARB_texture_query_levels');
19559   GL_ARB_texture_storage_multisample := Int_CheckExtension(Buffer, 'GL_ARB_texture_storage_multisample');
19560   GL_ARB_texture_view := Int_CheckExtension(Buffer, 'GL_ARB_texture_view');
19561   GL_ARB_vertex_attrib_binding := Int_CheckExtension(Buffer, 'GL_ARB_vertex_attrib_binding');
19562   GL_ARB_cl_event := Int_CheckExtension(Buffer, 'GL_ARB_cl_event');
19563   GL_ARB_debug_output := Int_CheckExtension(Buffer, 'GL_ARB_debug_output');
19564   GL_ARB_robustness := Int_CheckExtension(Buffer, 'GL_ARB_robustness');
19565   GL_ARB_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_ARB_shader_stencil_export');
19566
19567   // GL 4.4
19568   GL_ARB_buffer_storage := Int_CheckExtension(Buffer, 'GL_ARB_buffer_storage');
19569   GL_ARB_clear_texture := Int_CheckExtension(Buffer, 'GL_ARB_clear_texture');
19570   GL_ARB_enhanced_layouts := Int_CheckExtension(Buffer, 'GL_ARB_enhanced_layouts');
19571   GL_ARB_multi_bind := Int_CheckExtension(Buffer, 'GL_ARB_multi_bind');
19572   GL_ARB_query_buffer_object := Int_CheckExtension(Buffer, 'GL_ARB_query_buffer_object');
19573   GL_ARB_texture_mirror_clamp_to_edge:= Int_CheckExtension(Buffer, 'GL_ARB_texture_mirror_clamp_to_edge');
19574   GL_ARB_texture_stencil8 := Int_CheckExtension(Buffer, 'GL_ARB_texture_stencil8');
19575   GL_ARB_vertex_type_10f_11f_11f_rev := Int_CheckExtension(Buffer, 'GL_ARB_vertex_type_10f_11f_11f_rev');
19576   GL_ARB_bindless_texture := Int_CheckExtension(Buffer, 'GL_ARB_bindless_texture');
19577   GL_ARB_sparse_texture := Int_CheckExtension(Buffer, 'GL_ARB_sparse_texture');
19578
19579   // GL 4.5
19580   GL_ARB_clip_control := Int_CheckExtension(Buffer, 'GL_ARB_clip_control');
19581   GL_ARB_cull_distance := Int_CheckExtension(Buffer, 'GL_ARB_cull_distance');
19582   GL_ARB_ES3_1_compatibility := Int_CheckExtension(Buffer, 'GL_ARB_ES3_1_compatibility');
19583   GL_ARB_conditional_render_inverted := Int_CheckExtension(Buffer, 'GL_ARB_conditional_render_inverted');
19584   GL_KHR_context_flush_control := Int_CheckExtension(Buffer, 'GL_KHR_context_flush_control');
19585   GL_ARB_derivative_control := Int_CheckExtension(Buffer, 'GL_ARB_derivative_control');
19586   GL_ARB_direct_state_access := Int_CheckExtension(Buffer, 'GL_ARB_direct_state_access');
19587   GL_ARB_get_texture_sub_image := Int_CheckExtension(Buffer, 'GL_ARB_get_texture_sub_image');
19588   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19589   GL_ARB_shader_texture_image_samples := Int_CheckExtension(Buffer, 'GL_ARB_shader_texture_image_samples');
19590   GL_ARB_texture_barrier := Int_CheckExtension(Buffer, 'GL_ARB_texture_barrier');
19591
19592   // ATI/AMD
19593   GL_ATI_draw_buffers := Int_CheckExtension(Buffer, 'GL_ATI_draw_buffers');
19594   GL_ATI_element_array := Int_CheckExtension(Buffer, 'GL_ATI_element_array');
19595   GL_ATI_envmap_bumpmap := Int_CheckExtension(Buffer, 'GL_ATI_envmap_bumpmap');
19596   GL_ATI_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_fragment_shader');
19597   GL_ATI_map_object_buffer := Int_CheckExtension(Buffer, 'GL_ATI_map_object_buffer');
19598   GL_ATI_pn_triangles := Int_CheckExtension(Buffer, 'GL_ATI_pn_triangles');
19599   GL_ATI_separate_stencil := Int_CheckExtension(Buffer, 'GL_ATI_separate_stencil');
19600   GL_ATI_text_fragment_shader := Int_CheckExtension(Buffer, 'GL_ATI_text_fragment_shader');
19601   GL_ATI_texture_env_combine3 := Int_CheckExtension(Buffer, 'GL_ATI_texture_env_combine3');
19602   GL_ATI_texture_float := Int_CheckExtension(Buffer, 'GL_ATI_texture_float');
19603   GL_ATI_texture_mirror_once := Int_CheckExtension(Buffer, 'GL_ATI_texture_mirror_once');
19604   GL_ATI_vertex_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_array_object');
19605   GL_ATI_vertex_attrib_array_object := Int_CheckExtension(Buffer, 'GL_ATI_vertex_attrib_array_object');
19606   GL_ATI_vertex_streams := Int_CheckExtension(Buffer, 'GL_ATI_vertex_streams');
19607   GL_ATI_meminfo := Int_CheckExtension(Buffer, 'GL_ATI_meminfo');
19608   GL_AMD_performance_monitor := Int_CheckExtension(Buffer, 'GL_AMD_performance_monitor');
19609   GL_AMD_texture_texture4 := Int_CheckExtension(Buffer, 'GL_AMD_texture_texture4');
19610   GL_AMD_vertex_shader_tesselator := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_tesselator');
19611   GL_AMD_draw_buffers_blend := Int_CheckExtension(Buffer, 'GL_AMD_draw_buffers_blend');
19612   GL_AMD_shader_stencil_export := Int_CheckExtension(Buffer, 'GL_AMD_shader_stencil_export');
19613   GL_AMD_seamless_cubemap_per_texture := Int_CheckExtension(Buffer, 'GL_AMD_seamless_cubemap_per_texture');
19614   GL_AMD_conservative_depth := Int_CheckExtension(Buffer, 'GL_AMD_conservative_depth');
19615   GL_AMD_name_gen_delete := Int_CheckExtension(Buffer, 'GL_AMD_name_gen_delete');
19616   GL_AMD_debug_output := Int_CheckExtension(Buffer, 'GL_AMD_debug_output');
19617   GL_AMD_transform_feedback3_lines_triangles := Int_CheckExtension(Buffer, 'GL_AMD_transform_feedback3_lines_triangles');
19618   GL_AMD_depth_clamp_separate := Int_CheckExtension(Buffer, 'GL_AMD_depth_clamp_separate');
19619   // 4.3
19620   GL_AMD_pinned_memory := Int_CheckExtension(Buffer, 'GL_AMD_pinned_memory');
19621   GL_AMD_stencil_operation_extended := Int_CheckExtension(Buffer, 'GL_AMD_stencil_operation_extended');
19622   GL_AMD_vertex_shader_viewport_index := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_viewport_index');
19623   GL_AMD_vertex_shader_layer := Int_CheckExtension(Buffer, 'GL_AMD_vertex_shader_layer');
19624   GL_AMD_query_buffer_object := Int_CheckExtension(Buffer, 'GL_AMD_query_buffer_object');
19625
19626   // EXT
19627   GL_EXT_422_pixels := Int_CheckExtension(Buffer, 'GL_EXT_422_pixels');
19628   GL_EXT_abgr := Int_CheckExtension(Buffer, 'GL_EXT_abgr');
19629   GL_EXT_bgra := Int_CheckExtension(Buffer, 'GL_EXT_bgra');
19630   GL_EXT_blend_color := Int_CheckExtension(Buffer, 'GL_EXT_blend_color');
19631   GL_EXT_blend_func_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_func_separate');
19632   GL_EXT_blend_logic_op := Int_CheckExtension(Buffer, 'GL_EXT_blend_logic_op');
19633   GL_EXT_blend_minmax := Int_CheckExtension(Buffer, 'GL_EXT_blend_minmax');
19634   GL_EXT_blend_subtract := Int_CheckExtension(Buffer, 'GL_EXT_blend_subtract');
19635   GL_EXT_clip_volume_hint := Int_CheckExtension(Buffer, 'GL_EXT_clip_volume_hint');
19636   GL_EXT_cmyka := Int_CheckExtension(Buffer, 'GL_EXT_cmyka');
19637   GL_EXT_color_matrix := Int_CheckExtension(Buffer, 'GL_EXT_color_matrix');
19638   GL_EXT_color_subtable := Int_CheckExtension(Buffer, 'GL_EXT_color_subtable');
19639   GL_EXT_compiled_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_compiled_vertex_array');
19640   GL_EXT_convolution := Int_CheckExtension(Buffer, 'GL_EXT_convolution');
19641   GL_EXT_coordinate_frame := Int_CheckExtension(Buffer, 'GL_EXT_coordinate_frame');
19642   GL_EXT_copy_texture := Int_CheckExtension(Buffer, 'GL_EXT_copy_texture');
19643   GL_EXT_cull_vertex := Int_CheckExtension(Buffer, 'GL_EXT_cull_vertex');
19644   GL_EXT_draw_range_elements := Int_CheckExtension(Buffer, 'GL_EXT_draw_range_elements');
19645   GL_EXT_fog_coord := Int_CheckExtension(Buffer, 'GL_EXT_fog_coord');
19646   GL_EXT_framebuffer_object := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_object');
19647   GL_EXT_histogram := Int_CheckExtension(Buffer, 'GL_EXT_histogram');
19648   GL_EXT_index_array_formats := Int_CheckExtension(Buffer, 'GL_EXT_index_array_formats');
19649   GL_EXT_index_func := Int_CheckExtension(Buffer, 'GL_EXT_index_func');
19650   GL_EXT_index_material := Int_CheckExtension(Buffer, 'GL_EXT_index_material');
19651   GL_EXT_index_texture := Int_CheckExtension(Buffer, 'GL_EXT_index_texture');
19652   GL_EXT_light_texture := Int_CheckExtension(Buffer, 'GL_EXT_light_texture');
19653   GL_EXT_misc_attribute := Int_CheckExtension(Buffer, 'GL_EXT_misc_attribute');
19654   GL_EXT_multi_draw_arrays := Int_CheckExtension(Buffer, 'GL_EXT_multi_draw_arrays');
19655   GL_EXT_multisample := Int_CheckExtension(Buffer, 'GL_EXT_multisample');
19656   GL_EXT_packed_pixels := Int_CheckExtension(Buffer, 'GL_EXT_packed_pixels');
19657   GL_EXT_paletted_texture := Int_CheckExtension(Buffer, 'GL_EXT_paletted_texture');
19658   GL_EXT_pixel_transform := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform');
19659   GL_EXT_pixel_transform_color_table := Int_CheckExtension(Buffer, 'GL_EXT_pixel_transform_color_table');
19660   GL_EXT_point_parameters := Int_CheckExtension(Buffer, 'GL_EXT_point_parameters');
19661   GL_EXT_polygon_offset := Int_CheckExtension(Buffer, 'GL_EXT_polygon_offset');
19662   GL_EXT_rescale_normal := Int_CheckExtension(Buffer, 'GL_EXT_rescale_normal');
19663   GL_EXT_secondary_color := Int_CheckExtension(Buffer, 'GL_EXT_secondary_color');
19664   GL_EXT_separate_specular_color := Int_CheckExtension(Buffer, 'GL_EXT_separate_specular_color');
19665   GL_EXT_shadow_funcs := Int_CheckExtension(Buffer, 'GL_EXT_shadow_funcs');
19666   GL_EXT_shared_texture_palette := Int_CheckExtension(Buffer, 'GL_EXT_shared_texture_palette');
19667   GL_EXT_stencil_two_side := Int_CheckExtension(Buffer, 'GL_EXT_stencil_two_side');
19668   GL_EXT_stencil_wrap := Int_CheckExtension(Buffer, 'GL_EXT_stencil_wrap');
19669   GL_EXT_subtexture := Int_CheckExtension(Buffer, 'GL_EXT_subtexture');
19670   GL_EXT_texture := Int_CheckExtension(Buffer, 'GL_EXT_texture');
19671   GL_EXT_texture3D := Int_CheckExtension(Buffer, 'GL_EXT_texture3D');
19672   GL_EXT_texture_compression_s3tc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_s3tc');
19673   GL_EXT_texture_cube_map := Int_CheckExtension(Buffer, 'GL_EXT_texture_cube_map');
19674   GL_EXT_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_edge_clamp');
19675   GL_EXT_texture_env_add := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_add');
19676   GL_EXT_texture_env_combine := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_combine');
19677   GL_EXT_texture_env_dot3 := Int_CheckExtension(Buffer, 'GL_EXT_texture_env_dot3');
19678   GL_EXT_texture_filter_anisotropic := Int_CheckExtension(Buffer, 'GL_EXT_texture_filter_anisotropic');
19679   GL_EXT_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_EXT_texture_lod_bias');
19680   GL_EXT_texture_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_object');
19681   GL_EXT_texture_perturb_normal := Int_CheckExtension(Buffer, 'GL_EXT_texture_perturb_normal');
19682   GL_EXT_texture_rectangle := Int_CheckExtension(Buffer, 'GL_EXT_texture_rectangle');
19683   GL_EXT_vertex_array := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array');
19684   GL_EXT_vertex_shader := Int_CheckExtension(Buffer, 'GL_EXT_vertex_shader');
19685   GL_EXT_vertex_weighting := Int_CheckExtension(Buffer, 'GL_EXT_vertex_weighting');
19686   GL_EXT_depth_bounds_test := Int_CheckExtension(Buffer, 'GL_EXT_depth_bounds_test');
19687   GL_EXT_texture_mirror_clamp := Int_CheckExtension(Buffer, 'GL_EXT_texture_mirror_clamp');
19688   GL_EXT_blend_equation_separate := Int_CheckExtension(Buffer, 'GL_EXT_blend_equation_separate');
19689   GL_EXT_pixel_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_pixel_buffer_object');
19690   GL_EXT_texture_compression_dxt1 := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_dxt1');
19691   GL_EXT_stencil_clear_tag := Int_CheckExtension(Buffer, 'GL_EXT_stencil_clear_tag');
19692   GL_EXT_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_EXT_packed_depth_stencil');
19693   GL_EXT_texture_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB');
19694   GL_EXT_framebuffer_blit := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_blit');
19695   GL_EXT_framebuffer_multisample := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_multisample');
19696   GL_EXT_timer_query := Int_CheckExtension(Buffer, 'GL_EXT_timer_query');
19697   GL_EXT_gpu_program_parameters := Int_CheckExtension(Buffer, 'GL_EXT_gpu_program_parameters');
19698   GL_EXT_bindable_uniform := Int_CheckExtension(Buffer, 'GL_EXT_bindable_uniform');
19699   GL_EXT_draw_buffers2 := Int_CheckExtension(Buffer, 'GL_EXT_draw_buffers2');
19700   GL_EXT_draw_instanced := Int_CheckExtension(Buffer, 'GL_EXT_draw_instanced');
19701   GL_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GL_EXT_framebuffer_sRGB');
19702   GL_EXT_geometry_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_geometry_shader4');
19703   GL_EXT_gpu_shader4 := Int_CheckExtension(Buffer, 'GL_EXT_gpu_shader4');
19704   GL_EXT_packed_float := Int_CheckExtension(Buffer, 'GL_EXT_packed_float');
19705   GL_EXT_texture_array := Int_CheckExtension(Buffer, 'GL_EXT_texture_array');
19706   GL_EXT_texture_buffer_object := Int_CheckExtension(Buffer, 'GL_EXT_texture_buffer_object');
19707   GL_EXT_texture_compression_latc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_latc');
19708   GL_EXT_texture_compression_rgtc := Int_CheckExtension(Buffer, 'GL_EXT_texture_compression_rgtc');
19709   GL_EXT_texture_integer := Int_CheckExtension(Buffer, 'GL_EXT_texture_integer');
19710   GL_EXT_texture_shared_exponent := Int_CheckExtension(Buffer, 'GL_EXT_texture_shared_exponent');
19711   GL_EXT_transform_feedback := Int_CheckExtension(Buffer, 'GL_EXT_transform_feedback');
19712   GL_EXT_direct_state_access := Int_CheckExtension(Buffer, 'GL_EXT_direct_state_access');
19713   GL_EXT_vertex_array_bgra := Int_CheckExtension(Buffer, 'GL_EXT_vertex_array_bgra');
19714   GL_EXT_texture_swizzle := Int_CheckExtension(Buffer, 'GL_EXT_texture_swizzle');
19715   GL_EXT_provoking_vertex := Int_CheckExtension(Buffer, 'GL_EXT_provoking_vertex');
19716   GL_EXT_texture_snorm := Int_CheckExtension(Buffer, 'GL_EXT_texture_snorm');
19717   GL_EXT_separate_shader_objects := Int_CheckExtension(Buffer, 'GL_EXT_separate_shader_objects');
19718   GL_EXT_shader_image_load_store := Int_CheckExtension(Buffer, 'GL_EXT_shader_image_load_store');
19719   GL_EXT_vertex_attrib_64bit := Int_CheckExtension(Buffer, 'GL_EXT_vertex_attrib_64bit');
19720   GL_EXT_texture_sRGB_decode := Int_CheckExtension(Buffer, 'GL_EXT_texture_sRGB_decode');
19721
19722   // HP
19723   GL_HP_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_HP_convolution_border_modes');
19724   GL_HP_image_transform := Int_CheckExtension(Buffer, 'GL_HP_image_transform');
19725   GL_HP_occlusion_test := Int_CheckExtension(Buffer, 'GL_HP_occlusion_test');
19726   GL_HP_texture_lighting := Int_CheckExtension(Buffer, 'GL_HP_texture_lighting');
19727
19728   // IBM
19729   GL_IBM_cull_vertex := Int_CheckExtension(Buffer, 'GL_IBM_cull_vertex');
19730   GL_IBM_multimode_draw_arrays := Int_CheckExtension(Buffer, 'GL_IBM_multimode_draw_arrays');
19731   GL_IBM_rasterpos_clip := Int_CheckExtension(Buffer, 'GL_IBM_rasterpos_clip');
19732   GL_IBM_texture_mirrored_repeat := Int_CheckExtension(Buffer, 'GL_IBM_texture_mirrored_repeat');
19733   GL_IBM_vertex_array_lists := Int_CheckExtension(Buffer, 'GL_IBM_vertex_array_lists');
19734
19735   // INGR
19736   GL_INGR_blend_func_separate := Int_CheckExtension(Buffer, 'GL_INGR_blend_func_separate');
19737   GL_INGR_color_clamp := Int_CheckExtension(Buffer, 'GL_INGR_color_clamp');
19738   GL_INGR_interlace_read := Int_CheckExtension(Buffer, 'GL_INGR_interlace_read');
19739   GL_INGR_palette_buffer := Int_CheckExtension(Buffer, 'GL_INGR_palette_buffer');
19740
19741   // INTEL
19742   GL_INTEL_parallel_arrays := Int_CheckExtension(Buffer, 'GL_INTEL_parallel_arrays');
19743   GL_INTEL_texture_scissor := Int_CheckExtension(Buffer, 'GL_INTEL_texture_scissor');
19744
19745   // MESA
19746   GL_MESA_resize_buffers := Int_CheckExtension(Buffer, 'GL_MESA_resize_buffers');
19747   GL_MESA_window_pos := Int_CheckExtension(Buffer, 'GL_MESA_window_pos');
19748
19749   // Khronos
19750   // 4.5
19751   GL_KHR_blend_equation_advanced := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced');
19752   GL_KHR_blend_equation_advanced_coherent := Int_CheckExtension(Buffer, 'GL_KHR_blend_equation_advanced_coherent');
19753   GL_KHR_robustness := Int_CheckExtension(Buffer, 'GL_KHR_robustness');
19754   GL_KHR_robust_buffer_access_behavior := Int_CheckExtension(Buffer, 'GL_KHR_robust_buffer_access_behavior');
19755
19756   // NVIDIA
19757   GL_NV_blend_square := Int_CheckExtension(Buffer, 'GL_NV_blend_square');
19758   GL_NV_copy_depth_to_color := Int_CheckExtension(Buffer, 'GL_NV_copy_depth_to_color');
19759   GL_NV_depth_clamp := Int_CheckExtension(Buffer, 'GL_NV_depth_clamp');
19760   GL_NV_evaluators := Int_CheckExtension(Buffer, 'GL_NV_evaluators');
19761   GL_NV_fence := Int_CheckExtension(Buffer, 'GL_NV_fence');
19762   GL_NV_float_buffer := Int_CheckExtension(Buffer, 'GL_NV_float_buffer');
19763   GL_NV_fog_distance := Int_CheckExtension(Buffer, 'GL_NV_fog_distance');
19764   GL_NV_fragment_program := Int_CheckExtension(Buffer, 'GL_NV_fragment_program');
19765   GL_NV_half_float := Int_CheckExtension(Buffer, 'GL_NV_half_float');
19766   GL_NV_light_max_exponent := Int_CheckExtension(Buffer, 'GL_NV_light_max_exponent');
19767   GL_NV_multisample_filter_hint := Int_CheckExtension(Buffer, 'GL_NV_multisample_filter_hint');
19768   GL_NV_occlusion_query := Int_CheckExtension(Buffer, 'GL_NV_occlusion_query');
19769   GL_NV_packed_depth_stencil := Int_CheckExtension(Buffer, 'GL_NV_packed_depth_stencil');
19770   GL_NV_pixel_data_range := Int_CheckExtension(Buffer, 'GL_NV_pixel_data_range');
19771   GL_NV_point_sprite := Int_CheckExtension(Buffer, 'GL_NV_point_sprite');
19772   GL_NV_primitive_restart := Int_CheckExtension(Buffer, 'GL_NV_primitive_restart');
19773   GL_NV_register_combiners := Int_CheckExtension(Buffer, 'GL_NV_register_combiners');
19774   GL_NV_register_combiners2 := Int_CheckExtension(Buffer, 'GL_NV_register_combiners2');
19775   GL_NV_texgen_emboss := Int_CheckExtension(Buffer, 'GL_NV_texgen_emboss');
19776   GL_NV_texgen_reflection := Int_CheckExtension(Buffer, 'GL_NV_texgen_reflection');
19777   GL_NV_texture_compression_vtc := Int_CheckExtension(Buffer, 'GL_NV_texture_compression_vtc');
19778   GL_NV_texture_env_combine4 := Int_CheckExtension(Buffer, 'GL_NV_texture_env_combine4');
19779   GL_NV_texture_expand_normal := Int_CheckExtension(Buffer, 'GL_NV_texture_expand_normal');
19780   GL_NV_texture_rectangle := Int_CheckExtension(Buffer, 'GL_NV_texture_rectangle');
19781   GL_NV_texture_shader := Int_CheckExtension(Buffer, 'GL_NV_texture_shader');
19782   GL_NV_texture_shader2 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader2');
19783   GL_NV_texture_shader3 := Int_CheckExtension(Buffer, 'GL_NV_texture_shader3');
19784   GL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range');
19785   GL_NV_vertex_array_range2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_array_range2');
19786   GL_NV_vertex_program := Int_CheckExtension(Buffer, 'GL_NV_vertex_program');
19787   GL_NV_vertex_program1_1 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program1_1');
19788   GL_NV_vertex_program2 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2');
19789   GL_NV_fragment_program_option := Int_CheckExtension(Buffer, 'GL_NV_fragment_program_option');
19790   GL_NV_fragment_program2 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program2');
19791   GL_NV_vertex_program2_option := Int_CheckExtension(Buffer, 'GL_NV_vertex_program2_option');
19792   GL_NV_vertex_program3 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program3');
19793   GL_NV_depth_buffer_float := Int_CheckExtension(Buffer, 'GL_NV_depth_buffer_float');
19794   GL_NV_fragment_program4 := Int_CheckExtension(Buffer, 'GL_NV_fragment_program4');
19795   GL_NV_framebuffer_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_framebuffer_multisample_coverage');
19796   GL_NV_geometry_program4 := Int_CheckExtension(Buffer, 'GL_NV_geometry_program4');
19797   GL_NV_gpu_program4 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program4');
19798   GL_NV_parameter_buffer_object := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object');
19799   GL_NV_transform_feedback := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback');
19800   GL_NV_vertex_program4 := Int_CheckExtension(Buffer, 'GL_NV_vertex_program4');
19801   GL_NV_conditional_render := Int_CheckExtension(Buffer, 'GL_NV_conditional_render');
19802   GL_NV_present_video := Int_CheckExtension(Buffer, 'GL_NV_present_video');
19803   GL_NV_explicit_multisample := Int_CheckExtension(Buffer, 'GL_NV_explicit_multisample');
19804   GL_NV_transform_feedback2 := Int_CheckExtension(Buffer, 'GL_NV_transform_feedback2');
19805   GL_NV_video_capture := Int_CheckExtension(Buffer, 'GL_NV_video_capture');
19806   GL_NV_copy_image := Int_CheckExtension(Buffer, 'GL_NV_copy_image');
19807   GL_NV_parameter_buffer_object2 := Int_CheckExtension(Buffer, 'GL_NV_parameter_buffer_object2');
19808   GL_NV_shader_buffer_load := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_load');
19809   GL_NV_vertex_buffer_unified_memory := Int_CheckExtension(Buffer, 'GL_NV_vertex_buffer_unified_memory');
19810   GL_NV_gpu_program5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_program5');
19811   GL_NV_gpu_shader5 := Int_CheckExtension(Buffer, 'GL_NV_gpu_shader5');
19812   GL_NV_shader_buffer_store := Int_CheckExtension(Buffer, 'GL_NV_shader_buffer_store');
19813   GL_NV_tessellation_program5 := Int_CheckExtension(Buffer, 'GL_NV_tessellation_program5');
19814   GL_NV_vertex_attrib_integer_64bit := Int_CheckExtension(Buffer, 'GL_NV_vertex_attrib_integer_64bit');
19815   GL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'GL_NV_multisample_coverage');
19816   GL_NV_vdpau_interop := Int_CheckExtension(Buffer, 'GL_NV_vdpau_interop');
19817   GL_NV_texture_barrier := Int_CheckExtension(Buffer, 'GL_NV_texture_barrier');
19818   // 4.3
19819   GL_NV_path_rendering := Int_CheckExtension(Buffer, 'GL_NV_path_rendering');
19820   GL_NV_bindless_texture := Int_CheckExtension(Buffer, 'GL_NV_bindless_texture');
19821   GL_NV_shader_atomic_float := Int_CheckExtension(Buffer, 'GL_NV_shader_atomic_float');
19822
19823   // OML
19824   GL_OML_interlace := Int_CheckExtension(Buffer, 'GL_OML_interlace');
19825   GL_OML_resample := Int_CheckExtension(Buffer, 'GL_OML_resample');
19826   GL_OML_subsample := Int_CheckExtension(Buffer, 'GL_OML_subsample');
19827
19828   // PGI
19829   GL_PGI_misc_hints := Int_CheckExtension(Buffer, 'GL_PGI_misc_hints');
19830   GL_PGI_vertex_hints := Int_CheckExtension(Buffer, 'GL_PGI_vertex_hints');
19831
19832   // REND
19833   GL_REND_screen_coordinates := Int_CheckExtension(Buffer, 'GL_REND_screen_coordinates');
19834
19835   // S3
19836   GL_S3_s3tc := Int_CheckExtension(Buffer, 'GL_S3_s3tc');
19837
19838   // SGIS
19839   GL_SGIS_detail_texture := Int_CheckExtension(Buffer, 'GL_SGIS_detail_texture');
19840   GL_SGIS_fog_function := Int_CheckExtension(Buffer, 'GL_SGIS_fog_function');
19841   GL_SGIS_generate_mipmap := Int_CheckExtension(Buffer, 'GL_SGIS_generate_mipmap');
19842   GL_SGIS_multisample := Int_CheckExtension(Buffer, 'GL_SGIS_multisample');
19843   GL_SGIS_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIS_pixel_texture');
19844   GL_SGIS_point_line_texgen := Int_CheckExtension(Buffer, 'GL_SGIS_point_line_texgen');
19845   GL_SGIS_point_parameters := Int_CheckExtension(Buffer, 'GL_SGIS_point_parameters');
19846   GL_SGIS_sharpen_texture := Int_CheckExtension(Buffer, 'GL_SGIS_sharpen_texture');
19847   GL_SGIS_texture4D := Int_CheckExtension(Buffer, 'GL_SGIS_texture4D');
19848   GL_SGIS_texture_border_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_border_clamp');
19849   GL_SGIS_texture_color_mask := Int_CheckExtension(Buffer, 'GL_SGIS_texture_color_mask');
19850   GL_SGIS_texture_edge_clamp := Int_CheckExtension(Buffer, 'GL_SGIS_texture_edge_clamp');
19851   GL_SGIS_texture_filter4 := Int_CheckExtension(Buffer, 'GL_SGIS_texture_filter4');
19852   GL_SGIS_texture_lod := Int_CheckExtension(Buffer, 'GL_SGIS_texture_lod');
19853   GL_SGIS_texture_select := Int_CheckExtension(Buffer, 'GL_SGIS_texture_select');
19854
19855   // SGIX
19856   GL_FfdMaskSGIX := Int_CheckExtension(Buffer, 'GL_FfdMaskSGIX');
19857   GL_SGIX_async := Int_CheckExtension(Buffer, 'GL_SGIX_async');
19858   GL_SGIX_async_histogram := Int_CheckExtension(Buffer, 'GL_SGIX_async_histogram');
19859   GL_SGIX_async_pixel := Int_CheckExtension(Buffer, 'GL_SGIX_async_pixel');
19860   GL_SGIX_blend_alpha_minmax := Int_CheckExtension(Buffer, 'GL_SGIX_blend_alpha_minmax');
19861   GL_SGIX_calligraphic_fragment := Int_CheckExtension(Buffer, 'GL_SGIX_calligraphic_fragment');
19862   GL_SGIX_clipmap := Int_CheckExtension(Buffer, 'GL_SGIX_clipmap');
19863   GL_SGIX_convolution_accuracy := Int_CheckExtension(Buffer, 'GL_SGIX_convolution_accuracy');
19864   GL_SGIX_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGIX_depth_pass_instrument');
19865   GL_SGIX_depth_texture := Int_CheckExtension(Buffer, 'GL_SGIX_depth_texture');
19866   GL_SGIX_flush_raster := Int_CheckExtension(Buffer, 'GL_SGIX_flush_raster');
19867   GL_SGIX_fog_offset := Int_CheckExtension(Buffer, 'GL_SGIX_fog_offset');
19868   GL_SGIX_fog_scale := Int_CheckExtension(Buffer, 'GL_SGIX_fog_scale');
19869   GL_SGIX_fragment_lighting := Int_CheckExtension(Buffer, 'GL_SGIX_fragment_lighting');
19870   GL_SGIX_framezoom := Int_CheckExtension(Buffer, 'GL_SGIX_framezoom');
19871   GL_SGIX_igloo_interface := Int_CheckExtension(Buffer, 'GL_SGIX_igloo_interface');
19872   GL_SGIX_impact_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_impact_pixel_texture');
19873   GL_SGIX_instruments := Int_CheckExtension(Buffer, 'GL_SGIX_instruments');
19874   GL_SGIX_interlace := Int_CheckExtension(Buffer, 'GL_SGIX_interlace');
19875   GL_SGIX_ir_instrument1 := Int_CheckExtension(Buffer, 'GL_SGIX_ir_instrument1');
19876   GL_SGIX_list_priority := Int_CheckExtension(Buffer, 'GL_SGIX_list_priority');
19877   GL_SGIX_pixel_texture := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_texture');
19878   GL_SGIX_pixel_tiles := Int_CheckExtension(Buffer, 'GL_SGIX_pixel_tiles');
19879   GL_SGIX_polynomial_ffd := Int_CheckExtension(Buffer, 'GL_SGIX_polynomial_ffd');
19880   GL_SGIX_reference_plane := Int_CheckExtension(Buffer, 'GL_SGIX_reference_plane');
19881   GL_SGIX_resample := Int_CheckExtension(Buffer, 'GL_SGIX_resample');
19882   GL_SGIX_scalebias_hint := Int_CheckExtension(Buffer, 'GL_SGIX_scalebias_hint');
19883   GL_SGIX_shadow := Int_CheckExtension(Buffer, 'GL_SGIX_shadow');
19884   GL_SGIX_shadow_ambient := Int_CheckExtension(Buffer, 'GL_SGIX_shadow_ambient');
19885   GL_SGIX_sprite := Int_CheckExtension(Buffer, 'GL_SGIX_sprite');
19886   GL_SGIX_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_subsample');
19887   GL_SGIX_tag_sample_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_tag_sample_buffer');
19888   GL_SGIX_texture_add_env := Int_CheckExtension(Buffer, 'GL_SGIX_texture_add_env');
19889   GL_SGIX_texture_coordinate_clamp := Int_CheckExtension(Buffer, 'GL_SGIX_texture_coordinate_clamp');
19890   GL_SGIX_texture_lod_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_lod_bias');
19891   GL_SGIX_texture_multi_buffer := Int_CheckExtension(Buffer, 'GL_SGIX_texture_multi_buffer');
19892   GL_SGIX_texture_scale_bias := Int_CheckExtension(Buffer, 'GL_SGIX_texture_scale_bias');
19893   GL_SGIX_texture_select := Int_CheckExtension(Buffer, 'GL_SGIX_texture_select');
19894   GL_SGIX_vertex_preclip := Int_CheckExtension(Buffer, 'GL_SGIX_vertex_preclip');
19895   GL_SGIX_ycrcb := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb');
19896   GL_SGIX_ycrcb_subsample := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcb_subsample');
19897   GL_SGIX_ycrcba := Int_CheckExtension(Buffer, 'GL_SGIX_ycrcba');
19898
19899   // SGI
19900   GL_SGI_color_matrix := Int_CheckExtension(Buffer, 'GL_SGI_color_matrix');
19901   GL_SGI_color_table := Int_CheckExtension(Buffer, 'GL_SGI_color_table');
19902   GL_SGI_depth_pass_instrument := Int_CheckExtension(Buffer, 'GL_SGI_depth_pass_instrument');
19903   GL_SGI_texture_color_table := Int_CheckExtension(Buffer, 'GL_SGI_texture_color_table');
19904
19905   // SUN
19906   GL_SUNX_constant_data := Int_CheckExtension(Buffer, 'GL_SUNX_constant_data');
19907   GL_SUN_convolution_border_modes := Int_CheckExtension(Buffer, 'GL_SUN_convolution_border_modes');
19908   GL_SUN_global_alpha := Int_CheckExtension(Buffer, 'GL_SUN_global_alpha');
19909   GL_SUN_mesh_array := Int_CheckExtension(Buffer, 'GL_SUN_mesh_array');
19910   GL_SUN_slice_accum := Int_CheckExtension(Buffer, 'GL_SUN_slice_accum');
19911   GL_SUN_triangle_list := Int_CheckExtension(Buffer, 'GL_SUN_triangle_list');
19912   GL_SUN_vertex := Int_CheckExtension(Buffer, 'GL_SUN_vertex');
19913
19914   // WIN
19915   GL_WIN_phong_shading := Int_CheckExtension(Buffer, 'GL_WIN_phong_shading');
19916   GL_WIN_specular_fog := Int_CheckExtension(Buffer, 'GL_WIN_specular_fog');
19917
19918   {$IFDEF DGL_WIN}
19919   // WGL
19920   WGL_3DFX_multisample := Int_CheckExtension(Buffer, 'WGL_3DFX_multisample');
19921   WGL_ARB_buffer_region := Int_CheckExtension(Buffer, 'WGL_ARB_buffer_region');
19922   WGL_ARB_extensions_string := Int_CheckExtension(Buffer, 'WGL_ARB_extensions_string');
19923   WGL_ARB_make_current_read := Int_CheckExtension(Buffer, 'WGL_ARB_make_current_read');
19924   WGL_ARB_multisample := Int_CheckExtension(Buffer, 'WGL_ARB_multisample');
19925   WGL_ARB_pbuffer := Int_CheckExtension(Buffer, 'WGL_ARB_pbuffer');
19926   WGL_ARB_pixel_format := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format');
19927   WGL_ARB_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ARB_pixel_format_float');
19928   WGL_ARB_render_texture := Int_CheckExtension(Buffer, 'WGL_ARB_render_texture');
19929   WGL_ARB_create_context := Int_CheckExtension(Buffer, 'WGL_ARB_create_context');
19930   WGL_ARB_create_context_profile := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_profile');
19931   WGL_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'WGL_ARB_framebuffer_sRGB');
19932   WGL_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'WGL_ARB_create_context_robustness');
19933   WGL_ATI_pixel_format_float := Int_CheckExtension(Buffer, 'WGL_ATI_pixel_format_float');
19934   WGL_AMD_gpu_association := Int_CheckExtension(Buffer, 'WGL_AMD_gpu_association');
19935   WGL_EXT_depth_float := Int_CheckExtension(Buffer, 'WGL_EXT_depth_float');
19936   WGL_EXT_display_color_table := Int_CheckExtension(Buffer, 'WGL_EXT_display_color_table');
19937   WGL_EXT_extensions_string := Int_CheckExtension(Buffer, 'WGL_EXT_extensions_string');
19938   WGL_EXT_make_current_read := Int_CheckExtension(Buffer, 'WGL_EXT_make_current_read');
19939   WGL_EXT_multisample := Int_CheckExtension(Buffer, 'WGL_EXT_multisample');
19940   WGL_EXT_pbuffer := Int_CheckExtension(Buffer, 'WGL_EXT_pbuffer');
19941   WGL_EXT_pixel_format := Int_CheckExtension(Buffer, 'WGL_EXT_pixel_format');
19942   WGL_EXT_swap_control := Int_CheckExtension(Buffer, 'WGL_EXT_swap_control');
19943   WGL_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'WGL_EXT_create_context_es2_profile');
19944   WGL_I3D_digital_video_control := Int_CheckExtension(Buffer, 'WGL_I3D_digital_video_control');
19945   WGL_I3D_gamma := Int_CheckExtension(Buffer, 'WGL_I3D_gamma');
19946   WGL_I3D_genlock := Int_CheckExtension(Buffer, 'WGL_I3D_genlock');
19947   WGL_I3D_image_buffer := Int_CheckExtension(Buffer, 'WGL_I3D_image_buffer');
19948   WGL_I3D_swap_frame_lock := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_lock');
19949   WGL_I3D_swap_frame_usage := Int_CheckExtension(Buffer, 'WGL_I3D_swap_frame_usage');
19950   WGL_NV_float_buffer := Int_CheckExtension(Buffer, 'WGL_NV_float_buffer');
19951   WGL_NV_render_depth_texture := Int_CheckExtension(Buffer, 'WGL_NV_render_depth_texture');
19952   WGL_NV_render_texture_rectangle := Int_CheckExtension(Buffer, 'WGL_NV_render_texture_rectangle');
19953   WGL_NV_vertex_array_range := Int_CheckExtension(Buffer, 'WGL_NV_vertex_array_range');
19954   WGL_NV_present_video := Int_CheckExtension(Buffer, 'WGL_NV_present_video');
19955   WGL_NV_video_output := Int_CheckExtension(Buffer, 'WGL_NV_video_output');
19956   WGL_NV_swap_group := Int_CheckExtension(Buffer, 'WGL_NV_swap_group');
19957   WGL_NV_gpu_affinity := Int_CheckExtension(Buffer, 'WGL_NV_gpu_affinity');
19958   WGL_NV_video_capture := Int_CheckExtension(Buffer, 'WGL_NV_video_capture');
19959   WGL_NV_copy_image := Int_CheckExtension(Buffer, 'WGL_NV_copy_image');
19960   WGL_NV_multisample_coverage := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19961   WGL_NV_DX_interop := Int_CheckExtension(Buffer, 'WGL_NV_multisample_coverage');
19962   WGL_OML_sync_control := Int_CheckExtension(Buffer, 'WGL_OML_sync_control');
19963   WGL_3DL_stereo_control := Int_CheckExtension(Buffer, 'WGL_3DL_stereo_control');
19964   WGL_ARB_context_flush_control := Int_CheckExtension(Buffer, 'WGL_ARB_context_flush_control');
19965   WIN_draw_range_elements := Int_CheckExtension(Buffer, 'WIN_draw_range_elements');
19966   WIN_swap_hint := Int_CheckExtension(Buffer, 'WIN_swap_hint');
19967   {$ENDIF}
19968
19969   {$IFDEF DGL_LINUX}
19970   // GLX
19971   GLX_ARB_multisample := Int_CheckExtension(Buffer, 'GLX_ARB_multisample');
19972   GLX_ARB_fbconfig_float := Int_CheckExtension(Buffer, 'GLX_ARB_fbconfig_float');
19973   GLX_ARB_get_proc_address := Int_CheckExtension(Buffer, 'GLX_ARB_get_proc_address');
19974   GLX_ARB_create_context := Int_CheckExtension(Buffer, 'GLX_ARB_create_context');
19975   GLX_ARB_create_context_profile := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_profile');
19976   GLX_ARB_vertex_buffer_object := Int_CheckExtension(Buffer, 'GLX_ARB_vertex_buffer_object');
19977   GLX_ARB_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_ARB_framebuffer_sRGB');
19978   GLX_ARB_create_context_robustness := Int_CheckExtension(Buffer, 'GLX_ARB_create_context_robustness');
19979   GLX_EXT_visual_info := Int_CheckExtension(Buffer, 'GLX_EXT_visual_info');
19980   GLX_EXT_visual_rating := Int_CheckExtension(Buffer, 'GLX_EXT_visual_rating');
19981   GLX_EXT_import_context := Int_CheckExtension(Buffer, 'GLX_EXT_import_context');
19982   GLX_EXT_fbconfig_packed_float := Int_CheckExtension(Buffer, 'GLX_EXT_fbconfig_packed_float');
19983   GLX_EXT_framebuffer_sRGB := Int_CheckExtension(Buffer, 'GLX_EXT_framebuffer_sRGB');
19984   GLX_EXT_texture_from_pixmap := Int_CheckExtension(Buffer, 'GLX_EXT_texture_from_pixmap');
19985   GLX_EXT_swap_control := Int_CheckExtension(Buffer, 'GLX_EXT_swap_control');
19986   GLX_EXT_create_context_es2_profile := Int_CheckExtension(Buffer, 'GLX_EXT_create_context_es2_profile');
19987   GLX_ARB_context_flush_control := Int_CheckExtension(Buffer, 'GLX_ARB_context_flush_control');
19988   {$ENDIF}
19989
19990   ImplementationRead := True;
19991 end;
19992
19993 {$IFDEF DGL_WIN}
19994 // =============================================================================
19995 // RaiseLastOSError
19996 // =============================================================================
19997 // Needed for compatibility with older Delphiversions
19998 // =============================================================================
19999
20000 procedure RaiseLastOSError;
20001 begin
20002 {$IFDEF FPC}
20003   raise Exception.Create('RaiseLastOSError!'); // To-Do: find a better solution
20004 {$ELSE}
20005   {$IFDEF DELPHI6_AND_DOWN} // If Delphi 6 or later
20006     SysUtils.RaiseLastWin32Error;
20007   {$ELSE}
20008     SysUtils.RaiseLastOSError;
20009   {$ENDIF}
20010 {$ENDIF}
20011 end;
20012
20013 // =============================================================================
20014 // CreateRenderingContext
20015 // =============================================================================
20016
20017 function CreateRenderingContext(DC: HDC; Options: TRCOptions; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20018 const
20019   OBJ_MEMDC = 10;
20020   OBJ_ENHMETADC = 12;
20021   OBJ_METADC = 4;
20022   PFD_DOUBLEBUFFER = $00000001;
20023   PFD_STEREO = $00000002;
20024   PFD_DRAW_TO_WINDOW = $00000004;
20025   PFD_DRAW_TO_BITMAP = $00000008;
20026   PFD_SUPPORT_GDI = $00000010;
20027   PFD_SUPPORT_OPENGL = $00000020;
20028   PFD_TYPE_RGBA = 0;
20029   PFD_MAIN_PLANE = 0;
20030   PFD_OVERLAY_PLANE = 1;
20031   PFD_UNDERLAY_PLANE = LongWord(-1);
20032   MemoryDCs = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20033 var
20034   PFDescriptor: TPixelFormatDescriptor;
20035   PixelFormat: Integer;
20036   AType: DWORD;
20037 begin
20038   if GL_LibHandle = nil then
20039     InitOpenGL;
20040
20041   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20042
20043   with PFDescriptor do
20044   begin
20045     nSize := SizeOf(PFDescriptor);
20046     nVersion := 1;
20047     dwFlags := PFD_SUPPORT_OPENGL;
20048
20049     AType := GetObjectType(DC);
20050
20051     if AType = 0 then
20052       RaiseLastOSError;
20053
20054     if AType in MemoryDCs then
20055       dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20056     else
20057       dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20058
20059     if opDoubleBuffered in Options then
20060       dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20061
20062     if opGDI in Options then
20063       dwFlags := dwFlags or PFD_SUPPORT_GDI;
20064
20065     if opStereo in Options then
20066       dwFlags := dwFlags or PFD_STEREO;
20067
20068     iPixelType := PFD_TYPE_RGBA;
20069     cColorBits := ColorBits;
20070     cDepthBits := zBits;
20071     cStencilBits := StencilBits;
20072     cAccumBits := AccumBits;
20073     cAuxBuffers := AuxBuffers;
20074
20075     if Layer = 0 then
20076       iLayerType := PFD_MAIN_PLANE
20077     else
20078     if Layer > 0 then
20079       iLayerType := PFD_OVERLAY_PLANE
20080     else
20081       iLayerType := Byte(PFD_UNDERLAY_PLANE);
20082   end;
20083
20084   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20085
20086   if PixelFormat = 0 then
20087     RaiseLastOSError;
20088
20089   if GetPixelFormat(DC) <> PixelFormat then
20090     if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20091       RaiseLastOSError;
20092
20093   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20094
20095   Result := wglCreateContext(DC);
20096
20097   if Result = 0 then
20098     RaiseLastOSError
20099   else
20100     LastPixelFormat := 0;
20101 end;
20102
20103 // =============================================================================
20104 // CreateRenderingContextVersion
20105 // =============================================================================
20106 //  Creates a context for the more recent OpenGL versions (3.0) and up
20107 //  For that we first need to get a normal GL context for getting the
20108 //  function pointer to wglCreateContextAttribsARB first
20109 // =============================================================================
20110 function CreateRenderingContextVersion(DC: HDC; Options: TRCOptions; MajorVersion, MinorVersion : Integer; ForwardCompatible : Boolean; ColorBits, ZBits, StencilBits, AccumBits, AuxBuffers: Integer; Layer: Integer): HGLRC;
20111 const
20112   OBJ_MEMDC          = 10;
20113   OBJ_ENHMETADC      = 12;
20114   OBJ_METADC         = 4;
20115   PFD_DOUBLEBUFFER   = $00000001;
20116   PFD_STEREO         = $00000002;
20117   PFD_DRAW_TO_WINDOW = $00000004;
20118   PFD_DRAW_TO_BITMAP = $00000008;
20119   PFD_SUPPORT_GDI    = $00000010;
20120   PFD_SUPPORT_OPENGL = $00000020;
20121   PFD_TYPE_RGBA      = 0;
20122   PFD_MAIN_PLANE     = 0;
20123   PFD_OVERLAY_PLANE  = 1;
20124   PFD_UNDERLAY_PLANE = LongWord(-1);
20125   MemoryDCs          = [OBJ_MEMDC, OBJ_METADC, OBJ_ENHMETADC];
20126 var
20127   PFDescriptor : TPixelFormatDescriptor;
20128   PixelFormat  : Integer;
20129   AType        : DWORD;
20130   LegacyRC     : HGLRC;
20131   Attribs      : array of Integer;
20132 begin
20133   if GL_LibHandle = nil then
20134         InitOpenGL;
20135
20136   if not Assigned(GL_LibHandle) then
20137         raise Exception.Create('GL_LibHandle is NIL. Could not load OpenGL library!');
20138
20139   FillChar(PFDescriptor, SizeOf(PFDescriptor), 0);
20140
20141   with PFDescriptor do
20142     begin
20143       nSize    := SizeOf(PFDescriptor);
20144       nVersion := 1;
20145       dwFlags  := PFD_SUPPORT_OPENGL;
20146       AType    := GetObjectType(DC);
20147
20148       if AType = 0 then
20149         RaiseLastOSError;
20150
20151       if AType in MemoryDCs then
20152         dwFlags := dwFlags or PFD_DRAW_TO_BITMAP
20153       else
20154         dwFlags := dwFlags or PFD_DRAW_TO_WINDOW;
20155
20156       if opDoubleBuffered in Options then
20157         dwFlags := dwFlags or PFD_DOUBLEBUFFER;
20158
20159       if opGDI in Options then
20160         dwFlags := dwFlags or PFD_SUPPORT_GDI;
20161
20162       if opStereo in Options then
20163         dwFlags := dwFlags or PFD_STEREO;
20164
20165       iPixelType   := PFD_TYPE_RGBA;
20166       cColorBits   := ColorBits;
20167       cDepthBits   := zBits;
20168       cStencilBits := StencilBits;
20169       cAccumBits   := AccumBits;
20170       cAuxBuffers  := AuxBuffers;
20171
20172       if Layer = 0 then
20173         iLayerType := PFD_MAIN_PLANE
20174       else
20175         if Layer > 0 then
20176           iLayerType := PFD_OVERLAY_PLANE
20177         else
20178           iLayerType := Byte(PFD_UNDERLAY_PLANE);
20179     end;
20180
20181   PixelFormat := ChoosePixelFormat(DC, @PFDescriptor);
20182
20183   if PixelFormat = 0 then
20184         RaiseLastOSError;
20185
20186   if GetPixelFormat(DC) <> PixelFormat then
20187         if not SetPixelFormat(DC, PixelFormat, @PFDescriptor) then
20188                 RaiseLastOSError;
20189
20190   DescribePixelFormat(DC, PixelFormat, SizeOf(PFDescriptor), PFDescriptor);
20191
20192   // Create legacy render context first for we need function pointers to
20193   // create new OpenGL render contexts
20194   LegacyRC := wglCreateContext(DC);
20195   wglMakeCurrent(DC, LegacyRC);
20196
20197   // Set attributes to describe our requested context
20198   SetLength(Attribs, 5);
20199   Attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB;
20200   Attribs[1] := MajorVersion;
20201   Attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB;
20202   Attribs[3] := MinorVersion;
20203
20204   // Add context flag for forward compatible context
20205   //  Forward compatible means no more support for legacy functions like
20206   //  immediate mode (glvertex, glrotate, gltranslate, etc.)
20207   if ForwardCompatible then
20208     begin
20209       SetLength(Attribs, Length(Attribs)+2);
20210       Attribs[4] := WGL_CONTEXT_FLAGS_ARB;
20211       Attribs[5] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
20212     end;
20213
20214   // Attribute flags must be finalized with a zero
20215   Attribs[High(Attribs)] := 0;
20216
20217   // Get function pointer for new context creation function
20218   wglCreateContextAttribsARB := wglGetProcAddress('wglCreateContextAttribsARB');
20219
20220   if not Assigned(wglCreateContextAttribsARB) then
20221     begin
20222       raise Exception.Create('Could not get function pointer adress for wglCreateContextAttribsARB - OpenGL 3.x and above not supported!');
20223       wglDeleteContext(LegacyRC);
20224       exit;
20225     end;
20226
20227   // Create context
20228   Result := wglCreateContextAttribsARB(DC, 0, @Attribs[0]);
20229
20230   if Result = 0 then
20231     begin
20232       raise Exception.Create('Could not create the desired OpenGL rendering context!');
20233       wglDeleteContext(LegacyRC);
20234       exit;
20235     end;
20236
20237   wglDeleteContext(LegacyRC);
20238
20239   if Result = 0 then
20240         RaiseLastOSError
20241   else
20242         LastPixelFormat := 0;
20243 end;
20244
20245 // =============================================================================
20246 // DestroyRenderingContext
20247 // =============================================================================
20248
20249 procedure DestroyRenderingContext(RC: HGLRC);
20250 begin
20251   wglDeleteContext(RC);
20252 end;
20253
20254
20255 // =============================================================================
20256 // ActivateRenderingContext
20257 // =============================================================================
20258
20259 procedure ActivateRenderingContext(DC: HDC; RC: HGLRC; loadext: boolean = true);
20260 begin
20261   Assert((DC <> 0), 'DC must not be 0');
20262   Assert((RC <> 0), 'RC must not be 0');
20263
20264   wglMakeCurrent(DC, RC);
20265
20266   {$ifdef DGL_TINY_HEADER}
20267   ReadCoreVersion;
20268   {$else}
20269   ReadImplementationProperties;
20270
20271   if (loadext) then
20272     ReadExtensions;
20273   {$endif}
20274 end;
20275
20276 // =============================================================================
20277 // DeactivateRenderingContext
20278 // =============================================================================
20279
20280 procedure DeactivateRenderingContext;
20281 begin
20282   wglMakeCurrent(0, 0);
20283 end;
20284 {$ENDIF}
20285
20286
20287 initialization
20288
20289 {$IFDEF CPU386}
20290   Set8087CW($133F);
20291 {$ENDIF}
20292
20293 finalization
20294
20295 end.
20296